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

End-to-end Test - Ryu-OpenFlow:

- Fixed scenario cleanup test
parent e5b8b78e
Loading
Loading
Loading
Loading
+28 −6
Original line number Diff line number Diff line
@@ -12,10 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import logging, os
import graphlib, logging, os
from typing import Dict, List, Tuple
from common.Constants import DEFAULT_CONTEXT_NAME
from common.proto.context_pb2 import ContextId, DeviceFilter, Empty
from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario
from common.proto.context_pb2 import ContextId, DeviceId, Empty
from common.tools.descriptor.Loader import validate_empty_scenario
from common.tools.grpc.Tools import grpc_message_to_json_string
from common.tools.object_factory.Context import json_context_id
from context.client.ContextClient import ContextClient
@@ -45,9 +46,30 @@ def test_scenario_cleanup(
    for link_id in link_ids.link_ids:
        context_client.RemoveLink(link_id)

    device_ids = context_client.ListDeviceIds(Empty())
    LOGGER.debug('Device Ids: {:s}'.format(grpc_message_to_json_string(device_ids)))
    for device_id in device_ids.device_ids:
    devices = context_client.ListDevices(Empty())
    LOGGER.debug('Devices: {:s}'.format(grpc_message_to_json_string(devices)))

    dag_device_uuids = graphlib.TopologicalSorter()
    device_uuid_to_data : Dict[str, Tuple[DeviceId, str]] = dict()

    for device in devices.devices:
        device_id = device.device_id
        device_uuid = device_id.device_uuid.uuid
        dag_device_uuids.add(device_uuid)

        device_uuid_to_data[device_uuid] = (device_id, device.name)

        controller_uuid = device.controller_id.device_uuid.uuid
        if len(controller_uuid) == 0: continue
        dag_device_uuids.add(controller_uuid, device_uuid)

    sorted_device_uuids = list(dag_device_uuids.static_order())

    LOGGER.debug('device_uuid_to_data: {:s}'.format(str(device_uuid_to_data)))
    LOGGER.debug('sorted_device_uuids: {:s}'.format(str(sorted_device_uuids)))
           
    for device_uuid in sorted_device_uuids:
        device_id = device_uuid_to_data[device_uuid]
        context_client.RemoveDevice(device_id)

    context_ids = context_client.ListContextIds(Empty())