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 <a.mistewicz@samsung.com>
Reviewed-on: https://mcdsrvbld02.digital.local/review/49405
Reviewed-by: Maciej Wereski <m.wereski@partner.samsung.com>
Tested-by: Maciej Wereski <m.wereski@partner.samsung.com>
package boruta
import (
+ "crypto/rsa"
"time"
)
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
+}