1
0
mirror of https://github.com/thingsboard/thingsboard-gateway synced 2025-10-26 22:31:42 +08:00

Improvement for loading connectors from remote configuration request

This commit is contained in:
zbeacon
2020-01-27 11:37:11 +02:00
parent e25bd18b8b
commit d76b7976e5
2 changed files with 25 additions and 13 deletions

View File

@@ -107,9 +107,22 @@ class RemoteConfigurator:
self.__new_general_configuration_file = {}
return
def __prepare_connectors_configuration(self, input_connector_config):
try:
self.__gateway._connectors_configs = {}
for connector in input_connector_config['thingsboard']['connectors']:
for input_connector in input_connector_config[connector['type']]:
if input_connector['name'] == connector['name']:
if not self.__gateway._connectors_configs.get(connector['type']):
self.__gateway._connectors_configs[connector['type']] = []
self.__gateway._connectors_configs[connector['type']].append(
{"name": connector["name"], "config": {connector['configuration']: input_connector["config"]}})
except Exception as e:
log.exception(e)
def __apply_new_connectors_configuration(self):
try:
self.__gateway._load_connectors(self.__new_configuration["thingsboard"], False)
self.__prepare_connectors_configuration(self.__new_configuration)
for connector_name in self.__gateway.available_connectors:
try:
self.__gateway.available_connectors[connector_name].close()

View File

@@ -189,11 +189,11 @@ class TBGatewayService:
def __check_shared_attributes(self):
self.tb_client.client.request_attributes(callback=self._attributes_parse)
def _load_connectors(self, config, from_file=True):
def _load_connectors(self, main_config):
self._connectors_configs = {}
if not config.get("connectors"):
if not main_config.get("connectors"):
raise Exception("Configuration for connectors not found, check your config file.")
for connector in config['connectors']:
for connector in main_config['connectors']:
try:
if connector.get('class') is not None:
try:
@@ -211,15 +211,14 @@ class TBGatewayService:
log.exception(e)
else:
log.error("Connector with config %s - not found", safe_dump(connector))
if from_file:
with open(self._config_dir + connector['configuration'], 'r') as conf_file:
try:
connector_conf = load(conf_file)
if not self._connectors_configs.get(connector['type']):
self._connectors_configs[connector['type']] = []
self._connectors_configs[connector['type']].append({"name": connector["name"], "config": {connector['configuration']: connector_conf}})
except Exception as e:
log.exception(e)
with open(self._config_dir + connector['configuration'], 'r') as conf_file:
try:
connector_conf = load(conf_file)
if not self._connectors_configs.get(connector['type']):
self._connectors_configs[connector['type']] = []
self._connectors_configs[connector['type']].append({"name": connector["name"], "config": {connector['configuration']: connector_conf}})
except Exception as e:
log.exception(e)
except Exception as e:
log.exception(e)