Scheduled maintenance on Saturday, 27 September 2025, from 07:00 AM to 4:00 PM GMT (09:00 AM to 6:00 PM CEST) - some services may be unavailable -

Skip to content
Snippets Groups Projects
example_objects.py 7.13 KiB
Newer Older
  • Learn to ignore specific revisions
  • Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    from copy import deepcopy
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    from common.Constants import DEFAULT_CONTEXT_UUID, DEFAULT_TOPOLOGY_UUID
    from context.proto.context_pb2 import (
    
        DeviceDriverEnum, DeviceOperationalStatusEnum, ServiceStatusEnum, ServiceTypeEnum)
    from context.proto.kpi_sample_types_pb2 import KpiSampleType
    from .Tools import config_rule_set, endpoint, endpoint_id
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    
    # Some example objects to be used by the tests
    
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    ## use "deepcopy" to prevent propagating forced changes during tests
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    CONTEXT_ID = {'context_uuid': {'uuid': DEFAULT_CONTEXT_UUID}}
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    CONTEXT = {
        'context_id': deepcopy(CONTEXT_ID),
        'topology_ids': [],
        'service_ids': [],
    }
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    
    TOPOLOGY_ID = {
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        'context_id': deepcopy(CONTEXT_ID),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        'topology_uuid': {'uuid': DEFAULT_TOPOLOGY_UUID},
    }
    TOPOLOGY = {
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        'topology_id': deepcopy(TOPOLOGY_ID),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        'device_ids': [],
        'link_ids': [],
    }
    
    
    PACKET_PORT_SAMPLE_TYPES = [
        KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED,
        KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED,
        KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED,
        KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED,
    ]
    
    def _endpoint_id(device_id, endpoint_uuid):
        return endpoint_id(device_id, endpoint_uuid, topology_id=TOPOLOGY_ID)
    
    def _endpoint(device_id, endpoint_uuid, endpoint_type):
        return endpoint(
            device_id, endpoint_uuid, endpoint_type, topology_id=TOPOLOGY_ID, kpi_sample_types=PACKET_PORT_SAMPLE_TYPES)
    
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    DEVICE1_UUID = 'DEV1'
    DEVICE1_ID = {'device_uuid': {'uuid': DEVICE1_UUID}}
    DEVICE1 = {
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        'device_id': deepcopy(DEVICE1_ID),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        'device_type': 'packet-router',
        'device_config': {'config_rules': [
    
            config_rule_set('dev/rsrc1/value', 'value1'),
            config_rule_set('dev/rsrc2/value', 'value2'),
            config_rule_set('dev/rsrc3/value', 'value3'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ]},
        'device_operational_status': DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED,
        'device_drivers': [DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG, DeviceDriverEnum.DEVICEDRIVER_P4],
        'device_endpoints': [
    
            _endpoint(DEVICE1_ID, 'EP2',   'port-packet-100G'),
            _endpoint(DEVICE1_ID, 'EP3',   'port-packet-100G'),
            _endpoint(DEVICE1_ID, 'EP100', 'port-packet-10G' ),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ],
    }
    
    DEVICE2_UUID = 'DEV2'
    DEVICE2_ID = {'device_uuid': {'uuid': DEVICE2_UUID}}
    DEVICE2 = {
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        'device_id': deepcopy(DEVICE2_ID),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        'device_type': 'packet-router',
        'device_config': {'config_rules': [
    
            config_rule_set('dev/rsrc1/value', 'value4'),
            config_rule_set('dev/rsrc2/value', 'value5'),
            config_rule_set('dev/rsrc3/value', 'value6'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ]},
        'device_operational_status': DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED,
        'device_drivers': [DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG, DeviceDriverEnum.DEVICEDRIVER_P4],
        'device_endpoints': [
    
            _endpoint(DEVICE2_ID, 'EP1',   'port-packet-100G'),
            _endpoint(DEVICE2_ID, 'EP3',   'port-packet-100G'),
            _endpoint(DEVICE2_ID, 'EP100', 'port-packet-10G' ),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    DEVICE3_UUID = 'DEV3'
    DEVICE3_ID = {'device_uuid': {'uuid': DEVICE3_UUID}}
    DEVICE3 = {
        'device_id': deepcopy(DEVICE3_ID),
        'device_type': 'packet-router',
        'device_config': {'config_rules': [
    
            config_rule_set('dev/rsrc1/value', 'value4'),
            config_rule_set('dev/rsrc2/value', 'value5'),
            config_rule_set('dev/rsrc3/value', 'value6'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ]},
        'device_operational_status': DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED,
        'device_drivers': [DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG, DeviceDriverEnum.DEVICEDRIVER_P4],
        'device_endpoints': [
    
            _endpoint(DEVICE3_ID, 'EP1',   'port-packet-100G'),
            _endpoint(DEVICE3_ID, 'EP2',   'port-packet-100G'),
            _endpoint(DEVICE3_ID, 'EP100', 'port-packet-10G' ),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ],
    }
    
    LINK_DEV1_DEV2_UUID = 'DEV1/EP2 ==> DEV2/EP1'
    LINK_DEV1_DEV2_ID = {'link_uuid': {'uuid': LINK_DEV1_DEV2_UUID}}
    LINK_DEV1_DEV2 = {
        'link_id': deepcopy(LINK_DEV1_DEV2_ID),
        'link_endpoint_ids' : [
    
            _endpoint_id(DEVICE1_ID, 'EP2'),
            _endpoint_id(DEVICE2_ID, 'EP1'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ]
    }
    
    LINK_DEV2_DEV3_UUID = 'DEV2/EP3 ==> DEV3/EP2'
    LINK_DEV2_DEV3_ID = {'link_uuid': {'uuid': LINK_DEV2_DEV3_UUID}}
    LINK_DEV2_DEV3 = {
        'link_id': deepcopy(LINK_DEV2_DEV3_ID),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        'link_endpoint_ids' : [
    
            _endpoint_id(DEVICE2_ID, 'EP3'),
            _endpoint_id(DEVICE3_ID, 'EP2'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    LINK_DEV1_DEV3_UUID = 'DEV1/EP3 ==> DEV3/EP1'
    LINK_DEV1_DEV3_ID = {'link_uuid': {'uuid': LINK_DEV1_DEV3_UUID}}
    LINK_DEV1_DEV3 = {
        'link_id': deepcopy(LINK_DEV1_DEV3_ID),
        'link_endpoint_ids' : [
    
            _endpoint_id(DEVICE1_ID, 'EP3'),
            _endpoint_id(DEVICE3_ID, 'EP1'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ]
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    }
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    
    SERVICE_DEV1_DEV2_UUID = 'SVC:DEV1/EP100-DEV2/EP100'
    SERVICE_DEV1_DEV2_ID = {
        'context_id': deepcopy(CONTEXT_ID),
        'service_uuid': {'uuid': SERVICE_DEV1_DEV2_UUID},
    }
    SERVICE_DEV1_DEV2 = {
        'service_id': deepcopy(SERVICE_DEV1_DEV2_ID),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        'service_type': ServiceTypeEnum.SERVICETYPE_L3NM,
        'service_endpoint_ids' : [
    
            _endpoint_id(DEVICE1_ID, 'EP100'),
            _endpoint_id(DEVICE2_ID, 'EP100'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ],
        'service_constraints': [
            {'constraint_type': 'latency_ms', 'constraint_value': '15.2'},
            {'constraint_type': 'jitter_us', 'constraint_value': '1.2'},
        ],
        'service_status': {'service_status': ServiceStatusEnum.SERVICESTATUS_ACTIVE},
        'service_config': {'config_rules': [
    
            config_rule_set('svc/rsrc1/value', 'value7'),
            config_rule_set('svc/rsrc2/value', 'value8'),
            config_rule_set('svc/rsrc3/value', 'value9'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ]},
    }
    
    SERVICE_DEV1_DEV3_UUID = 'SVC:DEV1/EP100-DEV3/EP100'
    SERVICE_DEV1_DEV3_ID = {
        'context_id': deepcopy(CONTEXT_ID),
        'service_uuid': {'uuid': SERVICE_DEV1_DEV3_UUID},
    }
    SERVICE_DEV1_DEV3 = {
        'service_id': deepcopy(SERVICE_DEV1_DEV3_ID),
        'service_type': ServiceTypeEnum.SERVICETYPE_L3NM,
        'service_endpoint_ids' : [
    
            _endpoint_id(DEVICE1_ID, 'EP100'),
            _endpoint_id(DEVICE3_ID, 'EP100'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ],
        'service_constraints': [
            {'constraint_type': 'latency_ms', 'constraint_value': '5.8'},
            {'constraint_type': 'jitter_us', 'constraint_value': '0.1'},
        ],
        'service_status': {'service_status': ServiceStatusEnum.SERVICESTATUS_ACTIVE},
        'service_config': {'config_rules': [
    
            config_rule_set('svc/rsrc1/value', 'value7'),
            config_rule_set('svc/rsrc2/value', 'value8'),
            config_rule_set('svc/rsrc3/value', 'value9'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ]},
    }
    
    SERVICE_DEV2_DEV3_UUID = 'SVC:DEV2/EP100-DEV3/EP100'
    SERVICE_DEV2_DEV3_ID = {
        'context_id': deepcopy(CONTEXT_ID),
        'service_uuid': {'uuid': SERVICE_DEV2_DEV3_UUID},
    }
    SERVICE_DEV2_DEV3 = {
        'service_id': deepcopy(SERVICE_DEV2_DEV3_ID),
        'service_type': ServiceTypeEnum.SERVICETYPE_L3NM,
        'service_endpoint_ids' : [
    
            _endpoint_id(DEVICE2_ID, 'EP100'),
            _endpoint_id(DEVICE3_ID, 'EP100'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ],
        'service_constraints': [
            {'constraint_type': 'latency_ms', 'constraint_value': '23.1'},
            {'constraint_type': 'jitter_us', 'constraint_value': '3.4'},
        ],
        'service_status': {'service_status': ServiceStatusEnum.SERVICESTATUS_ACTIVE},
        'service_config': {'config_rules': [
    
            config_rule_set('svc/rsrc1/value', 'value7'),
            config_rule_set('svc/rsrc2/value', 'value8'),
            config_rule_set('svc/rsrc3/value', 'value9'),
    
    Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
        ]},
    }