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

Refactored configuration wizard

This commit is contained in:
zbeacon
2022-01-04 14:04:32 +02:00
parent 1fe53d0b7e
commit 5bdf668806

View File

@@ -138,6 +138,14 @@ def configure():
'validate': NumberValidator, 'validate': NumberValidator,
'filter': lambda val: int(val) 'filter': lambda val: int(val)
}, },
{
'type': 'input',
'name': 'minPackSendDelayMS',
'message': 'Minimal delay between sending messages (milliseconds):',
'default': str(default_config['thingsboard']['minPackSendDelayMS']),
'validate': NumberValidator,
'filter': lambda val: int(val)
},
{ {
'type': 'input', 'type': 'input',
'name': 'checkConnectorsConfigurationInSeconds', 'name': 'checkConnectorsConfigurationInSeconds',
@@ -155,6 +163,12 @@ def configure():
'TLS + Access Token (Advanced Security)', 'TLS + Access Token (Advanced Security)',
'TLS + Private Key (Advanced Security)' 'TLS + Private Key (Advanced Security)'
] ]
},
{
'type': 'confirm',
'name': 'grpc-enabled',
'message': 'Do you want to enable GRPC API on your gateway?',
'default': False
} }
] ]
@@ -208,6 +222,62 @@ def configure():
security_answers = prompt(security_questions, style=style) security_answers = prompt(security_questions, style=style)
grpc_enabled = base_answers.pop('grpc-enabled')
if grpc_enabled:
grpc_api_questions = [
{
'name': 'serverPort',
'default': 9595,
'message': '[GRPC] Please set port for GRPC server:',
'validate': NumberValidator,
'filter': lambda val: int(val)
},
{
'name': 'keepaliveTimeMs',
'default': 10000,
'message': '[GRPC] Keep alive period:',
'validate': NumberValidator,
'filter': lambda val: int(val)
},
{
'name': 'keepaliveTimeoutMs',
'default': 5000,
'message': '[GRPC] Keep alive timeout',
'validate': NumberValidator,
'filter': lambda val: int(val)
},
{
'name': 'keepalivePermitWithoutCalls',
'default': True,
'message': '[GRPC] Allow send pings from clients without calls:'
},
{
'name': 'maxPingsWithoutData',
'default': 0,
'message': '[GRPC] Maximal count of pings without data from client to server:',
'validate': NumberValidator,
'filter': lambda val: int(val)
},
{
'name': 'minTimeBetweenPingsMs',
'default': 10000,
'message': '[GRPC] Minimal period between ping messages:',
'validate': NumberValidator,
'filter': lambda val: int(val)
},
{
'name': 'minPingIntervalWithoutDataMs',
'default': 5000,
'message': '[GRPC] Minimal period between ping messages without data:',
'validate': NumberValidator,
'filter': lambda val: int(val)
},
]
grpc_api_answers = prompt(grpc_api_questions, style=style)
else:
grpc_api_answers = default_config.get('grpc', {})
qos_and_storage_type_question = [ qos_and_storage_type_question = [
{ {
'type': 'input', 'type': 'input',
@@ -359,11 +429,12 @@ def configure():
'thingsboard': {**base_answers, 'security': security_answers, 'thingsboard': {**base_answers, 'security': security_answers,
'qos': qos_and_storage_type_answers['qos']}, 'qos': qos_and_storage_type_answers['qos']},
'storage': {'type': qos_and_storage_type_answers['storage'], **storage_answers}, 'storage': {'type': qos_and_storage_type_answers['storage'], **storage_answers},
'grpc': {'enabled': grpc_enabled, **grpc_api_answers},
'connectors': connectors_list 'connectors': connectors_list
}) })
except Exception: except Exception as e:
print(colored('Something went wrong! Please try again.', color='red')) print(colored('Something went wrong! Please try again.', color='red'))
raise SystemExit raise e
if __name__ == '__main__': if __name__ == '__main__':