diff --git a/12.Netcapture/1.Install_Netcapture/0_setup.py b/12.Netcapture/1.Install_Netcapture/0_setup.py index 05a2504b5944362651e0af965ee67e18e8f1dca8..f2c7753a7e52d7f2e2f99f358314fad98d7f548c 100644 --- a/12.Netcapture/1.Install_Netcapture/0_setup.py +++ b/12.Netcapture/1.Install_Netcapture/0_setup.py @@ -1,17 +1,44 @@ #!/usr/bin/env python3 import utils import json +import random +import string -def write_conf(): - with open('/etc/miris/netcapture.json.example', 'r') as f: - default_conf = json.load(f) - default_conf['docker_registry_login'] = utils.get_conf('NETCAPTURE_DOCKER_LOGIN', '') - default_conf['docker_registry_password'] = utils.get_conf('NETCAPTURE_DOCKER_PWD', '') - default_conf['campusmanager_url'] = 'https://%s' % utils.get_conf('CM_SERVER_NAME', '') - with open('/etc/miris/netcapture.json', 'w') as f: - json.dump(default_conf, f, indent=2, sort_keys=True) - return default_conf +class JsonConfig: + def __init__(self, path): + self.path = path + with open(path, 'r') as f: + self.conf = json.load(f) + + def write(self): + with open(self.path, 'w') as f: + json.dump(self.conf, f, indent=2, sort_keys=True) + + def set(self, key, val): + self.conf[key] = val + + def get(self): + return self.conf + + +def get_random_id(length=12): + return ''.join(random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(length)) + + +def write_netcapture_conf(): + conf = JsonConfig('/etc/miris/netcapture.json.example') + conf.set('docker_registry_login', utils.get_conf('NETCAPTURE_DOCKER_LOGIN', '')) + conf.set('docker_registry_password', utils.get_conf('NETCAPTURE_DOCKER_PWD', '')) + conf.set('campusmanager_url', 'https://%s' % utils.get_conf('CM_SERVER_NAME', '')) + conf.write() + return conf.get() + + +def write_miris_conf(): + conf = JsonConfig('/etc/miris/conf/api.json') + conf.set('auth_user_password', get_random_id()) + conf.write() def setup(interactive=True): @@ -26,7 +53,8 @@ def setup(interactive=True): try: utils.run_commands(cmds) - conf = write_conf() + conf = write_netcapture_conf() + write_miris_conf() cmds_post = list() for f in ['media', 'conf']: cmds_post.extend([