Loading src/common/tools/object_factory/Service.py +10 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,16 @@ def json_service( 'service_config' : {'config_rules': copy.deepcopy(config_rules)}, } def json_service_qkd_planned( service_uuid : str, endpoint_ids : List[Dict] = [], constraints : List[Dict] = [], config_rules : List[Dict] = [], context_uuid : str = DEFAULT_CONTEXT_NAME ): return json_service( service_uuid, ServiceTypeEnum.SERVICETYPE_QKD, context_id=json_context_id(context_uuid), status=ServiceStatusEnum.SERVICESTATUS_PLANNED, endpoint_ids=endpoint_ids, constraints=constraints, config_rules=config_rules) def json_service_l2nm_planned( service_uuid : str, endpoint_ids : List[Dict] = [], constraints : List[Dict] = [], config_rules : List[Dict] = [], context_uuid : str = DEFAULT_CONTEXT_NAME Loading src/device/tests/qkd/unit/test_qkd_mock_connectivity.py +1 −0 Original line number Diff line number Diff line Loading @@ -38,3 +38,4 @@ def test_qkd_driver_timeout_connection(mock_get, qkd_driver): mock_get.side_effect = requests.exceptions.Timeout qkd_driver.timeout = 0.001 # Simulate very short timeout assert qkd_driver.Connect() is False src/service/service/service_handlers/qkd/qkd_service_handler.py +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ import json, logging, uuid from typing import Any, Dict, List, Optional, Tuple, Union from common.method_wrappers.Decorator import MetricsPool, metered_subclass_method from common.proto.context_pb2 import ConfigRule, DeviceId, Service from common.proto.app_pb2 import App, QKDAppStatusEnum, QKDAppTypesEnum from common.proto.qkd_app_pb2 import App, QKDAppStatusEnum, QKDAppTypesEnum from common.tools.object_factory.ConfigRule import json_config_rule_delete, json_config_rule_set from common.tools.object_factory.Device import json_device_id from common.type_checkers.Checkers import chk_type Loading src/webui/Dockerfile +2 −0 Original line number Diff line number Diff line Loading @@ -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/ Loading src/webui/service/__init__.py +8 −0 Original line number Diff line number Diff line Loading @@ -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 qkd_app.client.QKDAppClient import QKDAppClient def get_working_context() -> str: return session['context_uuid'] if 'context_uuid' in session else '---' Loading @@ -37,6 +38,10 @@ def readiness(): device_client = DeviceClient() device_client.connect() device_client.close() # DEPENDENCY QKD qkd_app_client = QKDAppClient() qkd_app_client.connect() qkd_app_client.close() except Exception as e: raise HealthError("Can't connect with the service: {:s}".format(str(e))) from e Loading Loading @@ -102,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.qkd_app.routes import qkd_app as _qkd_app # pylint: disable=import-outside-toplevel app.register_blueprint(_qkd_app) from webui.service.policy_rule.routes import policy_rule # pylint: disable=import-outside-toplevel app.register_blueprint(policy_rule) Loading Loading
src/common/tools/object_factory/Service.py +10 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,16 @@ def json_service( 'service_config' : {'config_rules': copy.deepcopy(config_rules)}, } def json_service_qkd_planned( service_uuid : str, endpoint_ids : List[Dict] = [], constraints : List[Dict] = [], config_rules : List[Dict] = [], context_uuid : str = DEFAULT_CONTEXT_NAME ): return json_service( service_uuid, ServiceTypeEnum.SERVICETYPE_QKD, context_id=json_context_id(context_uuid), status=ServiceStatusEnum.SERVICESTATUS_PLANNED, endpoint_ids=endpoint_ids, constraints=constraints, config_rules=config_rules) def json_service_l2nm_planned( service_uuid : str, endpoint_ids : List[Dict] = [], constraints : List[Dict] = [], config_rules : List[Dict] = [], context_uuid : str = DEFAULT_CONTEXT_NAME Loading
src/device/tests/qkd/unit/test_qkd_mock_connectivity.py +1 −0 Original line number Diff line number Diff line Loading @@ -38,3 +38,4 @@ def test_qkd_driver_timeout_connection(mock_get, qkd_driver): mock_get.side_effect = requests.exceptions.Timeout qkd_driver.timeout = 0.001 # Simulate very short timeout assert qkd_driver.Connect() is False
src/service/service/service_handlers/qkd/qkd_service_handler.py +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ import json, logging, uuid from typing import Any, Dict, List, Optional, Tuple, Union from common.method_wrappers.Decorator import MetricsPool, metered_subclass_method from common.proto.context_pb2 import ConfigRule, DeviceId, Service from common.proto.app_pb2 import App, QKDAppStatusEnum, QKDAppTypesEnum from common.proto.qkd_app_pb2 import App, QKDAppStatusEnum, QKDAppTypesEnum from common.tools.object_factory.ConfigRule import json_config_rule_delete, json_config_rule_set from common.tools.object_factory.Device import json_device_id from common.type_checkers.Checkers import chk_type Loading
src/webui/Dockerfile +2 −0 Original line number Diff line number Diff line Loading @@ -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/ Loading
src/webui/service/__init__.py +8 −0 Original line number Diff line number Diff line Loading @@ -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 qkd_app.client.QKDAppClient import QKDAppClient def get_working_context() -> str: return session['context_uuid'] if 'context_uuid' in session else '---' Loading @@ -37,6 +38,10 @@ def readiness(): device_client = DeviceClient() device_client.connect() device_client.close() # DEPENDENCY QKD qkd_app_client = QKDAppClient() qkd_app_client.connect() qkd_app_client.close() except Exception as e: raise HealthError("Can't connect with the service: {:s}".format(str(e))) from e Loading Loading @@ -102,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.qkd_app.routes import qkd_app as _qkd_app # pylint: disable=import-outside-toplevel app.register_blueprint(_qkd_app) from webui.service.policy_rule.routes import policy_rule # pylint: disable=import-outside-toplevel app.register_blueprint(policy_rule) Loading