From 617bc0169037fb1d3f5525e4540d1a1f34582b76 Mon Sep 17 00:00:00 2001 From: Aleksander Mistewicz Date: Thu, 17 Aug 2017 15:17:35 +0200 Subject: [PATCH] Add Dryad interface User, Admin and Worker communication to Boruta was designed, but an interface in opposite direction, from Server to Worker, was missing. Change-Id: I915c31e12b0b49d6863d1162734db7a324d709d1 Signed-off-by: Aleksander Mistewicz Reviewed-on: https://mcdsrvbld02.digital.local/review/49405 Reviewed-by: Maciej Wereski Tested-by: Maciej Wereski --- boruta.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/boruta.go b/boruta.go index 90d34e4..a4d08c8 100644 --- a/boruta.go +++ b/boruta.go @@ -22,6 +22,7 @@ package boruta import ( + "crypto/rsa" "time" ) @@ -187,3 +188,17 @@ type Server interface { Superviser Workers } + +// Dryad is a MuxPi management interface used by Boruta. +type Dryad interface { + // PutInMaintenance prepares MuxPi for administrative action. + // It blinks LEDs, prints msg on the OLED display, etc. + PutInMaintenance(msg string) error + // Prepare creates appropriate user, generates RSA key, installs public key + // so that it can be used for SSH authentication and returns private key. + // It removes current instance of the user, etc. + Prepare() (*rsa.PrivateKey, error) + // Healthcheck tests Dryad for system state, STM functions and state on MuxPi. + // It may cause Dryad to call SetFail of Worker interface if the problem detected is critical. + Healthcheck() error +} -- 2.7.4