Commit 74ecc591 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

End-to-end Test - Ryu-OpenFlow:

- Fixed onboarding validations
- Fixed cleanup validations
parent c08acc24
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -14,8 +14,9 @@

import logging, os
from common.Constants import DEFAULT_CONTEXT_NAME
from common.proto.context_pb2 import ContextId
from common.proto.context_pb2 import ContextId, Empty
from common.tools.descriptor.Loader import DescriptorLoader, 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
from device.client.DeviceClient import DeviceClient
@@ -38,7 +39,12 @@ def test_scenario_cleanup(

    # Load descriptors and validate the base scenario
    descriptor_loader = DescriptorLoader(
        descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_client)
    descriptor_loader.validate()
        descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_client
    )
    #descriptor_loader.validate()
    descriptor_loader.unload()

    response = context_client.ListDevices(Empty())
    LOGGER.info('Devices: {:s}'.format(grpc_message_to_json_string(response)))

    validate_empty_scenario(context_client)
+17 −6
Original line number Diff line number Diff line
@@ -15,7 +15,10 @@
import logging, os, time
from common.Constants import DEFAULT_CONTEXT_NAME
from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty
from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario
from common.tools.descriptor.Loader import (
    DescriptorLoader, check_descriptor_load_results, 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
from device.client.DeviceClient import DeviceClient
@@ -32,15 +35,23 @@ def test_scenario_onboarding(
    device_client : DeviceClient,   # pylint: disable=redefined-outer-name
) -> None:
    validate_empty_scenario(context_client)
    resp = context_client.ListDevices(Empty())
    LOGGER.info('Num Devices enabled: %d', len(resp.devices))

    descriptor_loader = DescriptorLoader(
        descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_client)
        descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_client
    )
    results = descriptor_loader.process()
    check_descriptor_load_results(results, descriptor_loader)
    
    # Requires manual validation as number of onboarded devices is higher than those in descriptor;
    # the controller exposes underlying devices that are imported on the topology.
    #descriptor_loader.validate()

    response = context_client.ListDevices(Empty())
    descriptor_loader.validate()
    LOGGER.info('Devices: {:s}'.format(grpc_message_to_json_string(response)))
    assert len(response.devices) == descriptor_loader.num_devices + 4

    response = context_client.ListLinks(Empty())
    LOGGER.info('Links: {:s}'.format(grpc_message_to_json_string(response)))
    assert len(response.links) == descriptor_loader.num_links

    # Verify the scenario has no services/slices
    response = context_client.GetContext(ADMIN_CONTEXT_ID)