Loading manifests/deviceservice.yaml +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ spec: - containerPort: 2020 env: - name: LOG_LEVEL value: "INFO" value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:2020"] Loading manifests/serviceservice.yaml +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ spec: - containerPort: 3030 env: - name: LOG_LEVEL value: "INFO" value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:3030"] Loading src/compute/service/__main__.py +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ def main(): 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), get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST ), get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), ]) signal.signal(signal.SIGINT, signal_handler) Loading src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Service.py +13 −39 Original line number Diff line number Diff line Loading @@ -16,13 +16,11 @@ import logging from flask import request from flask.json import jsonify from flask_restful import Resource from common.Constants import DEFAULT_CONTEXT_UUID from common.proto.context_pb2 import ServiceId, ServiceStatusEnum, SliceStatusEnum from common.proto.context_pb2 import SliceStatusEnum from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient from slice.client.SliceClient import SliceClient from .tools.Authentication import HTTP_AUTH from .tools.ContextMethods import get_service, get_slice from .tools.ContextMethods import get_slice from .tools.HttpStatusCodes import HTTP_GATEWAYTIMEOUT, HTTP_NOCONTENT, HTTP_OK, HTTP_SERVERERROR LOGGER = logging.getLogger(__name__) Loading @@ -37,26 +35,16 @@ class L2VPN_Service(Resource): context_client = ContextClient() target = get_slice(context_client, vpn_id) if target is not None: if target is None: raise Exception('VPN({:s}) not found in database'.format(str(vpn_id))) if target.slice_id.slice_uuid.uuid != vpn_id: # pylint: disable=no-member raise Exception('Slice retrieval failed. Wrong Slice Id was returned') slice_ready_status = SliceStatusEnum.SLICESTATUS_ACTIVE slice_status = target.slice_status.slice_status # pylint: disable=no-member response = jsonify({}) response.status_code = HTTP_OK if slice_status == slice_ready_status else HTTP_GATEWAYTIMEOUT return response target = get_service(context_client, vpn_id) if target is not None: if target.service_id.service_uuid.uuid != vpn_id: # pylint: disable=no-member raise Exception('Service retrieval failed. Wrong Service Id was returned') service_ready_status = ServiceStatusEnum.SERVICESTATUS_ACTIVE service_status = target.service_status.service_status # pylint: disable=no-member response = jsonify({}) response.status_code = HTTP_OK if service_status == service_ready_status else HTTP_GATEWAYTIMEOUT return response raise Exception('VPN({:s}) not found in database'.format(str(vpn_id))) except Exception as e: # pylint: disable=broad-except LOGGER.exception('Something went wrong Retrieving VPN({:s})'.format(str(vpn_id))) response = jsonify({'error': str(e)}) Loading @@ -72,29 +60,15 @@ class L2VPN_Service(Resource): context_client = ContextClient() target = get_slice(context_client, vpn_id) if target is not None: if target is None: LOGGER.warning('VPN({:s}) not found in database. Nothing done.'.format(str(vpn_id))) else: if target.slice_id.slice_uuid.uuid != vpn_id: # pylint: disable=no-member raise Exception('Slice retrieval failed. Wrong Slice Id was returned') slice_client = SliceClient() slice_client.DeleteSlice(target.slice_id) response = jsonify({}) response.status_code = HTTP_NOCONTENT return response target = get_service(context_client, vpn_id) if target is not None: if target.service_id.service_uuid.uuid != vpn_id: # pylint: disable=no-member raise Exception('Service retrieval failed. Wrong Service Id was returned') service_client = ServiceClient() service_client.DeleteService(target.service_id) response = jsonify({}) response.status_code = HTTP_NOCONTENT return response LOGGER.warning('VPN({:s}) not found in database. Nothing done.'.format(str(vpn_id))) response = jsonify({}) response.status_code = HTTP_NOCONTENT return response except Exception as e: # pylint: disable=broad-except LOGGER.exception('Something went wrong Deleting VPN({:s})'.format(str(vpn_id))) response = jsonify({'error': str(e)}) Loading src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py +11 −30 Original line number Diff line number Diff line Loading @@ -19,8 +19,7 @@ from flask.json import jsonify from flask_restful import Resource from werkzeug.exceptions import UnsupportedMediaType from common.Constants import DEFAULT_CONTEXT_UUID from common.proto.context_pb2 import Service, ServiceStatusEnum, ServiceTypeEnum, SliceStatusEnum, Slice from service.client.ServiceClient import ServiceClient from common.proto.context_pb2 import SliceStatusEnum, Slice from slice.client.SliceClient import SliceClient from .schemas.vpn_service import SCHEMA_VPN_SERVICE from .tools.Authentication import HTTP_AUTH Loading @@ -44,24 +43,6 @@ class L2VPN_Services(Resource): vpn_services : List[Dict] = request_data['ietf-l2vpn-svc:vpn-service'] for vpn_service in vpn_services: try: # By now, assume requests from OSM always need transport slices # TODO: think how to differentiate #vpn_service_type = vpn_service['vpn-svc-type'] vpn_service_type = 'vpls' if vpn_service_type == 'vpws': # pylint: disable=no-member service_request = Service() service_request.service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_UUID service_request.service_id.service_uuid.uuid = vpn_service['vpn-id'] service_request.service_type = ServiceTypeEnum.SERVICETYPE_L3NM service_request.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED service_client = ServiceClient() service_reply = service_client.CreateService(service_request) if service_reply != service_request.service_id: # pylint: disable=no-member raise Exception('Service creation failed. Wrong Service Id was returned') elif vpn_service_type == 'vpls': # pylint: disable=no-member slice_request = Slice() slice_request.slice_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_UUID Loading Loading
manifests/deviceservice.yaml +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ spec: - containerPort: 2020 env: - name: LOG_LEVEL value: "INFO" value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:2020"] Loading
manifests/serviceservice.yaml +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ spec: - containerPort: 3030 env: - name: LOG_LEVEL value: "INFO" value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:3030"] Loading
src/compute/service/__main__.py +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ def main(): 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), get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST ), get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), ]) signal.signal(signal.SIGINT, signal_handler) Loading
src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Service.py +13 −39 Original line number Diff line number Diff line Loading @@ -16,13 +16,11 @@ import logging from flask import request from flask.json import jsonify from flask_restful import Resource from common.Constants import DEFAULT_CONTEXT_UUID from common.proto.context_pb2 import ServiceId, ServiceStatusEnum, SliceStatusEnum from common.proto.context_pb2 import SliceStatusEnum from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient from slice.client.SliceClient import SliceClient from .tools.Authentication import HTTP_AUTH from .tools.ContextMethods import get_service, get_slice from .tools.ContextMethods import get_slice from .tools.HttpStatusCodes import HTTP_GATEWAYTIMEOUT, HTTP_NOCONTENT, HTTP_OK, HTTP_SERVERERROR LOGGER = logging.getLogger(__name__) Loading @@ -37,26 +35,16 @@ class L2VPN_Service(Resource): context_client = ContextClient() target = get_slice(context_client, vpn_id) if target is not None: if target is None: raise Exception('VPN({:s}) not found in database'.format(str(vpn_id))) if target.slice_id.slice_uuid.uuid != vpn_id: # pylint: disable=no-member raise Exception('Slice retrieval failed. Wrong Slice Id was returned') slice_ready_status = SliceStatusEnum.SLICESTATUS_ACTIVE slice_status = target.slice_status.slice_status # pylint: disable=no-member response = jsonify({}) response.status_code = HTTP_OK if slice_status == slice_ready_status else HTTP_GATEWAYTIMEOUT return response target = get_service(context_client, vpn_id) if target is not None: if target.service_id.service_uuid.uuid != vpn_id: # pylint: disable=no-member raise Exception('Service retrieval failed. Wrong Service Id was returned') service_ready_status = ServiceStatusEnum.SERVICESTATUS_ACTIVE service_status = target.service_status.service_status # pylint: disable=no-member response = jsonify({}) response.status_code = HTTP_OK if service_status == service_ready_status else HTTP_GATEWAYTIMEOUT return response raise Exception('VPN({:s}) not found in database'.format(str(vpn_id))) except Exception as e: # pylint: disable=broad-except LOGGER.exception('Something went wrong Retrieving VPN({:s})'.format(str(vpn_id))) response = jsonify({'error': str(e)}) Loading @@ -72,29 +60,15 @@ class L2VPN_Service(Resource): context_client = ContextClient() target = get_slice(context_client, vpn_id) if target is not None: if target is None: LOGGER.warning('VPN({:s}) not found in database. Nothing done.'.format(str(vpn_id))) else: if target.slice_id.slice_uuid.uuid != vpn_id: # pylint: disable=no-member raise Exception('Slice retrieval failed. Wrong Slice Id was returned') slice_client = SliceClient() slice_client.DeleteSlice(target.slice_id) response = jsonify({}) response.status_code = HTTP_NOCONTENT return response target = get_service(context_client, vpn_id) if target is not None: if target.service_id.service_uuid.uuid != vpn_id: # pylint: disable=no-member raise Exception('Service retrieval failed. Wrong Service Id was returned') service_client = ServiceClient() service_client.DeleteService(target.service_id) response = jsonify({}) response.status_code = HTTP_NOCONTENT return response LOGGER.warning('VPN({:s}) not found in database. Nothing done.'.format(str(vpn_id))) response = jsonify({}) response.status_code = HTTP_NOCONTENT return response except Exception as e: # pylint: disable=broad-except LOGGER.exception('Something went wrong Deleting VPN({:s})'.format(str(vpn_id))) response = jsonify({'error': str(e)}) Loading
src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py +11 −30 Original line number Diff line number Diff line Loading @@ -19,8 +19,7 @@ from flask.json import jsonify from flask_restful import Resource from werkzeug.exceptions import UnsupportedMediaType from common.Constants import DEFAULT_CONTEXT_UUID from common.proto.context_pb2 import Service, ServiceStatusEnum, ServiceTypeEnum, SliceStatusEnum, Slice from service.client.ServiceClient import ServiceClient from common.proto.context_pb2 import SliceStatusEnum, Slice from slice.client.SliceClient import SliceClient from .schemas.vpn_service import SCHEMA_VPN_SERVICE from .tools.Authentication import HTTP_AUTH Loading @@ -44,24 +43,6 @@ class L2VPN_Services(Resource): vpn_services : List[Dict] = request_data['ietf-l2vpn-svc:vpn-service'] for vpn_service in vpn_services: try: # By now, assume requests from OSM always need transport slices # TODO: think how to differentiate #vpn_service_type = vpn_service['vpn-svc-type'] vpn_service_type = 'vpls' if vpn_service_type == 'vpws': # pylint: disable=no-member service_request = Service() service_request.service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_UUID service_request.service_id.service_uuid.uuid = vpn_service['vpn-id'] service_request.service_type = ServiceTypeEnum.SERVICETYPE_L3NM service_request.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED service_client = ServiceClient() service_reply = service_client.CreateService(service_request) if service_reply != service_request.service_id: # pylint: disable=no-member raise Exception('Service creation failed. Wrong Service Id was returned') elif vpn_service_type == 'vpls': # pylint: disable=no-member slice_request = Slice() slice_request.slice_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_UUID Loading