Commit 20d8340f authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Compute/InterDomain/Slice components:

- removed check of reply.entity_id==request.entity_id; context computes UUID-like identifiers based from requested identifiers for performance reasons
parent 6de7468f
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -50,9 +50,7 @@ class L2VPN_Services(Resource):
                slice_request.slice_status.slice_status = SliceStatusEnum.SLICESTATUS_PLANNED

                slice_client = SliceClient()
                slice_reply = slice_client.CreateSlice(slice_request)
                if slice_reply != slice_request.slice_id: # pylint: disable=no-member
                    raise Exception('Slice creation failed. Wrong Slice Id was returned')
                slice_client.CreateSlice(slice_request)

                response = jsonify({})
                response.status_code = HTTP_CREATED
+1 −3
Original line number Diff line number Diff line
@@ -129,9 +129,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:
            sna_reply = slice_client.UpdateSlice(sna_request)
            if sna_reply != sna_request.slice_id: # pylint: disable=no-member
                raise Exception('Slice update failed. Wrong Slice Id was returned')
            slice_client.UpdateSlice(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)))
+4 −6
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@
# limitations under the License.

import grpc, logging, uuid
from common.Constants import DEFAULT_CONTEXT_UUID, DEFAULT_TOPOLOGY_UUID
from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME
from common.proto.context_pb2 import AuthenticationResult, Slice, SliceId, SliceStatusEnum, TeraFlowController, TopologyId
from common.proto.interdomain_pb2_grpc import InterdomainServiceServicer
from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method
@@ -95,17 +95,15 @@ class InterdomainServiceServicerImpl(InterdomainServiceServicer):
                LOGGER.info('[loop] [local] domain_uuid={:s} is_local_domain={:s} slice_uuid={:s}'.format(
                    str(domain_uuid), str(is_local_domain), str(slice_uuid)))

                # local slices always in DEFAULT_CONTEXT_UUID
                # local slices always in DEFAULT_CONTEXT_NAME
                #context_uuid = request.slice_id.context_id.context_uuid.uuid
                context_uuid = DEFAULT_CONTEXT_UUID
                context_uuid = DEFAULT_CONTEXT_NAME
                endpoint_ids = map_abstract_endpoints_to_real(context_client, domain_uuid, endpoint_ids)
                sub_slice = compose_slice(
                    context_uuid, slice_uuid, endpoint_ids, constraints=request.slice_constraints,
                    config_rules=request.slice_config.config_rules)
                LOGGER.info('[loop] [local] sub_slice={:s}'.format(grpc_message_to_json_string(sub_slice)))
                sub_slice_id = slice_client.CreateSlice(sub_slice)
                if sub_slice_id != sub_slice.slice_id: # pylint: disable=no-member
                    raise Exception('Local Slice creation failed. Wrong Slice Id was returned')
            else:
                slice_uuid = request.slice_id.slice_uuid.uuid
                LOGGER.info('[loop] [remote] domain_uuid={:s} is_local_domain={:s} slice_uuid={:s}'.format(
@@ -113,7 +111,7 @@ class InterdomainServiceServicerImpl(InterdomainServiceServicer):

                # create context/topology for the remote domains where we are creating slices
                create_context(context_client, domain_uuid)
                create_topology(context_client, domain_uuid, DEFAULT_TOPOLOGY_UUID)
                create_topology(context_client, domain_uuid, DEFAULT_TOPOLOGY_NAME)

                sub_slice = compose_slice(
                    domain_uuid, slice_uuid, endpoint_ids, constraints=request.slice_constraints,
+5 −7
Original line number Diff line number Diff line
@@ -108,16 +108,14 @@ class InterdomainServiceServicerImpl(InterdomainServiceServicer):
            slice_endpoint_id.device_id.device_uuid.uuid = 'R1@D2'
            slice_endpoint_id.endpoint_uuid.uuid = '2/1'

        local_slice_reply = slice_client.CreateSlice(local_slice_request)
        if local_slice_reply != local_slice_request.slice_id: # pylint: disable=no-member
            raise Exception('Local Slice creation failed. Wrong Slice Id was returned')
        local_slice_id_reply = slice_client.CreateSlice(local_slice_request)

        subslice_id = reply.slice_subslice_ids.add()
        subslice_id.context_id.context_uuid.uuid = local_slice_request.slice_id.context_id.context_uuid.uuid
        subslice_id.slice_uuid.uuid = local_slice_request.slice_id.slice_uuid.uuid
        subslice_id.context_id.context_uuid.uuid = local_slice_id_reply.context_id.context_uuid.uuid
        subslice_id.slice_uuid.uuid = local_slice_id_reply.slice_uuid.uuid

        context_client.SetSlice(reply)
        return reply.slice_id
        reply_slice_id = context_client.SetSlice(reply)
        return reply_slice_id

    @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
    def Authenticate(self, request : TeraFlowController, context : grpc.ServicerContext) -> AuthenticationResult:
+3 −8
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ class SliceServiceServicerImpl(SliceServiceServicer):
        service_id = ServiceId()
        # pylint: disable=no-member
        context_uuid = service_id.context_id.context_uuid.uuid = request.slice_id.context_id.context_uuid.uuid
        slice_uuid = service_uuid = service_id.service_uuid.uuid = request.slice_id.slice_uuid.uuid
        service_uuid = service_id.service_uuid.uuid = request.slice_id.slice_uuid.uuid

        service_client = ServiceClient()
        try:
@@ -92,10 +92,7 @@ class SliceServiceServicerImpl(SliceServiceServicer):
            service_request.service_id.CopyFrom(service_id)
            service_request.service_type = ServiceTypeEnum.SERVICETYPE_UNKNOWN
            service_request.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED
            service_reply = service_client.CreateService(service_request)
            if service_reply != service_request.service_id: # pylint: disable=no-member
                # pylint: disable=raise-missing-from
                raise Exception('Service creation failed. Wrong Service Id was returned')
            service_client.CreateService(service_request)
            _service = context_client.GetService(service_id)
        service_request = Service()
        service_request.CopyFrom(_service)
@@ -137,9 +134,7 @@ class SliceServiceServicerImpl(SliceServiceServicer):
            service_request.service_type = ServiceTypeEnum.SERVICETYPE_L2NM
            LOGGER.info('assume L2')

        service_reply = service_client.UpdateService(service_request)
        if service_reply != service_request.service_id: # pylint: disable=no-member
            raise Exception('Service update failed. Wrong Service Id was returned')
        service_client.UpdateService(service_request)

        copy_endpoint_ids(request.slice_endpoint_ids, slice_request.slice_endpoint_ids)
        copy_constraints(request.slice_constraints, slice_request.slice_constraints)