diff --git a/src/webui/Dockerfile b/src/webui/Dockerfile index 55e67b670f36812a55cf60e411cf137bc5b8a2ee..204b6f7311d4d182d830ef5483204790e165599b 100644 --- a/src/webui/Dockerfile +++ b/src/webui/Dockerfile @@ -84,6 +84,8 @@ COPY --chown=webui:webui src/service/__init__.py service/__init__.py COPY --chown=webui:webui src/service/client/. service/client/ COPY --chown=webui:webui src/slice/__init__.py slice/__init__.py COPY --chown=webui:webui src/slice/client/. slice/client/ +COPY --chown=webui:webui src/app/__init__.py app/__init__.py +COPY --chown=webui:webui src/app/client/. app/client/ COPY --chown=webui:webui src/webui/. webui/ COPY --chown=webui:webui src/bgpls_speaker/__init__.py bgpls_speaker/__init__.py COPY --chown=webui:webui src/bgpls_speaker/client/. bgpls_speaker/client/ diff --git a/src/webui/service/__init__.py b/src/webui/service/__init__.py index 9b6950aeb0f3fda630db87d5d80ad2bf730fac3d..be1cbce2ac6bee75b446853edb7bfa4cdef0885f 100644 --- a/src/webui/service/__init__.py +++ b/src/webui/service/__init__.py @@ -19,6 +19,7 @@ from flask_healthz import healthz, HealthError from common.tools.grpc.Tools import grpc_message_to_json from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient +from app.client.AppClient import AppClient def get_working_context() -> str: return session['context_uuid'] if 'context_uuid' in session else '---' @@ -37,6 +38,10 @@ def readiness(): device_client = DeviceClient() device_client.connect() device_client.close() + # DEPENDENCY QKD + app_client = AppClient() + app_client.connect() + app_client.close() except Exception as e: raise HealthError("Can't connect with the service: {:s}".format(str(e))) from e @@ -49,7 +54,10 @@ def json_to_list(json_str : str) -> List[Union[str, Tuple[str, str]]]: if isinstance(data, dict): return [('kv', (key, value)) for key, value in data.items()] elif isinstance(data, list): - return [('item', ', '.join(data))] + if len(data) == 1 and isinstance(data[0], dict): + return [('kv', (key, value)) for key, value in data[0].items()] + else: + return [('item', ', '.join([str(d) for d in data]))] else: return [('item', str(data))] @@ -99,6 +107,9 @@ def create_app(use_config=None, web_app_root=None): from webui.service.link.routes import link # pylint: disable=import-outside-toplevel app.register_blueprint(link) + from webui.service.app.routes import app as _app # pylint: disable=import-outside-toplevel + app.register_blueprint(_app) + from webui.service.policy_rule.routes import policy_rule # pylint: disable=import-outside-toplevel app.register_blueprint(policy_rule) @@ -113,4 +124,4 @@ def create_app(use_config=None, web_app_root=None): if web_app_root is not None: app.wsgi_app = SetSubAppMiddleware(app.wsgi_app, web_app_root) - return app + return app \ No newline at end of file diff --git a/src/webui/service/__main__.py b/src/webui/service/__main__.py index e9a906e8a431e287911547abc4065d9d9364ccb4..f58b815b43163f030fa05eff51652d1c356e0dd5 100644 --- a/src/webui/service/__main__.py +++ b/src/webui/service/__main__.py @@ -33,6 +33,7 @@ def main(): logging.basicConfig(level=log_level) logger = logging.getLogger(__name__) + # DEPENDENCY QKD wait_for_environment_variables([ get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), @@ -42,6 +43,8 @@ def main(): get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST ), get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + get_env_var_name(ServiceNameEnum.APP, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.APP, ENVVAR_SUFIX_SERVICE_PORT_GRPC), ]) logger.info('Starting...') @@ -66,4 +69,4 @@ def main(): return 0 if __name__ == '__main__': - sys.exit(main()) + sys.exit(main()) \ No newline at end of file