Loading src/nbi/service/ietf_l2vpn/L2VPN_Service.py +15 −15 Original line number Diff line number Diff line Loading @@ -16,10 +16,10 @@ import logging from flask import request from flask.json import jsonify from flask_restful import Resource from common.proto.context_pb2 import SliceStatusEnum from common.tools.context_queries.Slice import get_slice_by_uuid from common.proto.context_pb2 import ServiceStatusEnum from common.tools.context_queries.Service import get_service_by_uuid from context.client.ContextClient import ContextClient from slice.client.SliceClient import SliceClient from service.client.ServiceClient import ServiceClient from nbi.service._tools.Authentication import HTTP_AUTH from nbi.service._tools.HttpStatusCodes import ( HTTP_GATEWAYTIMEOUT, HTTP_NOCONTENT, HTTP_OK, HTTP_SERVERERROR Loading @@ -36,17 +36,17 @@ class L2VPN_Service(Resource): try: context_client = ContextClient() target = get_slice_by_uuid(context_client, vpn_id, rw_copy=True) target = get_service_by_uuid(context_client, vpn_id, rw_copy=True) 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') if target.service_id.service_uuid.uuid != vpn_id: # pylint: disable=no-member raise Exception('Service retrieval failed. Wrong Service Id was returned') slice_ready_status = SliceStatusEnum.SLICESTATUS_ACTIVE slice_status = target.slice_status.slice_status # pylint: disable=no-member 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 slice_status == slice_ready_status else HTTP_GATEWAYTIMEOUT response.status_code = HTTP_OK if service_status == service_ready_status else HTTP_GATEWAYTIMEOUT 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 @@ -61,14 +61,14 @@ class L2VPN_Service(Resource): try: context_client = ContextClient() target = get_slice_by_uuid(context_client, vpn_id) target = get_service_by_uuid(context_client, vpn_id) 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) 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 except Exception as e: # pylint: disable=broad-except Loading src/nbi/service/ietf_l2vpn/L2VPN_Services.py +10 −9 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ from flask.json import jsonify from flask_restful import Resource from werkzeug.exceptions import UnsupportedMediaType from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import SliceStatusEnum, Slice from slice.client.SliceClient import SliceClient from common.proto.context_pb2 import Service, ServiceStatusEnum, ServiceTypeEnum from service.client.ServiceClient import ServiceClient from nbi.service._tools.HttpStatusCodes import HTTP_CREATED, HTTP_SERVERERROR from nbi.service._tools.Validator import validate_message from nbi.service._tools.Authentication import HTTP_AUTH Loading @@ -44,13 +44,14 @@ class L2VPN_Services(Resource): for vpn_service in vpn_services: try: # pylint: disable=no-member slice_request = Slice() slice_request.slice_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME slice_request.slice_id.slice_uuid.uuid = vpn_service['vpn-id'] slice_request.slice_status.slice_status = SliceStatusEnum.SLICESTATUS_PLANNED service_request = Service() service_request.service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME service_request.service_id.service_uuid.uuid = vpn_service['vpn-id'] service_request.service_type = ServiceTypeEnum.SERVICETYPE_L2NM service_request.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED slice_client = SliceClient() slice_client.CreateSlice(slice_request) service_client = ServiceClient() service_client.CreateService(service_request) response = jsonify({}) response.status_code = HTTP_CREATED Loading src/nbi/service/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py +14 −14 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ from flask.json import jsonify from flask.wrappers import Response from flask_restful import Resource from werkzeug.exceptions import UnsupportedMediaType from common.proto.context_pb2 import Slice from common.tools.context_queries.Slice import get_slice_by_uuid from common.proto.context_pb2 import Service from common.tools.context_queries.Service import get_service_by_uuid from common.tools.grpc.ConfigRules import update_config_rule_custom from common.tools.grpc.Constraints import ( update_constraint_custom_dict, update_constraint_endpoint_location, update_constraint_endpoint_priority, Loading @@ -28,7 +28,7 @@ from common.tools.grpc.Constraints import ( from common.tools.grpc.EndPointIds import update_endpoint_ids from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from slice.client.SliceClient import SliceClient from service.client.ServiceClient import ServiceClient from nbi.service._tools.Authentication import HTTP_AUTH from nbi.service._tools.HttpStatusCodes import HTTP_NOCONTENT, HTTP_SERVERERROR from nbi.service._tools.Validator import validate_message Loading @@ -37,7 +37,7 @@ from .Constants import BEARER_MAPPINGS, DEFAULT_ADDRESS_FAMILIES, DEFAULT_BGP_AS LOGGER = logging.getLogger(__name__) def process_site_network_access(context_client : ContextClient, site_id : str, site_network_access : Dict) -> Slice: def process_site_network_access(context_client : ContextClient, site_id : str, site_network_access : Dict) -> Service: vpn_id = site_network_access['vpn-attachment']['vpn-id'] encapsulation_type = site_network_access['connection']['encapsulation-type'] cvlan_id = site_network_access['connection']['tagged-interface'][encapsulation_type]['cvlan-id'] Loading Loading @@ -68,12 +68,12 @@ def process_site_network_access(context_client : ContextClient, site_id : str, s address_ip, address_prefix, remote_router, circuit_id ) = mapping target = get_slice_by_uuid(context_client, vpn_id, rw_copy=True) target = get_service_by_uuid(context_client, vpn_id, rw_copy=True) if target is None: raise Exception('VPN({:s}) not found in database'.format(str(vpn_id))) endpoint_ids = target.slice_endpoint_ids # pylint: disable=no-member config_rules = target.slice_config.config_rules # pylint: disable=no-member constraints = target.slice_constraints # pylint: disable=no-member endpoint_ids = target.service_endpoint_ids # pylint: disable=no-member config_rules = target.service_config.config_rules # pylint: disable=no-member constraints = target.service_constraints # pylint: disable=no-member endpoint_id = update_endpoint_ids(endpoint_ids, device_uuid, endpoint_uuid) Loading Loading @@ -117,7 +117,7 @@ def process_site_network_access(context_client : ContextClient, site_id : str, s return target def process_list_site_network_access( context_client : ContextClient, slice_client : SliceClient, site_id : str, request_data : Dict context_client : ContextClient, service_client : ServiceClient, site_id : str, request_data : Dict ) -> Response: LOGGER.debug('Request: {:s}'.format(str(request_data))) Loading @@ -128,7 +128,7 @@ def process_list_site_network_access( sna_request = process_site_network_access(context_client, site_id, site_network_access) LOGGER.debug('sna_request = {:s}'.format(grpc_message_to_json_string(sna_request))) try: slice_client.UpdateSlice(sna_request) service_client.UpdateService(sna_request) except Exception as e: # pylint: disable=broad-except msg = 'Something went wrong Updating VPN {:s}' LOGGER.exception(msg.format(grpc_message_to_json_string(sna_request))) Loading @@ -144,13 +144,13 @@ class L2VPN_SiteNetworkAccesses(Resource): if not request.is_json: raise UnsupportedMediaType('JSON payload is required') LOGGER.debug('Site_Id: {:s}'.format(str(site_id))) context_client = ContextClient() slice_client = SliceClient() return process_list_site_network_access(context_client, slice_client, site_id, request.json) service_client = ServiceClient() return process_list_site_network_access(context_client, service_client, site_id, request.json) @HTTP_AUTH.login_required def put(self, site_id : str): if not request.is_json: raise UnsupportedMediaType('JSON payload is required') LOGGER.debug('Site_Id: {:s}'.format(str(site_id))) context_client = ContextClient() slice_client = SliceClient() return process_list_site_network_access(context_client, slice_client, site_id, request.json) service_client = ServiceClient() return process_list_site_network_access(context_client, service_client, site_id, request.json) No newline at end of file src/nbi/service/ietf_l2vpn/__init__.py +1 −1 File changed.Contains only whitespace changes. Show changes Loading
src/nbi/service/ietf_l2vpn/L2VPN_Service.py +15 −15 Original line number Diff line number Diff line Loading @@ -16,10 +16,10 @@ import logging from flask import request from flask.json import jsonify from flask_restful import Resource from common.proto.context_pb2 import SliceStatusEnum from common.tools.context_queries.Slice import get_slice_by_uuid from common.proto.context_pb2 import ServiceStatusEnum from common.tools.context_queries.Service import get_service_by_uuid from context.client.ContextClient import ContextClient from slice.client.SliceClient import SliceClient from service.client.ServiceClient import ServiceClient from nbi.service._tools.Authentication import HTTP_AUTH from nbi.service._tools.HttpStatusCodes import ( HTTP_GATEWAYTIMEOUT, HTTP_NOCONTENT, HTTP_OK, HTTP_SERVERERROR Loading @@ -36,17 +36,17 @@ class L2VPN_Service(Resource): try: context_client = ContextClient() target = get_slice_by_uuid(context_client, vpn_id, rw_copy=True) target = get_service_by_uuid(context_client, vpn_id, rw_copy=True) 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') if target.service_id.service_uuid.uuid != vpn_id: # pylint: disable=no-member raise Exception('Service retrieval failed. Wrong Service Id was returned') slice_ready_status = SliceStatusEnum.SLICESTATUS_ACTIVE slice_status = target.slice_status.slice_status # pylint: disable=no-member 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 slice_status == slice_ready_status else HTTP_GATEWAYTIMEOUT response.status_code = HTTP_OK if service_status == service_ready_status else HTTP_GATEWAYTIMEOUT 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 @@ -61,14 +61,14 @@ class L2VPN_Service(Resource): try: context_client = ContextClient() target = get_slice_by_uuid(context_client, vpn_id) target = get_service_by_uuid(context_client, vpn_id) 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) 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 except Exception as e: # pylint: disable=broad-except Loading
src/nbi/service/ietf_l2vpn/L2VPN_Services.py +10 −9 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ from flask.json import jsonify from flask_restful import Resource from werkzeug.exceptions import UnsupportedMediaType from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import SliceStatusEnum, Slice from slice.client.SliceClient import SliceClient from common.proto.context_pb2 import Service, ServiceStatusEnum, ServiceTypeEnum from service.client.ServiceClient import ServiceClient from nbi.service._tools.HttpStatusCodes import HTTP_CREATED, HTTP_SERVERERROR from nbi.service._tools.Validator import validate_message from nbi.service._tools.Authentication import HTTP_AUTH Loading @@ -44,13 +44,14 @@ class L2VPN_Services(Resource): for vpn_service in vpn_services: try: # pylint: disable=no-member slice_request = Slice() slice_request.slice_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME slice_request.slice_id.slice_uuid.uuid = vpn_service['vpn-id'] slice_request.slice_status.slice_status = SliceStatusEnum.SLICESTATUS_PLANNED service_request = Service() service_request.service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME service_request.service_id.service_uuid.uuid = vpn_service['vpn-id'] service_request.service_type = ServiceTypeEnum.SERVICETYPE_L2NM service_request.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED slice_client = SliceClient() slice_client.CreateSlice(slice_request) service_client = ServiceClient() service_client.CreateService(service_request) response = jsonify({}) response.status_code = HTTP_CREATED Loading
src/nbi/service/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py +14 −14 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ from flask.json import jsonify from flask.wrappers import Response from flask_restful import Resource from werkzeug.exceptions import UnsupportedMediaType from common.proto.context_pb2 import Slice from common.tools.context_queries.Slice import get_slice_by_uuid from common.proto.context_pb2 import Service from common.tools.context_queries.Service import get_service_by_uuid from common.tools.grpc.ConfigRules import update_config_rule_custom from common.tools.grpc.Constraints import ( update_constraint_custom_dict, update_constraint_endpoint_location, update_constraint_endpoint_priority, Loading @@ -28,7 +28,7 @@ from common.tools.grpc.Constraints import ( from common.tools.grpc.EndPointIds import update_endpoint_ids from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from slice.client.SliceClient import SliceClient from service.client.ServiceClient import ServiceClient from nbi.service._tools.Authentication import HTTP_AUTH from nbi.service._tools.HttpStatusCodes import HTTP_NOCONTENT, HTTP_SERVERERROR from nbi.service._tools.Validator import validate_message Loading @@ -37,7 +37,7 @@ from .Constants import BEARER_MAPPINGS, DEFAULT_ADDRESS_FAMILIES, DEFAULT_BGP_AS LOGGER = logging.getLogger(__name__) def process_site_network_access(context_client : ContextClient, site_id : str, site_network_access : Dict) -> Slice: def process_site_network_access(context_client : ContextClient, site_id : str, site_network_access : Dict) -> Service: vpn_id = site_network_access['vpn-attachment']['vpn-id'] encapsulation_type = site_network_access['connection']['encapsulation-type'] cvlan_id = site_network_access['connection']['tagged-interface'][encapsulation_type]['cvlan-id'] Loading Loading @@ -68,12 +68,12 @@ def process_site_network_access(context_client : ContextClient, site_id : str, s address_ip, address_prefix, remote_router, circuit_id ) = mapping target = get_slice_by_uuid(context_client, vpn_id, rw_copy=True) target = get_service_by_uuid(context_client, vpn_id, rw_copy=True) if target is None: raise Exception('VPN({:s}) not found in database'.format(str(vpn_id))) endpoint_ids = target.slice_endpoint_ids # pylint: disable=no-member config_rules = target.slice_config.config_rules # pylint: disable=no-member constraints = target.slice_constraints # pylint: disable=no-member endpoint_ids = target.service_endpoint_ids # pylint: disable=no-member config_rules = target.service_config.config_rules # pylint: disable=no-member constraints = target.service_constraints # pylint: disable=no-member endpoint_id = update_endpoint_ids(endpoint_ids, device_uuid, endpoint_uuid) Loading Loading @@ -117,7 +117,7 @@ def process_site_network_access(context_client : ContextClient, site_id : str, s return target def process_list_site_network_access( context_client : ContextClient, slice_client : SliceClient, site_id : str, request_data : Dict context_client : ContextClient, service_client : ServiceClient, site_id : str, request_data : Dict ) -> Response: LOGGER.debug('Request: {:s}'.format(str(request_data))) Loading @@ -128,7 +128,7 @@ def process_list_site_network_access( sna_request = process_site_network_access(context_client, site_id, site_network_access) LOGGER.debug('sna_request = {:s}'.format(grpc_message_to_json_string(sna_request))) try: slice_client.UpdateSlice(sna_request) service_client.UpdateService(sna_request) except Exception as e: # pylint: disable=broad-except msg = 'Something went wrong Updating VPN {:s}' LOGGER.exception(msg.format(grpc_message_to_json_string(sna_request))) Loading @@ -144,13 +144,13 @@ class L2VPN_SiteNetworkAccesses(Resource): if not request.is_json: raise UnsupportedMediaType('JSON payload is required') LOGGER.debug('Site_Id: {:s}'.format(str(site_id))) context_client = ContextClient() slice_client = SliceClient() return process_list_site_network_access(context_client, slice_client, site_id, request.json) service_client = ServiceClient() return process_list_site_network_access(context_client, service_client, site_id, request.json) @HTTP_AUTH.login_required def put(self, site_id : str): if not request.is_json: raise UnsupportedMediaType('JSON payload is required') LOGGER.debug('Site_Id: {:s}'.format(str(site_id))) context_client = ContextClient() slice_client = SliceClient() return process_list_site_network_access(context_client, slice_client, site_id, request.json) service_client = ServiceClient() return process_list_site_network_access(context_client, service_client, site_id, request.json) No newline at end of file
src/nbi/service/ietf_l2vpn/__init__.py +1 −1 File changed.Contains only whitespace changes. Show changes