Documentation ¶
Index ¶
- Constants
- Variables
- func BindDefaultHandler(mux *http.ServeMux)
- func NewEdgeDevice(edgeDeviceConfig *EdgeDeviceConfig) (*v1alpha1.EdgeDevice, *rest.RESTClient, error)
- func PushTelemetryCollectionService(tss *v1alpha1.TelemetryServiceSpec, message *http.Response) error
- type DeviceShifu
- type DeviceShifuBase
- type DeviceShifuConfig
- type DeviceShifuDriverProperties
- type DeviceShifuInstruction
- type DeviceShifuInstructionProperty
- type DeviceShifuInstructionSettings
- type DeviceShifuInstructions
- type DeviceShifuMetaData
- type DeviceShifuTelemetries
- type DeviceShifuTelemetry
- type DeviceShifuTelemetryProperties
- type DeviceShifuTelemetryPushSettings
- type DeviceShifuTelemetrySettings
- type EdgeDeviceConfig
Constants ¶
const ( ConfigmapDriverPropertiesStr = "driverProperties" ConfigmapInstructionsStr = "instructions" ConfigmapTelemetriesStr = "telemetries" ConfigmapCustomizedInstructionsStr = "customInstructionsPython" EdgedeviceResourceStr = "edgedevices" TelemetryCollectionServiceResourceStr = "telemetryservices" DeviceDefaultPortStr string = ":8080" DeviceIsHealthyStr string = "Device is healthy" DeviceConfigmapFolderPath string = "/etc/edgedevice/config" DeviceKubeconfigDoNotLoadStr string = "NULL" DeviceNameSpaceDefault string = "default" KubernetesConfigDefault string = "" DeviceInstructionTimeoutURIQueryStr string = "timeout" DeviceDefaultCMDDoNotExec string = "issue_cmd" DeviceDefaultCMDStubHealth string = "stub_health" PowerShellStubTimeoutStr string = "cmdTimeout" PowerShellStubTimeoutTolerationStr string = "stub_toleration" PythonHandlersModuleName = "customized_handlers" PythonScriptDir = "pythoncustomizedhandlers" ControlMsgsConfigStr = "controlMsgs" )
Str and default value
const ( DeviceInstructionInitialDelay int64 = 3000 DeviceTelemetryTimeoutInMS int64 = 3000 DeviceTelemetryUpdateIntervalInMS int64 = 3000 DeviceTelemetryInitialDelayInMS int64 = 3000 DeviceDefaultConnectionTimeoutInMS int64 = 3000 DeviceDefaultRequestTimeoutInMS int64 = 1000 DeviceDefaultTelemetryUpdateIntervalInMS int64 = 1000 DeviceDefaultGlobalTimeoutInSeconds int64 = 3 DefaultHTTPServerTimeoutInSeconds int64 = 0 )
default value
const ( PasswordSecretField = "password" UsernameSecretField = "username" SecretResource = "secrets" )
Variables ¶
var ( // TelemetryCollectionServiceMap Telemetry Collection Service Map TelemetryCollectionServiceMap map[string]v1alpha1.TelemetryServiceSpec CustomInstructionsPython map[string]string )
Functions ¶
func BindDefaultHandler ¶ added in v0.1.1
func NewEdgeDevice ¶
func NewEdgeDevice(edgeDeviceConfig *EdgeDeviceConfig) (*v1alpha1.EdgeDevice, *rest.RESTClient, error)
NewEdgeDevice new edgeDevice
func PushTelemetryCollectionService ¶ added in v0.4.0
func PushTelemetryCollectionService(tss *v1alpha1.TelemetryServiceSpec, message *http.Response) error
Types ¶
type DeviceShifu ¶
DeviceShifu interface of Deviceshifu include start telemetry and stop http server
type DeviceShifuBase ¶
type DeviceShifuBase struct { Name string Server *http.Server DeviceShifuConfig *DeviceShifuConfig EdgeDevice *v1alpha1.EdgeDevice RestClient *rest.RESTClient }
DeviceShifuBase deviceshifu Basic Info
func New ¶
func New(deviceShifuMetadata *DeviceShifuMetaData) (*DeviceShifuBase, *http.ServeMux, error)
New new deviceshifu base
func (*DeviceShifuBase) Start ¶
func (ds *DeviceShifuBase) Start(stopCh <-chan struct{}, fn collectTelemetry) error
Start HTTP server and telemetryCollection
func (*DeviceShifuBase) StartTelemetryCollection ¶
func (ds *DeviceShifuBase) StartTelemetryCollection(fn collectTelemetry) error
StartTelemetryCollection Start TelemetryCollection
func (*DeviceShifuBase) UpdateEdgeDeviceResourcePhase ¶
func (ds *DeviceShifuBase) UpdateEdgeDeviceResourcePhase(edPhase v1alpha1.EdgeDevicePhase)
UpdateEdgeDeviceResourcePhase Update device status
type DeviceShifuConfig ¶
type DeviceShifuConfig struct { DriverProperties DeviceShifuDriverProperties Instructions DeviceShifuInstructions Telemetries *DeviceShifuTelemetries CustomInstructionsPython map[string]string `yaml:"customInstructionsPython"` ControlMsgs map[string]string `yaml:"controlMsgs,omitempty"` }
DeviceShifuConfig data under Configmap, Settings of deviceShifu
func NewDeviceShifuConfig ¶
func NewDeviceShifuConfig(path string) (*DeviceShifuConfig, error)
NewDeviceShifuConfig Read the configuration under the path directory and return configuration
type DeviceShifuDriverProperties ¶
type DeviceShifuDriverProperties struct { DriverSku string `yaml:"driverSku"` DriverImage string `yaml:"driverImage"` DriverExecution string `yaml:"driverExecution,omitempty"` }
DeviceShifuDriverProperties properties of deviceshifuDriver
type DeviceShifuInstruction ¶
type DeviceShifuInstruction struct { DeviceShifuInstructionProperties []DeviceShifuInstructionProperty `yaml:"argumentPropertyList,omitempty"` DeviceShifuProtocolProperties map[string]string `yaml:"protocolPropertyList,omitempty"` }
DeviceShifuInstruction Instruction of deviceshifu
type DeviceShifuInstructionProperty ¶
type DeviceShifuInstructionProperty struct { ValueType string `yaml:"valueType"` ReadWrite string `yaml:"readWrite"` DefaultValue interface{} `yaml:"defaultValue"` }
DeviceShifuInstructionProperty property of instruction
type DeviceShifuInstructionSettings ¶
type DeviceShifuInstructionSettings struct {
DefaultTimeoutSeconds *int64 `yaml:"defaultTimeoutSeconds,omitempty"`
}
DeviceShifuInstructionSettings Settings of all instructions
type DeviceShifuInstructions ¶
type DeviceShifuInstructions struct { Instructions map[string]*DeviceShifuInstruction `yaml:"instructions"` InstructionSettings *DeviceShifuInstructionSettings `yaml:"instructionSettings,omitempty"` }
DeviceShifuInstructions Instructions of devicehsifu
type DeviceShifuMetaData ¶
type DeviceShifuMetaData struct { Name string ConfigFilePath string KubeConfigPath string Namespace string }
DeviceShifuMetaData Deviceshifu MetaData
type DeviceShifuTelemetries ¶
type DeviceShifuTelemetries struct { DeviceShifuTelemetrySettings *DeviceShifuTelemetrySettings `yaml:"telemetrySettings,omitempty"` DeviceShifuTelemetries map[string]*DeviceShifuTelemetry `yaml:"telemetries,omitempty"` }
DeviceShifuTelemetries Telemetries of deviceshifu
type DeviceShifuTelemetry ¶
type DeviceShifuTelemetry struct {
DeviceShifuTelemetryProperties DeviceShifuTelemetryProperties `yaml:"properties,omitempty"`
}
DeviceShifuTelemetry properties of telemetry
type DeviceShifuTelemetryProperties ¶
type DeviceShifuTelemetryProperties struct { DeviceInstructionName *string `yaml:"instruction"` InitialDelayMs *int64 `yaml:"initialDelayMs,omitempty"` IntervalMs *int64 `yaml:"intervalMs,omitempty"` PushSettings *DeviceShifuTelemetryPushSettings `yaml:"pushSettings,omitempty"` }
DeviceShifuTelemetryProperties properties of Telemetry
type DeviceShifuTelemetryPushSettings ¶
type DeviceShifuTelemetryPushSettings struct { DeviceShifuTelemetryCollectionService *string `yaml:"telemetryCollectionService,omitempty"` DeviceShifuTelemetryPushToServer *bool `yaml:"pushToServer,omitempty"` }
DeviceShifuTelemetryPushSettings settings of push under telemetry
type DeviceShifuTelemetrySettings ¶
type DeviceShifuTelemetrySettings struct { DeviceShifuTelemetryUpdateIntervalInMilliseconds *int64 `yaml:"telemetryUpdateIntervalInMilliseconds,omitempty"` DeviceShifuTelemetryTimeoutInMilliseconds *int64 `yaml:"telemetryTimeoutInMilliseconds,omitempty"` DeviceShifuTelemetryInitialDelayInMilliseconds *int64 `yaml:"telemetryInitialDelayInMilliseconds,omitempty"` DeviceShifuTelemetryDefaultPushToServer *bool `yaml:"defaultPushToServer,omitempty"` DeviceShifuTelemetryDefaultCollectionService *string `yaml:"defaultTelemetryCollectionService,omitempty"` }
DeviceShifuTelemetrySettings settings of Telemetry
type EdgeDeviceConfig ¶
EdgeDeviceConfig config of EdgeDevice