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:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user