from copy import deepcopy from common.Constants import DEFAULT_CONTEXT_UUID, DEFAULT_TOPOLOGY_UUID from context.proto.context_pb2 import ConfigActionEnum, DeviceDriverEnum, DeviceOperationalStatusEnum # Some example objects to be used by the tests # Helper methods def config_rule(action, resource_key, resource_value): return {'action': action, 'resource_key': resource_key, 'resource_value': resource_value} def endpoint_id(topology_id, device_id, endpoint_uuid): return {'topology_id': deepcopy(topology_id), 'device_id': deepcopy(device_id), 'endpoint_uuid': {'uuid': endpoint_uuid}} def endpoint(topology_id, device_id, endpoint_uuid, endpoint_type): return {'endpoint_id': endpoint_id(topology_id, device_id, endpoint_uuid), 'endpoint_type': endpoint_type} ## use "deepcopy" to prevent propagating forced changes during tests CONTEXT_ID = {'context_uuid': {'uuid': DEFAULT_CONTEXT_UUID}} CONTEXT = { 'context_id': deepcopy(CONTEXT_ID), 'topology_ids': [], 'service_ids': [], } TOPOLOGY_ID = { 'context_id': deepcopy(CONTEXT_ID), 'topology_uuid': {'uuid': DEFAULT_TOPOLOGY_UUID}, } TOPOLOGY = { 'topology_id': deepcopy(TOPOLOGY_ID), 'device_ids': [], 'link_ids': [], } DEVICE1_UUID = 'DEV1' DEVICE1_ID = {'device_uuid': {'uuid': DEVICE1_UUID}} DEVICE1 = { 'device_id': deepcopy(DEVICE1_ID), 'device_type': 'packet-router', 'device_config': {'config_rules': [ config_rule(ConfigActionEnum.CONFIGACTION_SET, 'dev/rsrc1/value', 'value1'), config_rule(ConfigActionEnum.CONFIGACTION_SET, 'dev/rsrc2/value', 'value2'), config_rule(ConfigActionEnum.CONFIGACTION_SET, 'dev/rsrc3/value', 'value3'), ]}, 'device_operational_status': DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED, 'device_drivers': [DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG, DeviceDriverEnum.DEVICEDRIVER_P4], 'device_endpoints': [ endpoint(TOPOLOGY_ID, DEVICE1_ID, 'EP2', 'port-packet-100G'), endpoint(TOPOLOGY_ID, DEVICE1_ID, 'EP3', 'port-packet-100G'), endpoint(TOPOLOGY_ID, DEVICE1_ID, 'EP100', 'port-packet-10G'), ], }