Commit bd873955 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

PathComp component - Frontend:

- Added debug log messages in ComputeSubServices to track issues
parent 03d7ade6
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ def convert_explicit_path_hops_to_connections(
    prv_res_class : Tuple[Optional[int], Optional[DeviceTypeEnum], Optional[str]] = None, None, None

    for path_hop in path_hops:
        LOGGER.debug('path_hop={:s}'.format(str(path_hop)))
        device_uuid = path_hop['device']
        if prv_device_uuid == device_uuid: continue
        device_tuple = device_dict.get(device_uuid)
@@ -74,24 +75,33 @@ def convert_explicit_path_hops_to_connections(
        _,grpc_device = device_tuple

        res_class = get_resource_classification(grpc_device, device_dict)
        if res_class[1] in IGNORED_DEVICE_TYPES: continue
        LOGGER.debug('  prv_res_class={:s}'.format(str(prv_res_class)))
        LOGGER.debug('  res_class={:s}'.format(str(res_class)))
        if res_class[1] in IGNORED_DEVICE_TYPES:
            LOGGER.debug('  ignored')
            continue

        if prv_res_class[0] is None:
            # path ingress
            LOGGER.debug('  path ingress')
            connection_stack.put((main_service_uuid, main_service_type, [path_hop], []))
        elif prv_res_class[0] > res_class[0]:
            # create underlying connection
            LOGGER.debug('  create underlying connection')
            connection_uuid = str(uuid.uuid4())
            prv_service_type = connection_stack.queue[-1][1]
            service_type = get_service_type(res_class[1], prv_service_type)
            connection_stack.put((connection_uuid, service_type, [path_hop], []))
        elif prv_res_class[0] == res_class[0]:
            # same resource group kind
            LOGGER.debug('  same resource group kind')
            if prv_res_class[1] == res_class[1] and prv_res_class[2] == res_class[2]:
                # same device type and device controller: connection continues
                LOGGER.debug('  connection continues')
                connection_stack.queue[-1][2].append(path_hop)
            else:
                # different device type or device controller: chain connections
                LOGGER.debug('  chain connections')
                connection = connection_stack.get()
                connections.append(connection)
                connection_stack.queue[-1][3].append(connection[0])
@@ -102,6 +112,7 @@ def convert_explicit_path_hops_to_connections(
                connection_stack.put((connection_uuid, service_type, [path_hop], []))
        elif prv_res_class[0] < res_class[0]:
            # underlying connection ended
            LOGGER.debug('  underlying connection ended')
            connection = connection_stack.get()
            connections.append(connection)
            connection_stack.queue[-1][3].append(connection[0])
@@ -113,6 +124,7 @@ def convert_explicit_path_hops_to_connections(
        prv_res_class = res_class

    # path egress
    LOGGER.debug('  path egress')
    connections.append(connection_stack.get())
    LOGGER.debug('connections={:s}'.format(str(connections)))
    assert connection_stack.empty()