Documentation
¶
Index ¶
- type ConfigurationStruct
- func (c *ConfigurationStruct) EmptyWritablePtr() interface{}
- func (c *ConfigurationStruct) GetBootstrap() bootstrapConfig.BootstrapConfiguration
- func (c *ConfigurationStruct) GetInsecureSecrets() bootstrapConfig.InsecureSecrets
- func (c *ConfigurationStruct) GetLogLevel() string
- func (c *ConfigurationStruct) GetRegistryInfo() bootstrapConfig.RegistryInfo
- func (c *ConfigurationStruct) UpdateFromRaw(rawConfig interface{}) bool
- func (c *ConfigurationStruct) UpdateWritableFromRaw(rawWritable interface{}) bool
- type DeviceConfig
- type DeviceInfo
- type DiscoveryInfo
- type MessageQueueInfo
- type ServiceInfo
- type Telemetry
- type WritableInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConfigurationStruct ¶
type ConfigurationStruct struct {
// WritableInfo contains configuration settings that can be changed in the Registry .
Writable WritableInfo
// Clients is a map of services used by a DS.
Clients map[string]bootstrapConfig.ClientInfo
// Registry contains registry-specific settings.
Registry bootstrapConfig.RegistryInfo
// Service contains DeviceService-specific settings.
Service ServiceInfo
// Device contains device-specific configuration settings.
Device DeviceInfo
// DeviceList is the list of pre-define Devices
DeviceList []DeviceConfig `consul:"-"`
// Driver is a string map contains customized configuration for the protocol driver implemented based on Device SDK
Driver map[string]string
// SecretStore contains information for connecting to the secure SecretStore (Vault) to retrieve or store secrets
SecretStore bootstrapConfig.SecretStoreInfo
// MessageQueue contains information for connecting to MessageBus which provides alternative way to publish event
MessageQueue MessageQueueInfo
}
ConfigurationStruct contains the configuration properties for the device service.
func (*ConfigurationStruct) EmptyWritablePtr ¶
func (c *ConfigurationStruct) EmptyWritablePtr() interface{}
EmptyWritablePtr returns a pointer to a service-specific empty WritableInfo struct. It is used by the bootstrap to provide the appropriate structure to registry.Client's WatchForChanges().
func (*ConfigurationStruct) GetBootstrap ¶
func (c *ConfigurationStruct) GetBootstrap() bootstrapConfig.BootstrapConfiguration
GetBootstrap returns the configuration elements required by the bootstrap. Currently, a copy of the configuration data is returned. This is intended to be temporary -- since ConfigurationStruct drives the configuration.toml's structure -- until we can make backwards-breaking configuration.toml changes (which would consolidate these fields into an bootstrapConfig.BootstrapConfiguration struct contained within ConfigurationStruct).
func (*ConfigurationStruct) GetInsecureSecrets ¶
func (c *ConfigurationStruct) GetInsecureSecrets() bootstrapConfig.InsecureSecrets
GetInsecureSecrets returns the service's InsecureSecrets.
func (*ConfigurationStruct) GetLogLevel ¶
func (c *ConfigurationStruct) GetLogLevel() string
GetLogLevel returns the current ConfigurationStruct's log level.
func (*ConfigurationStruct) GetRegistryInfo ¶
func (c *ConfigurationStruct) GetRegistryInfo() bootstrapConfig.RegistryInfo
GetRegistryInfo gets the config.RegistryInfo field from the ConfigurationStruct.
func (*ConfigurationStruct) UpdateFromRaw ¶
func (c *ConfigurationStruct) UpdateFromRaw(rawConfig interface{}) bool
UpdateFromRaw converts configuration received from the registry to a service-specific configuration struct which is then used to overwrite the service's existing configuration struct.
func (*ConfigurationStruct) UpdateWritableFromRaw ¶
func (c *ConfigurationStruct) UpdateWritableFromRaw(rawWritable interface{}) bool
UpdateWritableFromRaw converts configuration received from the registry to a service-specific WritableInfo struct which is then used to overwrite the service's existing configuration's WritableInfo struct.
type DeviceConfig ¶
type DeviceConfig struct {
// Name is the Device name
Name string
// Profile is the profile name of the Device
Profile string
// Description describes the device
Description string
// Other labels applied to the device to help with searching
Labels []string
// Protocols for the device - stores protocol properties
Protocols map[string]models.ProtocolProperties
// AutoEvent supports auto-generated events sourced from a device service
AutoEvents []models.AutoEvent
}
DeviceConfig is the definition of Devices which will be auto created when the Device Service starts up
type DeviceInfo ¶
type DeviceInfo struct {
// DataTransform specifies whether or not the DS perform transformations
// specified by value descriptor on a actuation or query command.
DataTransform bool
// InitCmd specifies a device resource command which is automatically
// generated whenever a new device is added to the DS.
InitCmd string
// InitCmdArgs specify arguments to be used when building the InitCmd.
InitCmdArgs string
// MaxCmdOps defines the maximum number of resource operations that
// can be sent to a Driver in a single command.
MaxCmdOps int
// MaxCmdValueLen is the maximum string length of a command parameter or
// result (including the value descriptor name) that can be returned
// by a Driver.
MaxCmdValueLen int
// InitCmd specifies a device resource command which is automatically
// generated whenever a new device is removed from the DS.
RemoveCmd string
// RemoveCmdArgs specify arguments to be used when building the RemoveCmd.
RemoveCmdArgs string
// ProfilesDir specifies a directory which contains device profiles
// files which should be imported on startup.
ProfilesDir string
// UpdateLastConnected specifies whether to update device's LastConnected
// timestamp in metadata.
UpdateLastConnected bool
Discovery DiscoveryInfo
}
DeviceInfo is a struct which contains device specific configuration settings.
type DiscoveryInfo ¶
type DiscoveryInfo struct {
// Enabled controls whether or not device discovery is enabled.
Enabled bool
// Interval indicates how often the discovery process will be triggered.
// It represents as a duration string.
Interval string
}
DiscoveryInfo is a struct which contains configuration of device auto discovery.
type MessageQueueInfo ¶
type MessageQueueInfo struct {
Enabled bool
// Protocol indicates the protocol to use when accessing the message queue.
Protocol string
// Host is the hostname or IP address of the broker, if applicable.
Host string
// Port defines the port on which to access the message queue.
Port int
// Indicates the message queue platform being used.
Type string
// Indicates the topic prefix the data is published to. Note that /<device-profile-name>/<device-name> will be
// added to this Publish Topic prefix as the complete publish topic
PublishTopicPrefix string
// Provides additional configuration properties which do not fit within the existing field.
// Typically the key is the name of the configuration property and the value is a string representation of the
// desired value for the configuration property.
Optional map[string]string
}
MessageQueueInfo provides parameters related to connecting to a message queue
func (MessageQueueInfo) URL ¶
func (m MessageQueueInfo) URL() string
URL constructs a URL from the protocol, host and port and returns that as a string.
type ServiceInfo ¶
type ServiceInfo struct {
// BootTimeout indicates, in milliseconds, how long the service will retry connecting to upstream dependencies
// before giving up. Default is 30,000.
BootTimeout int
// Health check interval
CheckInterval string
// Host is the hostname or IP address of the service.
Host string
// Port is the HTTP port of the service.
Port int
// ServerBindAddr specifies an IP address or hostname
// for ListenAndServe to bind to, such as 0.0.0.0
ServerBindAddr string
// The protocol that should be used to call this service
Protocol string
// StartupMsg specifies a string to log once service
// initialization and startup is completed.
StartupMsg string
// MaxResultCount specifies the maximum size list supported
// in response to REST calls to other services.
MaxResultCount int
// Timeout (in milliseconds) specifies both
// - timeout for processing REST calls and
// - interval time the DS will wait between each retry call.
Timeout int
// Labels are properties applied to the device service to help with searching
Labels []string
// EnableAsyncReadings to determine whether the Device Service would deal with the asynchronous readings
EnableAsyncReadings bool
// AsyncBufferSize defines the size of asynchronous channel
AsyncBufferSize int
}
ServiceInfo is a struct which contains service related configuration settings.
func (ServiceInfo) GetBootstrapServiceInfo ¶
func (s ServiceInfo) GetBootstrapServiceInfo() config.ServiceInfo
type Telemetry ¶
type Telemetry struct {
Alloc,
TotalAlloc,
Sys,
Mallocs,
Frees,
LiveObjects uint64
}
Telemetry provides metrics (on a given device service) to system management.
type WritableInfo ¶
type WritableInfo struct {
// Level is the logging level of writing log message
LogLevel string
InsecureSecrets config.InsecureSecrets
}
WritableInfo is a struct which contains configuration settings that can be changed in the Registry .