From fec058c6147ed5a14a097a3d1a0e6ccac6eaa83c Mon Sep 17 00:00:00 2001 From: Manuel Imperiale Date: Mon, 28 Oct 2019 09:49:34 +0100 Subject: [PATCH] NOISSUE - Fix Redis envars (#903) * NOISSUE - Fix Redis envars Signed-off-by: Manuel Imperiale * Fix url Signed-off-by: Manuel Imperiale * Fix typo Signed-off-by: Manuel Imperiale --- .env | 21 +- bootstrap/README.md | 4 +- cmd/bootstrap/main.go | 194 +++++++++--------- cmd/lora/main.go | 94 ++++----- cmd/opcua/main.go | 54 ++--- docker/addons/lora-adapter/docker-compose.yml | 2 +- .../addons/opcua-adapter/docker-compose.yml | 2 +- lora/README.md | 46 ++--- opcua/README.md | 52 ++--- things/README.md | 8 +- 10 files changed, 240 insertions(+), 237 deletions(-) diff --git a/.env b/.env index dcba1be9..d3798af8 100644 --- a/.env +++ b/.env @@ -61,6 +61,9 @@ MF_THINGS_DB_USER=mainflux MF_THINGS_DB_PASS=mainflux MF_THINGS_DB=things MF_THINGS_SECRET=secret +MF_THINGS_ES_URL=localhost:6379 +MF_THINGS_ES_PASS= +MF_THINGS_ES_DB=0 ### Normalizer MF_NORMALIZER_LOG_LEVEL=debug @@ -96,6 +99,9 @@ MF_BOOTSTRAP_DB_SSL_MODE=disable MF_LORA_ADAPTER_LOG_LEVEL=debug MF_LORA_ADAPTER_MESSAGES_URL=tcp://lora.mqtt.mainflux.io:1883 MF_LORA_ADAPTER_HTTP_PORT=8187 +MF_LORA_ADAPTER_ROUTE_MAP_URL=localhost:6379 +MF_LORA_ADAPTER_ROUTE_MAP_PASS= +MF_LORA_ADAPTER_ROUTE_MAP_DB=0 ### OPC-UA MF_OPCUA_ADAPTER_HTTP_PORT=8188 @@ -103,17 +109,14 @@ MF_OPCUA_ADAPTER_LOG_LEVEL=debug MF_OPCUA_ADAPTER_SERVER_URI=opc.tcp://opcua.rocks:4840 MF_OPCUA_ADAPTER_NODE_NAMESPACE=0 MF_OPCUA_ADAPTER_NODE_IDENTIFIER=2256 -MF_OPCUA_ADAPTER_POLICY="" -MF_OPCUA_ADAPTER_MODE="" -MF_OPCUA_ADAPTER_CERT_FILE="" -MF_OPCUA_ADAPTER_KEY_FILE="" -MF_THINGS_ES_URL=localhost:6379 -MF_THINGS_ES_PASS="" -MF_THINGS_ES_DB=0 +MF_OPCUA_ADAPTER_POLICY= +MF_OPCUA_ADAPTER_MODE= +MF_OPCUA_ADAPTER_CERT_FILE= +MF_OPCUA_ADAPTER_KEY_FILE= MF_OPCUA_ADAPTER_ROUTE_MAP_URL=localhost:6379 -MF_OPCUA_ADAPTER_ROUTE_MAP_PASS="" +MF_OPCUA_ADAPTER_ROUTE_MAP_PASS= MF_OPCUA_ADAPTER_ROUTE_MAP_DB=0 -MF_OPCUA_ADAPTER_ROUTE_MAP_NAME=opcua +MF_OPCUA_ADAPTER_EVENT_CONSUMER=opcua ### Cassandra Writer MF_CASSANDRA_WRITER_LOG_LEVEL=debug diff --git a/bootstrap/README.md b/bootstrap/README.md index 71650f1b..0e389c18 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -62,7 +62,7 @@ The service is configured using the environment variables presented in the follo | MF_BOOTSTRAP_ES_URL | Bootstrap service event source URL | localhost:6379 | | MF_BOOTSTRAP_ES_PASS | Bootstrap service event source password | | | MF_BOOTSTRAP_ES_DB | Bootstrap service event source database | 0 | -| MF_BOOTSTRAP_INSTANCE_NAME | Bootstrap service instance name | bootstrap | +| MF_BOOTSTRAP_EVENT_CONSUMER | Bootstrap service event source consumer name | bootstrap | | MF_JAEGER_URL | Jaeger server URL | localhost:6831 | | MF_BOOTSTRAP_THINGS_TIMEOUT | Things gRPC request timeout in seconds | 1 | @@ -108,7 +108,7 @@ version: "2" MF_BOOTSTRAP_ES_URL: [Bootstrap service event source URL] MF_BOOTSTRAP_ES_PASS: [Bootstrap service event source password] MF_BOOTSTRAP_ES_DB: [Bootstrap service event source database] - MF_BOOTSTRAP_INSTANCE_NAME: [Bootstrap service instance name] + MF_BOOTSTRAP_EVENT_CONSUMER: [Bootstrap service event source consumer name] MF_JAEGER_URL: [Jaeger server URL] MF_BOOTSTRAP_THINGS_TIMEOUT: [Things gRPC request timeout in seconds] ``` diff --git a/cmd/bootstrap/main.go b/cmd/bootstrap/main.go index b37cc436..84ce970f 100644 --- a/cmd/bootstrap/main.go +++ b/cmd/bootstrap/main.go @@ -38,86 +38,86 @@ import ( ) const ( - defLogLevel = "error" - defDBHost = "localhost" - defDBPort = "5432" - defDBUser = "mainflux" - defDBPass = "mainflux" - defDBName = "bootstrap" - defDBSSLMode = "disable" - defDBSSLCert = "" - defDBSSLKey = "" - defDBSSLRootCert = "" - defEncryptKey = "12345678910111213141516171819202" - defClientTLS = "false" - defCACerts = "" - defPort = "8180" - defServerCert = "" - defServerKey = "" - defBaseURL = "http://localhost" - defThingsPrefix = "" - defUsersURL = "localhost:8181" - defThingsESURL = "localhost:6379" - defThingsESPass = "" - defThingsESDB = "0" - defESURL = "localhost:6379" - defESPass = "" - defESDB = "0" - defInstanceName = "bootstrap" - defJaegerURL = "" - defUsersTimeout = "1" // in seconds + defLogLevel = "error" + defDBHost = "localhost" + defDBPort = "5432" + defDBUser = "mainflux" + defDBPass = "mainflux" + defDBName = "bootstrap" + defDBSSLMode = "disable" + defDBSSLCert = "" + defDBSSLKey = "" + defDBSSLRootCert = "" + defEncryptKey = "12345678910111213141516171819202" + defClientTLS = "false" + defCACerts = "" + defPort = "8180" + defServerCert = "" + defServerKey = "" + defBaseURL = "http://localhost" + defThingsPrefix = "" + defUsersURL = "localhost:8181" + defThingsESURL = "localhost:6379" + defThingsESPass = "" + defThingsESDB = "0" + defESURL = "localhost:6379" + defESPass = "" + defESDB = "0" + defESConsumerName = "bootstrap" + defJaegerURL = "" + defUsersTimeout = "1" // in seconds - envLogLevel = "MF_BOOTSTRAP_LOG_LEVEL" - envDBHost = "MF_BOOTSTRAP_DB_HOST" - envDBPort = "MF_BOOTSTRAP_DB_PORT" - envDBUser = "MF_BOOTSTRAP_DB_USER" - envDBPass = "MF_BOOTSTRAP_DB_PASS" - envDBName = "MF_BOOTSTRAP_DB" - envDBSSLMode = "MF_BOOTSTRAP_DB_SSL_MODE" - envDBSSLCert = "MF_BOOTSTRAP_DB_SSL_CERT" - envDBSSLKey = "MF_BOOTSTRAP_DB_SSL_KEY" - envDBSSLRootCert = "MF_BOOTSTRAP_DB_SSL_ROOT_CERT" - envEncryptKey = "MF_BOOTSTRAP_ENCRYPT_KEY" - envClientTLS = "MF_BOOTSTRAP_CLIENT_TLS" - envCACerts = "MF_BOOTSTRAP_CA_CERTS" - envPort = "MF_BOOTSTRAP_PORT" - envServerCert = "MF_BOOTSTRAP_SERVER_CERT" - envServerKey = "MF_BOOTSTRAP_SERVER_KEY" - envBaseURL = "MF_SDK_BASE_URL" - envThingsPrefix = "MF_SDK_THINGS_PREFIX" - envUsersURL = "MF_USERS_URL" - envThingsESURL = "MF_THINGS_ES_URL" - envThingsESPass = "MF_THINGS_ES_PASS" - envThingsESDB = "MF_THINGS_ES_DB" - envESURL = "MF_BOOTSTRAP_ES_URL" - envESPass = "MF_BOOTSTRAP_ES_PASS" - envESDB = "MF_BOOTSTRAP_ES_DB" - envInstanceName = "MF_BOOTSTRAP_INSTANCE_NAME" - envJaegerURL = "MF_JAEGER_URL" - envUsersTimeout = "MF_BOOTSTRAP_USERS_TIMEOUT" + envLogLevel = "MF_BOOTSTRAP_LOG_LEVEL" + envDBHost = "MF_BOOTSTRAP_DB_HOST" + envDBPort = "MF_BOOTSTRAP_DB_PORT" + envDBUser = "MF_BOOTSTRAP_DB_USER" + envDBPass = "MF_BOOTSTRAP_DB_PASS" + envDBName = "MF_BOOTSTRAP_DB" + envDBSSLMode = "MF_BOOTSTRAP_DB_SSL_MODE" + envDBSSLCert = "MF_BOOTSTRAP_DB_SSL_CERT" + envDBSSLKey = "MF_BOOTSTRAP_DB_SSL_KEY" + envDBSSLRootCert = "MF_BOOTSTRAP_DB_SSL_ROOT_CERT" + envEncryptKey = "MF_BOOTSTRAP_ENCRYPT_KEY" + envClientTLS = "MF_BOOTSTRAP_CLIENT_TLS" + envCACerts = "MF_BOOTSTRAP_CA_CERTS" + envPort = "MF_BOOTSTRAP_PORT" + envServerCert = "MF_BOOTSTRAP_SERVER_CERT" + envServerKey = "MF_BOOTSTRAP_SERVER_KEY" + envBaseURL = "MF_SDK_BASE_URL" + envThingsPrefix = "MF_SDK_THINGS_PREFIX" + envUsersURL = "MF_USERS_URL" + envThingsESURL = "MF_THINGS_ES_URL" + envThingsESPass = "MF_THINGS_ES_PASS" + envThingsESDB = "MF_THINGS_ES_DB" + envESURL = "MF_BOOTSTRAP_ES_URL" + envESPass = "MF_BOOTSTRAP_ES_PASS" + envESDB = "MF_BOOTSTRAP_ES_DB" + envESConsumerName = "MF_BOOTSTRAP_EVENT_CONSUMER" + envJaegerURL = "MF_JAEGER_URL" + envUsersTimeout = "MF_BOOTSTRAP_USERS_TIMEOUT" ) type config struct { - logLevel string - dbConfig postgres.Config - clientTLS bool - encKey []byte - caCerts string - httpPort string - serverCert string - serverKey string - baseURL string - thingsPrefix string - usersURL string - esThingsURL string - esThingsPass string - esThingsDB string - esURL string - esPass string - esDB string - instanceName string - jaegerURL string - usersTimeout time.Duration + logLevel string + dbConfig postgres.Config + clientTLS bool + encKey []byte + caCerts string + httpPort string + serverCert string + serverKey string + baseURL string + thingsPrefix string + usersURL string + esThingsURL string + esThingsPass string + esThingsDB string + esURL string + esPass string + esDB string + esConsumerName string + jaegerURL string + usersTimeout time.Duration } func main() { @@ -147,7 +147,7 @@ func main() { errs := make(chan error, 2) go startHTTPServer(svc, cfg, logger, errs) - go subscribeToThingsES(svc, thingsESConn, cfg.instanceName, logger) + go subscribeToThingsES(svc, thingsESConn, cfg.esConsumerName, logger) go func() { c := make(chan os.Signal) @@ -192,26 +192,26 @@ func loadConfig() config { } return config{ - logLevel: mainflux.Env(envLogLevel, defLogLevel), - dbConfig: dbConfig, - clientTLS: tls, - encKey: encKey, - caCerts: mainflux.Env(envCACerts, defCACerts), - httpPort: mainflux.Env(envPort, defPort), - serverCert: mainflux.Env(envServerCert, defServerCert), - serverKey: mainflux.Env(envServerKey, defServerKey), - baseURL: mainflux.Env(envBaseURL, defBaseURL), - thingsPrefix: mainflux.Env(envThingsPrefix, defThingsPrefix), - usersURL: mainflux.Env(envUsersURL, defUsersURL), - esThingsURL: mainflux.Env(envThingsESURL, defThingsESURL), - esThingsPass: mainflux.Env(envThingsESPass, defThingsESPass), - esThingsDB: mainflux.Env(envThingsESDB, defThingsESDB), - esURL: mainflux.Env(envESURL, defESURL), - esPass: mainflux.Env(envESPass, defESPass), - esDB: mainflux.Env(envESDB, defESDB), - instanceName: mainflux.Env(envInstanceName, defInstanceName), - jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), - usersTimeout: time.Duration(timeout) * time.Second, + logLevel: mainflux.Env(envLogLevel, defLogLevel), + dbConfig: dbConfig, + clientTLS: tls, + encKey: encKey, + caCerts: mainflux.Env(envCACerts, defCACerts), + httpPort: mainflux.Env(envPort, defPort), + serverCert: mainflux.Env(envServerCert, defServerCert), + serverKey: mainflux.Env(envServerKey, defServerKey), + baseURL: mainflux.Env(envBaseURL, defBaseURL), + thingsPrefix: mainflux.Env(envThingsPrefix, defThingsPrefix), + usersURL: mainflux.Env(envUsersURL, defUsersURL), + esThingsURL: mainflux.Env(envThingsESURL, defThingsESURL), + esThingsPass: mainflux.Env(envThingsESPass, defThingsESPass), + esThingsDB: mainflux.Env(envThingsESDB, defThingsESDB), + esURL: mainflux.Env(envESURL, defESURL), + esPass: mainflux.Env(envESPass, defESPass), + esDB: mainflux.Env(envESDB, defESDB), + esConsumerName: mainflux.Env(envESConsumerName, defESConsumerName), + jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), + usersTimeout: time.Duration(timeout) * time.Second, } } diff --git a/cmd/lora/main.go b/cmd/lora/main.go index 4ec55b00..9aa4077a 100644 --- a/cmd/lora/main.go +++ b/cmd/lora/main.go @@ -28,29 +28,29 @@ import ( ) const ( - defHTTPPort = "8180" - defLoraMsgURL = "tcp://localhost:1883" - defNatsURL = nats.DefaultURL - defLogLevel = "error" - defESURL = "localhost:6379" - defESPass = "" - defESDB = "0" - defInstanceName = "lora" - defRouteMapURL = "localhost:6379" - defRouteMapPass = "" - defRouteMapDB = "0" + defHTTPPort = "8180" + defLoraMsgURL = "tcp://localhost:1883" + defNatsURL = nats.DefaultURL + defLogLevel = "error" + defESURL = "localhost:6379" + defESPass = "" + defESDB = "0" + defESConsumerName = "lora" + defRouteMapURL = "localhost:6379" + defRouteMapPass = "" + defRouteMapDB = "0" - envHTTPPort = "MF_LORA_ADAPTER_HTTP_PORT" - envLoraMsgURL = "MF_LORA_ADAPTER_MESSAGES_URL" - envNatsURL = "MF_NATS_URL" - envLogLevel = "MF_LORA_ADAPTER_LOG_LEVEL" - envESURL = "MF_THINGS_ES_URL" - envESPass = "MF_THINGS_ES_PASS" - envESDB = "MF_THINGS_ES_DB" - envInstanceName = "MF_LORA_ADAPTER_INSTANCE_NAME" - envRouteMapURL = "MF_LORA_ADAPTER_ROUTEMAP_URL" - envRouteMapPass = "MF_LORA_ADAPTER_ROUTEMAP_PASS" - envRouteMapDB = "MF_LORA_ADAPTER_ROUTEMAP_DB" + envHTTPPort = "MF_LORA_ADAPTER_HTTP_PORT" + envLoraMsgURL = "MF_LORA_ADAPTER_MESSAGES_URL" + envNatsURL = "MF_NATS_URL" + envLogLevel = "MF_LORA_ADAPTER_LOG_LEVEL" + envESURL = "MF_THINGS_ES_URL" + envESPass = "MF_THINGS_ES_PASS" + envESDB = "MF_THINGS_ES_DB" + envESConsumerName = "MF_LORA_ADAPTER_EVENT_CONSUMER" + envRouteMapURL = "MF_LORA_ADAPTER_ROUTE_MAP_URL" + envRouteMapPass = "MF_LORA_ADAPTER_ROUTE_MAP_PASS" + envRouteMapDB = "MF_LORA_ADAPTER_ROUTE_MAP_DB" loraServerTopic = "application/+/device/+/rx" @@ -59,17 +59,17 @@ const ( ) type config struct { - httpPort string - loraMsgURL string - natsURL string - logLevel string - esURL string - esPass string - esDB string - instanceName string - routeMapURL string - routeMapPass string - routeMapDB string + httpPort string + loraMsgURL string + natsURL string + logLevel string + esURL string + esPass string + esDB string + esConsumerName string + routeMapURL string + routeMapPass string + routeMapDB string } func main() { @@ -115,7 +115,7 @@ func main() { ) go subscribeToLoRaBroker(svc, mqttConn, logger) - go subscribeToThingsES(svc, esConn, cfg.instanceName, logger) + go subscribeToThingsES(svc, esConn, cfg.esConsumerName, logger) errs := make(chan error, 2) @@ -133,17 +133,17 @@ func main() { func loadConfig() config { return config{ - httpPort: mainflux.Env(envHTTPPort, defHTTPPort), - loraMsgURL: mainflux.Env(envLoraMsgURL, defLoraMsgURL), - natsURL: mainflux.Env(envNatsURL, defNatsURL), - logLevel: mainflux.Env(envLogLevel, defLogLevel), - esURL: mainflux.Env(envESURL, defESURL), - esPass: mainflux.Env(envESPass, defESPass), - esDB: mainflux.Env(envESDB, defESDB), - instanceName: mainflux.Env(envInstanceName, defInstanceName), - routeMapURL: mainflux.Env(envRouteMapURL, defRouteMapURL), - routeMapPass: mainflux.Env(envRouteMapPass, defRouteMapPass), - routeMapDB: mainflux.Env(envRouteMapDB, defRouteMapDB), + httpPort: mainflux.Env(envHTTPPort, defHTTPPort), + loraMsgURL: mainflux.Env(envLoraMsgURL, defLoraMsgURL), + natsURL: mainflux.Env(envNatsURL, defNatsURL), + logLevel: mainflux.Env(envLogLevel, defLogLevel), + esURL: mainflux.Env(envESURL, defESURL), + esPass: mainflux.Env(envESPass, defESPass), + esDB: mainflux.Env(envESDB, defESDB), + esConsumerName: mainflux.Env(envESConsumerName, defESConsumerName), + routeMapURL: mainflux.Env(envRouteMapURL, defRouteMapURL), + routeMapPass: mainflux.Env(envRouteMapPass, defRouteMapPass), + routeMapDB: mainflux.Env(envRouteMapDB, defRouteMapDB), } } @@ -207,12 +207,12 @@ func subscribeToThingsES(svc lora.Service, client *r.Client, consumer string, lo eventStore := redis.NewEventStore(svc, client, consumer, logger) logger.Info("Subscribed to Redis Event Store") if err := eventStore.Subscribe("mainflux.things"); err != nil { - logger.Warn(fmt.Sprintf("Lora-adapter service failed to subscribe to event sourcing: %s", err)) + logger.Warn(fmt.Sprintf("Lora-adapter service failed to subscribe to Redis event source: %s", err)) } } func newRouteMapRepositoy(client *r.Client, prefix string, logger logger.Logger) lora.RouteMapRepository { - logger.Info(fmt.Sprintf("Connected to %s Redis Route map", prefix)) + logger.Info(fmt.Sprintf("Connected to %s Redis Route-map", prefix)) return redis.NewRouteMapRepository(client, prefix) } diff --git a/cmd/opcua/main.go b/cmd/opcua/main.go index 05adc86f..2e763627 100644 --- a/cmd/opcua/main.go +++ b/cmd/opcua/main.go @@ -41,12 +41,13 @@ const ( defESURL = "localhost:6379" defESPass = "" defESDB = "0" - defInstanceName = "opcua" + defESConsumerName = "opcua" defRouteMapURL = "localhost:6379" defRouteMapPass = "" defRouteMapDB = "0" envHTTPPort = "MF_OPCUA_ADAPTER_HTTP_PORT" + envLogLevel = "MF_OPCUA_ADAPTER_LOG_LEVEL" envOPCServerURI = "MF_OPCUA_ADAPTER_SERVER_URI" envOPCNodeNamespace = "MF_OPCUA_ADAPTER_NODE_NAMESPACE" envOPCNodeIdentifier = "MF_OPCUA_ADAPTER_NODE_IDENTIFIER" @@ -55,11 +56,10 @@ const ( envOPCCertFile = "MF_OPCUA_ADAPTER_CERT_FILE" envOPCKeyFile = "MF_OPCUA_ADAPTER_KEY_FILE" envNatsURL = "MF_NATS_URL" - envLogLevel = "MF_LORA_ADAPTER_LOG_LEVEL" envESURL = "MF_THINGS_ES_URL" envESPass = "MF_THINGS_ES_PASS" envESDB = "MF_THINGS_ES_DB" - envInstanceName = "MF_OPCUA_ADAPTER_ROUTE_MAP_NAME" + envESConsumerName = "MF_OPCUA_ADAPTER_EVENT_CONSUMER" envRouteMapURL = "MF_OPCUA_ADAPTER_ROUTE_MAP_URL" envRouteMapPass = "MF_OPCUA_ADAPTER_ROUTE_MAP_PASS" envRouteMapDB = "MF_OPCUA_ADAPTER_ROUTE_MAP_DB" @@ -69,17 +69,17 @@ const ( ) type config struct { - httpPort string - opcConfig opcua.Config - natsURL string - logLevel string - esURL string - esPass string - esDB string - instanceName string - routeMapURL string - routeMapPass string - routeMapDB string + httpPort string + opcConfig opcua.Config + natsURL string + logLevel string + esURL string + esPass string + esDB string + esConsumerName string + routeMapURL string + routeMapPass string + routeMapDB string } func main() { @@ -123,7 +123,7 @@ func main() { ) go subscribeToOpcServer(svc, cfg.opcConfig, logger) - go subscribeToThingsES(svc, esConn, cfg.instanceName, logger) + go subscribeToThingsES(svc, esConn, cfg.esConsumerName, logger) errs := make(chan error, 2) @@ -150,17 +150,17 @@ func loadConfig() config { KeyFile: mainflux.Env(envOPCKeyFile, defOPCKeyFile), } return config{ - httpPort: mainflux.Env(envHTTPPort, defHTTPPort), - opcConfig: oc, - natsURL: mainflux.Env(envNatsURL, defNatsURL), - logLevel: mainflux.Env(envLogLevel, defLogLevel), - esURL: mainflux.Env(envESURL, defESURL), - esPass: mainflux.Env(envESPass, defESPass), - esDB: mainflux.Env(envESDB, defESDB), - instanceName: mainflux.Env(envInstanceName, defInstanceName), - routeMapURL: mainflux.Env(envRouteMapURL, defRouteMapURL), - routeMapPass: mainflux.Env(envRouteMapPass, defRouteMapPass), - routeMapDB: mainflux.Env(envRouteMapDB, defRouteMapDB), + httpPort: mainflux.Env(envHTTPPort, defHTTPPort), + opcConfig: oc, + natsURL: mainflux.Env(envNatsURL, defNatsURL), + logLevel: mainflux.Env(envLogLevel, defLogLevel), + esURL: mainflux.Env(envESURL, defESURL), + esPass: mainflux.Env(envESPass, defESPass), + esDB: mainflux.Env(envESDB, defESDB), + esConsumerName: mainflux.Env(envESConsumerName, defESConsumerName), + routeMapURL: mainflux.Env(envRouteMapURL, defRouteMapURL), + routeMapPass: mainflux.Env(envRouteMapPass, defRouteMapPass), + routeMapDB: mainflux.Env(envRouteMapDB, defRouteMapDB), } } @@ -205,7 +205,7 @@ func subscribeToOpcServer(svc opcua.Service, cfg opcua.Config, logger logger.Log func subscribeToThingsES(svc opcua.Service, client *r.Client, prefix string, logger logger.Logger) { eventStore := redis.NewEventStore(svc, client, prefix, logger) if err := eventStore.Subscribe("mainflux.things"); err != nil { - logger.Warn(fmt.Sprintf("Failed to subscribe to Redis event sourcing: %s", err)) + logger.Warn(fmt.Sprintf("Failed to subscribe to Redis event source: %s", err)) } } diff --git a/docker/addons/lora-adapter/docker-compose.yml b/docker/addons/lora-adapter/docker-compose.yml index 81604e31..186279e7 100644 --- a/docker/addons/lora-adapter/docker-compose.yml +++ b/docker/addons/lora-adapter/docker-compose.yml @@ -26,7 +26,7 @@ services: environment: MF_LORA_ADAPTER_LOG_LEVEL: ${MF_LORA_ADAPTER_LOG_LEVEL} MF_THINGS_ES_URL: es-redis:${MF_REDIS_TCP_PORT} - MF_LORA_ADAPTER_ROUTEMAP_URL: lora-redis:${MF_REDIS_TCP_PORT} + MF_LORA_ADAPTER_ROUTE_MAP_URL: lora-redis:${MF_REDIS_TCP_PORT} MF_LORA_ADAPTER_MESSAGES_URL: ${MF_LORA_ADAPTER_MESSAGES_URL} MF_LORA_ADAPTER_HTTP_PORT: ${MF_LORA_ADAPTER_HTTP_PORT} MF_NATS_URL: ${MF_NATS_URL} diff --git a/docker/addons/opcua-adapter/docker-compose.yml b/docker/addons/opcua-adapter/docker-compose.yml index 1ca0d327..7a024e89 100644 --- a/docker/addons/opcua-adapter/docker-compose.yml +++ b/docker/addons/opcua-adapter/docker-compose.yml @@ -40,7 +40,7 @@ services: MF_THINGS_ES_URL: es-redis:${MF_REDIS_TCP_PORT} MF_THINGS_ES_PASS: ${MF_THINGS_ES_PASS} MF_THINGS_ES_DB: ${MF_THINGS_ES_DB} - MF_OPCUA_ADAPTER_ROUTE_MAP_NAME: [OPC-UA adapter instance name] + MF_OPCUA_ADAPTER_EVENT_CONSUMER: ${MF_OPCUA_ADAPTER_EVENT_CONSUMER} ports: - ${MF_OPCUA_ADAPTER_HTTP_PORT}:${MF_OPCUA_ADAPTER_HTTP_PORT} networks: diff --git a/lora/README.md b/lora/README.md index fba38cee..0179e886 100644 --- a/lora/README.md +++ b/lora/README.md @@ -11,19 +11,19 @@ The service is configured using the environment variables presented in the following table. Note that any unset variables will be replaced with their default values. -| Variable | Description | Default | -|----------------------------------|---------------------------------------|-----------------------| -| MF_LORA_ADAPTER_HTTP_PORT | Service HTTP port | 8180 | -| MF_LORA_ADAPTER_LOG_LEVEL | Log level for the Lora Adapter | error | -| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | -| MF_LORA_ADAPTER_MESSAGES_URL | LoRa Server mqtt broker URL | tcp://localhost:1883 | -| MF_LORA_ADAPTER_ROUTEMAP_URL | Routemap database URL | localhost:6379 | -| MF_LORA_ADAPTER_ROUTEMAP_PASS | Routemap database password | | -| MF_LORA_ADAPTER_ROUTEMAP_DB | Routemap instance that should be used | 0 | -| MF_THINGS_ES_URL | Things service event store URL | localhost:6379 | -| MF_THINGS_ES_PASS | Things service event store password | | -| MF_THINGS_ES_DB | Things service event store db | 0 | -| MF_LORA_ADAPTER_INSTANCE_NAME | LoRa adapter instance name | lora | +| Variable | Description | Default | +|----------------------------------|--------------------------------------|-----------------------| +| MF_LORA_ADAPTER_HTTP_PORT | Service HTTP port | 8180 | +| MF_LORA_ADAPTER_LOG_LEVEL | Service Log level | error | +| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | +| MF_LORA_ADAPTER_MESSAGES_URL | LoRa Server MQTT broker URL | tcp://localhost:1883 | +| MF_LORA_ADAPTER_ROUTE_MAP_URL | Route-map database URL | localhost:6379 | +| MF_LORA_ADAPTER_ROUTE_MAP_PASS | Route-map database password | | +| MF_LORA_ADAPTER_ROUTE_MAP_DB | Route-map instance | 0 | +| MF_THINGS_ES_URL | Things service event source URL | localhost:6379 | +| MF_THINGS_ES_PASS | Things service event source password | | +| MF_THINGS_ES_DB | Things service event source DB | 0 | +| MF_LORA_ADAPTER_EVENT_CONSUMER | Service event consumer name | lora | ## Deployment @@ -37,16 +37,16 @@ services: image: mainflux/lora:[version] container_name: [instance name] environment: - MF_LORA_ADAPTER_LOG_LEVEL: [Lora Adapter Log Level] + MF_LORA_ADAPTER_LOG_LEVEL: [Service Log Level] MF_NATS_URL: [NATS instance URL] - MF_LORA_ADAPTER_MESSAGES_URL: [LoRa Server mqtt broker URL] - MF_LORA_ADAPTER_ROUTEMAP_URL: [Lora adapter routemap URL] - MF_LORA_ADAPTER_ROUTEMAP_PASS: [Lora adapter routemap password] - MF_LORA_ADAPTER_ROUTEMAP_DB: [Lora adapter routemap instance] - MF_THINGS_ES_URL: [Things service event store URL] - MF_THINGS_ES_PASS: [Things service event store password] - MF_THINGS_ES_DB: [Things service event store db] - MF_LORA_ADAPTER_INSTANCE_NAME: [LoRa adapter instance name] + MF_LORA_ADAPTER_MESSAGES_URL: [LoRa Server MQTT broker URL] + MF_LORA_ADAPTER_ROUTE_MAP_URL: [Route-map database URL] + MF_LORA_ADAPTER_ROUTE_MAP_PASS: [Route-map database password] + MF_LORA_ADAPTER_ROUTE_MAP_DB: [Route-map instance] + MF_THINGS_ES_URL: [Things event source URL] + MF_THINGS_ES_PASS: [Things event source password] + MF_THINGS_ES_DB: [Things event source DB instance] + MF_LORA_ADAPTER_EVENT_CONSUMER: [Service event consumer name] ``` To start the service outside of the container, execute the following shell script: @@ -64,7 +64,7 @@ make lora make install # set the environment variables and run the service -MF_LORA_ADAPTER_LOG_LEVEL=[Lora Adapter Log Level] MF_NATS_URL=[NATS instance URL] MF_LORA_ADAPTER_MESSAGES_URL=[LoRa Server mqtt broker URL] MF_LORA_ADAPTER_ROUTEMAP_URL=[Lora adapter routemap URL] MF_LORA_ADAPTER_ROUTEMAP_PASS=[Lora adapter routemap password] MF_LORA_ADAPTER_ROUTEMAP_DB=[Lora adapter routemap instance] MF_THINGS_ES_URL=[Things service event store URL] MF_THINGS_ES_PASS=[Things service event store password] MF_THINGS_ES_DB=[Things service event store db] MF_LORA_ADAPTER_INSTANCE_NAME=[LoRa adapter instance name] $GOBIN/mainflux-lora +MF_LORA_ADAPTER_LOG_LEVEL=[Lora Adapter Log Level] MF_NATS_URL=[NATS instance URL] MF_LORA_ADAPTER_MESSAGES_URL=[LoRa Server mqtt broker URL] MF_LORA_ADAPTER_ROUTE_MAP_URL=[Lora adapter routemap URL] MF_LORA_ADAPTER_ROUTE_MAP_PASS=[Lora adapter routemap password] MF_LORA_ADAPTER_ROUTE_MAP_DB=[Lora adapter routemap instance] MF_THINGS_ES_URL=[Things service event source URL] MF_THINGS_ES_PASS=[Things service event source password] MF_THINGS_ES_DB=[Things service event source password] MF_OPCUA_ADAPTER_EVENT_CONSUMER=[LoRa adapter instance name] $GOBIN/mainflux-lora ``` ### Using docker-compose diff --git a/opcua/README.md b/opcua/README.md index ee668499..9ba57eed 100644 --- a/opcua/README.md +++ b/opcua/README.md @@ -11,25 +11,25 @@ The service is configured using the environment variables presented in the following table. Note that any unset variables will be replaced with their default values. -| Variable | Description | Default | -|----------------------------------|----------------------------------------|----------------------------| -| MF_OPCUA_ADAPTER_HTTP_PORT | Service HTTP port | 8188 | -| MF_OPCUA_ADAPTER_LOG_LEVEL | Log level for the OPC-UA Adapter | error | -| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | -| MF_OPCUA_ADAPTER_SERVER_URI | OPC-UA Server subscription URI | opc.tcp://opcua.rocks:4840 | -| MF_OPCUA_ADAPTER_NODE_NAMESPACE | OPC-UA Server Node Namespace | 0 | -| MF_OPCUA_ADAPTER_NODE_IDENTIFIER | OPC-UA Server Node Identifier | 2256 | -| MF_OPCUA_ADAPTER_POLICY | OPC-UA Server Policy | | -| MF_OPCUA_ADAPTER_MODE | OPC-UA Server Mode | | -| MF_OPCUA_ADAPTER_CERT_FILE | OPC-UA Server Certificate file | | -| MF_OPCUA_ADAPTER_KEY_FILE | OPC-UA Server Key file | | -| MF_OPCUA_ADAPTER_ROUTE_MAP_URL | Route-map database URL | localhost:6379 | -| MF_OPCUA_ADAPTER_ROUTE_MAP_PASS | Route-map database password | | -| MF_OPCUA_ADAPTER_ROUTE_MAP_DB | Route-map instance that should be used | 0 | -| MF_THINGS_ES_URL | Things service event store URL | localhost:6379 | -| MF_THINGS_ES_PASS | Things service event store password | | -| MF_THINGS_ES_DB | Things service event store db | 0 | -| MF_OPCUA_ADAPTER_ROUTE_MAP_NAME | OPC-UA adapter instance name | opcua | +| Variable | Description | Default | +|----------------------------------|--------------------------------------|----------------------------| +| MF_OPCUA_ADAPTER_HTTP_PORT | Service HTTP port | 8188 | +| MF_OPCUA_ADAPTER_LOG_LEVEL | Service Log level | error | +| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | +| MF_OPCUA_ADAPTER_SERVER_URI | OPC-UA Server subscription URI | opc.tcp://opcua.rocks:4840 | +| MF_OPCUA_ADAPTER_NODE_NAMESPACE | OPC-UA Server Node Namespace | 0 | +| MF_OPCUA_ADAPTER_NODE_IDENTIFIER | OPC-UA Server Node Identifier | 2256 | +| MF_OPCUA_ADAPTER_POLICY | OPC-UA Server Policy | | +| MF_OPCUA_ADAPTER_MODE | OPC-UA Server Mode | | +| MF_OPCUA_ADAPTER_CERT_FILE | OPC-UA Server Certificate file | | +| MF_OPCUA_ADAPTER_KEY_FILE | OPC-UA Server Key file | | +| MF_OPCUA_ADAPTER_ROUTE_MAP_URL | Route-map database URL | localhost:6379 | +| MF_OPCUA_ADAPTER_ROUTE_MAP_PASS | Route-map database password | | +| MF_OPCUA_ADAPTER_ROUTE_MAP_DB | Route-map instance name | 0 | +| MF_THINGS_ES_URL | Things service event source URL | localhost:6379 | +| MF_THINGS_ES_PASS | Things service event source password | | +| MF_THINGS_ES_DB | Things service event source DB | 0 | +| MF_OPCUA_ADAPTER_EVENT_CONSUMER | Service event consumer name | opcua | ## Deployment @@ -44,7 +44,7 @@ services: container_name: [instance name] environment: MF_OPCUA_ADAPTER_HTTP_PORT: [Service HTTP port] - MF_OPCUA_ADAPTER_LOG_LEVEL: [OPC-UA Adapter Log Level] + MF_OPCUA_ADAPTER_LOG_LEVEL: [Service Log Level] MF_NATS_URL: [NATS instance URL] MF_OPCUA_ADAPTER_SERVER_URI: [OPC-UA Server subscription URI] MF_OPCUA_ADAPTER_NODE_NAMESPACE: [OPC-UA Server Node Namespace] @@ -55,11 +55,11 @@ services: MF_OPCUA_ADAPTER_KEY_FILE: [OPC-UA Server Key file] MF_OPCUA_ADAPTER_ROUTE_MAP_URL: [Route-map database URL] MF_OPCUA_ADAPTER_ROUTE_MAP_PASS: [Route-map database password] - MF_OPCUA_ADAPTER_ROUTE_MAP_DB: [Route-map instance that should be used] - MF_THINGS_ES_URL: [Things service event store URL] - MF_THINGS_ES_PASS: [Things service event store password] - MF_THINGS_ES_DB: [Things service event store db] - MF_OPCUA_ADAPTER_ROUTE_MAP_NAME: [OPC-UA adapter instance name] + MF_OPCUA_ADAPTER_ROUTE_MAP_DB: [Route-map instance name] + MF_THINGS_ES_URL: [Things event source URL] + MF_THINGS_ES_PASS: [Things event source password] + MF_THINGS_ES_DB: [Things event source DB instance] + MF_OPCUA_ADAPTER_EVENT_CONSUMER: [Service event consumer name] ``` To start the service outside of the container, execute the following shell script: @@ -77,7 +77,7 @@ make opcua make install # set the environment variables and run the service -MF_OPCUA_ADAPTER_HTTP_PORT=[Service HTTP port] MF_OPCUA_ADAPTER_LOG_LEVEL=[OPC-UA Adapter Log Level] MF_NATS_URL=[NATS instance URL] MF_OPCUA_ADAPTER_SERVER_URI=[OPC-UA Server subscription URI] MF_OPCUA_ADAPTER_NODE_NAMESPACE=[OPC-UA Server Node Namespace] MF_OPCUA_ADAPTER_NODE_IDENTIFIER=[OPC-UA Server Node Identifier] MF_OPCUA_ADAPTER_POLICY=[OPC-UA Server Policy] MF_OPCUA_ADAPTER_MODE=[OPC-UA Server Mode] MF_OPCUA_ADAPTER_CERT_FILE=[OPC-UA Server Certificate file] MF_OPCUA_ADAPTER_KEY_FILE=[OPC-UA Server Key file] MF_OPCUA_ADAPTER_ROUTE_MAP_URL=[Route-map database URL] MF_OPCUA_ADAPTER_ROUTE_MAP_PASS=[Route-map database password] MF_OPCUA_ADAPTER_ROUTE_MAP_DB=[Route-map instance that should be used] MF_THINGS_ES_URL=[Things service event store URL] MF_THINGS_ES_PASS=[Things service event store password] MF_THINGS_ES_DB=[Things service event store db] MF_OPCUA_ADAPTER_ROUTE_MAP_NAME=[OPC-UA adapter instance name] $GOBIN/mainflux-opcua +MF_OPCUA_ADAPTER_HTTP_PORT=[Service HTTP port] MF_OPCUA_ADAPTER_LOG_LEVEL=[OPC-UA Adapter Log Level] MF_NATS_URL=[NATS instance URL] MF_OPCUA_ADAPTER_SERVER_URI=[OPC-UA Server subscription URI] MF_OPCUA_ADAPTER_NODE_NAMESPACE=[OPC-UA Server Node Namespace] MF_OPCUA_ADAPTER_NODE_IDENTIFIER=[OPC-UA Server Node Identifier] MF_OPCUA_ADAPTER_POLICY=[OPC-UA Server Policy] MF_OPCUA_ADAPTER_MODE=[OPC-UA Server Mode] MF_OPCUA_ADAPTER_CERT_FILE=[OPC-UA Server Certificate file] MF_OPCUA_ADAPTER_KEY_FILE=[OPC-UA Server Key file] MF_OPCUA_ADAPTER_ROUTE_MAP_URL=[Route-map database URL] MF_OPCUA_ADAPTER_ROUTE_MAP_PASS=[Route-map database password] MF_OPCUA_ADAPTER_ROUTE_MAP_DB=[Route-map instance name] MF_THINGS_ES_URL=[Things service event source URL] MF_THINGS_ES_PASS=[Things service event source password] MF_THINGS_ES_DB=[Things service event source password] MF_OPCUA_ADAPTER_EVENT_CONSUMER=[OPC-UA adapter instance name] $GOBIN/mainflux-opcua ``` ### Using docker-compose diff --git a/things/README.md b/things/README.md index 5f337b6d..81016c38 100644 --- a/things/README.md +++ b/things/README.md @@ -32,10 +32,10 @@ default values. | MF_THINGS_CA_CERTS | Path to trusted CAs in PEM format | | | MF_THINGS_CACHE_URL | Cache database URL | localhost:6379 | | MF_THINGS_CACHE_PASS | Cache database password | | -| MF_THINGS_CACHE_DB | Cache instance that should be used | 0 | +| MF_THINGS_CACHE_DB | Cache instance name | 0 | | MF_THINGS_ES_URL | Event store URL | localhost:6379 | | MF_THINGS_ES_PASS | Event store password | | -| MF_THINGS_ES_DB | Event store instance that should be used | 0 | +| MF_THINGS_ES_DB | Event store instance name | 0 | | MF_THINGS_HTTP_PORT | Things service HTTP port | 8180 | | MF_THINGS_AUTH_HTTP_PORT | Things service auth HTTP port | 8989 | | MF_THINGS_AUTH_GRPC_PORT | Things service auth gRPC port | 8181 | @@ -80,7 +80,7 @@ services: MF_THINGS_CACHE_DB: [Cache instance that should be used] MF_THINGS_ES_URL: [Event store URL] MF_THINGS_ES_PASS: [Event store password] - MF_THINGS_ES_DB: [Event store instance that should be used] + MF_THINGS_ES_DB: [Event store instance name] MF_THINGS_HTTP_PORT: [Service HTTP port] MF_THINGS_AUTH_HTTP_PORT: [Service auth HTTP port] MF_THINGS_AUTH_GRPC_PORT: [Service auth gRPC port] @@ -109,7 +109,7 @@ make things make install # set the environment variables and run the service -MF_THINGS_LOG_LEVEL=[Things log level] MF_THINGS_DB_HOST=[Database host address] MF_THINGS_DB_PORT=[Database host port] MF_THINGS_DB_USER=[Database user] MF_THINGS_DB_PASS=[Database password] MF_THINGS_DB=[Name of the database used by the service] MF_THINGS_DB_SSL_MODE=[SSL mode to connect to the database with] MF_THINGS_DB_SSL_CERT=[Path to the PEM encoded certificate file] MF_THINGS_DB_SSL_KEY=[Path to the PEM encoded key file] MF_THINGS_DB_SSL_ROOT_CERT=[Path to the PEM encoded root certificate file] MF_HTTP_ADAPTER_CA_CERTS=[Path to trusted CAs in PEM format] MF_THINGS_CACHE_URL=[Cache database URL] MF_THINGS_CACHE_PASS=[Cache database password] MF_THINGS_CACHE_DB=[Cache instance that should be used] MF_THINGS_ES_URL=[Event store URL] MF_THINGS_ES_PASS=[Event store password] MF_THINGS_ES_DB=[Event store instance that should be used] MF_THINGS_HTTP_PORT=[Service HTTP port] MF_THINGS_AUTH_HTTP_PORT=[Service auth HTTP port] MF_THINGS_AUTH_GRPC_PORT=[Service auth gRPC port] MF_USERS_URL=[Users service URL] MF_THINGS_SERVER_CERT=[Path to server certificate] MF_THINGS_SERVER_KEY=[Path to server key] MF_THINGS_SINGLE_USER_EMAIL=[User email for single user mode (no gRPC communication with users)] MF_THINGS_SINGLE_USER_TOKEN=[User token for single user mode that should be passed in auth header] MF_JAEGER_URL=[Jaeger server URL] MF_THINGS_USERS_TIMEOUT=[Users gRPC request timeout in seconds] $GOBIN/mainflux-things +MF_THINGS_LOG_LEVEL=[Things log level] MF_THINGS_DB_HOST=[Database host address] MF_THINGS_DB_PORT=[Database host port] MF_THINGS_DB_USER=[Database user] MF_THINGS_DB_PASS=[Database password] MF_THINGS_DB=[Name of the database used by the service] MF_THINGS_DB_SSL_MODE=[SSL mode to connect to the database with] MF_THINGS_DB_SSL_CERT=[Path to the PEM encoded certificate file] MF_THINGS_DB_SSL_KEY=[Path to the PEM encoded key file] MF_THINGS_DB_SSL_ROOT_CERT=[Path to the PEM encoded root certificate file] MF_HTTP_ADAPTER_CA_CERTS=[Path to trusted CAs in PEM format] MF_THINGS_CACHE_URL=[Cache database URL] MF_THINGS_CACHE_PASS=[Cache database password] MF_THINGS_CACHE_DB=[Cache instance name] MF_THINGS_ES_URL=[Event store URL] MF_THINGS_ES_PASS=[Event store password] MF_THINGS_ES_DB=[Event store instance name] MF_THINGS_HTTP_PORT=[Service HTTP port] MF_THINGS_AUTH_HTTP_PORT=[Service auth HTTP port] MF_THINGS_AUTH_GRPC_PORT=[Service auth gRPC port] MF_USERS_URL=[Users service URL] MF_THINGS_SERVER_CERT=[Path to server certificate] MF_THINGS_SERVER_KEY=[Path to server key] MF_THINGS_SINGLE_USER_EMAIL=[User email for single user mode (no gRPC communication with users)] MF_THINGS_SINGLE_USER_TOKEN=[User token for single user mode that should be passed in auth header] MF_JAEGER_URL=[Jaeger server URL] MF_THINGS_USERS_TIMEOUT=[Users gRPC request timeout in seconds] $GOBIN/mainflux-things ``` Setting `MF_THINGS_CA_CERTS` expects a file in PEM format of trusted CAs. This will enable TLS against the Users gRPC endpoint trusting only those CAs that are provided.