config

package
v0.1.0-M1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2022 License: EPL-2.0 Imports: 27 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplySettings

func ApplySettings(
	cleanSession bool,
	settings SettingsAccessor,
	args map[string]interface{},
	statusPub message.Publisher,
	logger logger.Logger,
) error

ApplySettings applies all launch settings.

func CreateCloudConnection

func CreateCloudConnection(
	settings *LocalConnectionSettings,
	cleanSession bool,
	logger watermill.LoggerAdapter,
) (*conn.MQTTConnection, error)

CreateCloudConnection creates a remote mosquitto connection.

func CreateLocalConnection

func CreateLocalConnection(
	settings *LocalConnectionSettings,
	logger watermill.LoggerAdapter,
) (*conn.MQTTConnection, error)

CreateLocalConnection creates a local mosquitto connection.

func HonoConnect

func HonoConnect(sigs <-chan os.Signal,
	statusPub message.Publisher,
	honoClient *conn.MQTTConnection,
	logger logger.Logger,
) error

HonoConnect connects to the Hono client.

func LocalConnect

func LocalConnect(localClient *conn.MQTTConnection, logger watermill.LoggerAdapter) error

LocalConnect connects to the local client.

func NewCAPool

func NewCAPool(caFile string) (*x509.CertPool, error)

NewCAPool opens a certificates pool.

func NewHonoPub

func NewHonoPub(logger watermill.LoggerAdapter, honoClient *conn.MQTTConnection) message.Publisher

NewHonoPub returns publisher for the Hono message connection.

func NewHonoSub

func NewHonoSub(logger watermill.LoggerAdapter, honoClient *conn.MQTTConnection) message.Subscriber

NewHonoSub returns subscriber for the Hono message connection.

func NewOnlineHonoPub

func NewOnlineHonoPub(logger watermill.LoggerAdapter, honoClient *conn.MQTTConnection) message.Publisher

NewOnlineHonoPub returns publisher for the Hono message connection in online mode.

func ParseProvisioningJSON

func ParseProvisioningJSON(data []byte, settings *HubConnectionSettings) error

ParseProvisioningJSON parse and get settings values using the provided json content. The expected format should match the format used in the provisioning.json file. All values that are not present or have unexpected format are not filled in. Returns error if the provided data is not a valid json format.

func ReadConfig

func ReadConfig(path string, config interface{}) error

ReadConfig reads the configuration file provided settings.

func ReadProvisioning

func ReadProvisioning(path string, settings *HubConnectionSettings) error

ReadProvisioning reads the provisioning file provided settings.

func SetupTracing

func SetupTracing(router *message.Router, logger logger.Logger)

SetupTracing initializes the messages tracing.

Types

type Cleaner

type Cleaner func()

Cleaner type is used to define the clean-up function.

func CreateHubConnection

func CreateHubConnection(
	settings *HubConnectionSettings,
	nopStore bool,
	logger watermill.LoggerAdapter,
) (*conn.MQTTConnection, Cleaner, error)

CreateHubConnection creates a hub connection.

func NewFSTlsConfig

func NewFSTlsConfig(caCertPool *x509.CertPool, certFile, keyFile string) (*tls.Config, Cleaner, error)

NewFSTlsConfig initializes a file Hub TLS.

func NewHubTLSConfig

func NewHubTLSConfig(settings *TLSSettings, logger watermill.LoggerAdapter) (*tls.Config, Cleaner, error)

NewHubTLSConfig initializes the Hub TLS.

func NewTPMTlsConfig

func NewTPMTlsConfig(
	settings *TLSSettings,
	caCertPool *x509.CertPool,
	logger watermill.LoggerAdapter,
) (*tls.Config, Cleaner, error)

NewTPMTlsConfig initializes s TPM Hub TLS.

type HubConnectionSettings

type HubConnectionSettings struct {
	DeviceID        string `json:"deviceId"`
	DeviceIDPattern string `json:"deviceIdPattern"`

	TenantID string `json:"tenantId"`
	PolicyID string `json:"policyId"`
	Address  string `json:"address"`
	Password string `json:"password"`
	ClientID string `json:"clientId"`
	AuthID   string `json:"authId"`

	UseCertificate          bool `json:"-"`
	AutoProvisioningEnabled bool `json:"-"`

	TLSSettings
}

HubConnectionSettings contains remote connection related settings.

func (*HubConnectionSettings) Validate

func (c *HubConnectionSettings) Validate() error

Validate validates the hub connection settings.

type LocalConnectionSettings

type LocalConnectionSettings struct {
	LocalAddress  string `json:"localAddress"`
	LocalUsername string `json:"localUsername"`
	LocalPassword string `json:"localPassword"`
}

LocalConnectionSettings contains the local connection settings.

func (*LocalConnectionSettings) Validate

func (c *LocalConnectionSettings) Validate() error

Validate validates the local connection settings.

type Settings

type Settings struct {
	logger.LogSettings

	HubConnectionSettings

	LocalConnectionSettings

	ProvisioningFile string `json:"provisioningFile"`
}

Settings defines all configurable data that is used to setup the Suite Connector.

func DefaultSettings

func DefaultSettings() *Settings

DefaultSettings returns the default settings.

func (*Settings) DeepCopy

func (settings *Settings) DeepCopy() SettingsAccessor

DeepCopy implementation.

func (*Settings) HubConnection

func (settings *Settings) HubConnection() *HubConnectionSettings

HubConnection implementation.

func (*Settings) LocalConnection

func (settings *Settings) LocalConnection() *LocalConnectionSettings

LocalConnection implementation.

func (*Settings) Provisioning

func (settings *Settings) Provisioning() string

Provisioning implementation.

func (*Settings) ValidateDynamic

func (settings *Settings) ValidateDynamic() error

ValidateDynamic validates the settings that are changed runtime.

func (*Settings) ValidateStatic

func (settings *Settings) ValidateStatic() error

ValidateStatic validates the settings that could not be changed runtime.

type SettingsAccessor

type SettingsAccessor interface {
	// Provisioning returns the ProvisioningFile embedded field.
	Provisioning() string

	// LocalConnection returns the LocalConnectionSettings embedded field.
	LocalConnection() *LocalConnectionSettings

	// HubConnection returns HubConnectionSettings embedded field.
	HubConnection() *HubConnectionSettings

	// ValidateDynamic validates settings instance
	ValidateDynamic() error

	// Creates deep copy of this instance.
	DeepCopy() SettingsAccessor
}

SettingsAccessor is used accessing embedded struct members.

type TLSSettings

type TLSSettings struct {
	CACert string `json:"cacert"`

	Cert string `json:"cert"`
	Key  string `json:"key"`

	TPMKey    string `json:"tpmKey"`
	TPMKeyPub string `json:"tpmKeyPub"`
	TPMHandle uint64 `json:"tpmHandle"`
	TPMDevice string `json:"tpmDevice"`
}

TLSSettings represents the TLS configuration data.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL