Newer
Older
from copy import deepcopy
from device.proto.context_pb2 import DeviceDriverEnum, DeviceOperationalStatusEnum
from device.service.database.KpiSampleType import ORM_KpiSampleType
from .Tools import config_rule_set, config_rule_delete
# use "deepcopy" to prevent propagating forced changes during tests
DEVICE_EMU_TYPE = 'emulated'
DEVICE_EMU_ADDRESS = '127.0.0.1'
DEVICE_EMU_PORT = '0'
DEVICE_EMU_DRIVERS = [DeviceDriverEnum.DEVICEDRIVER_UNDEFINED]
DEVICE_EMU_ID = {'device_uuid': {'uuid': DEVICE_EMU_UUID}}
DEVICE_EMU = {
'device_id': deepcopy(DEVICE_EMU_ID),
'device_type': DEVICE_EMU_TYPE,
'device_config': {'config_rules': []},
'device_operational_status': DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_DISABLED,
'device_drivers': DEVICE_EMU_DRIVERS,
'device_endpoints': [],
}
PACKET_PORT_SAMPLE_TYPES = [
ORM_KpiSampleType.PACKETS_TRANSMITTED.value,
ORM_KpiSampleType.PACKETS_RECEIVED.value,
ORM_KpiSampleType.BYTES_TRANSMITTED.value,
ORM_KpiSampleType.BYTES_RECEIVED.value,
]
('EP1', '10Gbps', PACKET_PORT_SAMPLE_TYPES),
('EP2', '10Gbps', PACKET_PORT_SAMPLE_TYPES),
('EP3', '10Gbps', PACKET_PORT_SAMPLE_TYPES),
('EP4', '10Gbps', PACKET_PORT_SAMPLE_TYPES),
RSRC_EP = '/endpoints/endpoint[{}]'
RSRC_SUBIF = RSRC_EP + '/subinterfaces/subinterface[{}]'
RSRC_ADDRIPV4 = RSRC_SUBIF + '/ipv4/address[{}]'
DEVICE_EMU_ENDPOINTS_COOKED = []
for endpoint_uuid,endpoint_type,endpoint_sample_types in DEVICE_EMU_ENDPOINTS:
endpoint_resource_key = RSRC_EP.format(str(endpoint_uuid))
sample_types = {
ORM_KpiSampleType.PACKETS_TRANSMITTED.value: '{:s}/state/packets_transmitted'.format(endpoint_resource_key),
ORM_KpiSampleType.PACKETS_RECEIVED .value: '{:s}/state/packets_received' .format(endpoint_resource_key),
ORM_KpiSampleType.BYTES_TRANSMITTED .value: '{:s}/state/bytes_transmitted' .format(endpoint_resource_key),
ORM_KpiSampleType.BYTES_RECEIVED .value: '{:s}/state/bytes_received' .format(endpoint_resource_key),
}
endpoint_resource_value = {'uuid': endpoint_uuid, 'type': endpoint_type, 'sample_types': sample_types}
DEVICE_EMU_ENDPOINTS_COOKED.append((endpoint_resource_key, endpoint_resource_value))
DEVICE_EMU_CONNECT_RULES = [
config_rule_set('_connect/address', DEVICE_EMU_ADDRESS ),
config_rule_set('_connect/port', DEVICE_EMU_PORT ),
config_rule_set('_connect/settings', {'endpoints': [
{'uuid': endpoint_uuid, 'type': endpoint_type, 'sample_types': endpoint_sample_types}
for endpoint_uuid,endpoint_type,endpoint_sample_types in DEVICE_EMU_ENDPOINTS
]
DEVICE_EMU_CONFIG_ENDPOINTS = [
config_rule_set(RSRC_EP.format('EP1'), {'enabled' : True}),
config_rule_set(RSRC_EP.format('EP2'), {'enabled' : True}),
config_rule_set(RSRC_EP.format('EP3'), {'enabled' : True}),
config_rule_set(RSRC_EP.format('EP4'), {'enabled' : True}),
]
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
DEVICE_EMU_CONFIG_ADDRESSES = [
config_rule_set(RSRC_SUBIF .format('EP1', 0 ), {'index': 0}),
config_rule_set(RSRC_ADDRIPV4.format('EP1', 0, '10.1.0.1'), {'ip': '10.1.0.1', 'prefix_length': 24}),
config_rule_set(RSRC_SUBIF .format('EP2', 0 ), {'index': 0}),
config_rule_set(RSRC_ADDRIPV4.format('EP2', 0, '10.2.0.1'), {'ip': '10.2.0.1', 'prefix_length': 24}),
config_rule_set(RSRC_SUBIF .format('EP3', 0 ), {'index': 0}),
config_rule_set(RSRC_ADDRIPV4.format('EP3', 0, '10.3.0.1'), {'ip': '10.3.0.1', 'prefix_length': 24}),
config_rule_set(RSRC_SUBIF .format('EP4', 0 ), {'index': 0}),
config_rule_set(RSRC_ADDRIPV4.format('EP4', 0, '10.4.0.1'), {'ip': '10.4.0.1', 'prefix_length': 24}),
]
DEVICE_EMU_RECONFIG_ADDRESSES = [
config_rule_delete(RSRC_SUBIF .format('EP2', 0 ), {}),
config_rule_delete(RSRC_ADDRIPV4.format('EP2', 0, '10.2.0.1'), {'ip': '10.2.0.1', 'prefix_length': 24}),
config_rule_set (RSRC_SUBIF .format('EP2', 1 ), {'index': 1}),
config_rule_set (RSRC_ADDRIPV4.format('EP2', 1, '10.2.1.1'), {'ip': '10.2.1.1', 'prefix_length': 24}),
]
DEVICE_EMU_DECONFIG_ADDRESSES = [
config_rule_delete(RSRC_SUBIF .format('EP1', 0 ), {}),
config_rule_delete(RSRC_ADDRIPV4.format('EP1', 0, '10.1.0.1'), {}),
config_rule_delete(RSRC_SUBIF .format('EP2', 1 ), {}),
config_rule_delete(RSRC_ADDRIPV4.format('EP2', 1, '10.2.1.1'), {}),
config_rule_delete(RSRC_SUBIF .format('EP3', 0 ), {}),
config_rule_delete(RSRC_ADDRIPV4.format('EP3', 0, '10.3.0.1'), {}),
config_rule_delete(RSRC_SUBIF .format('EP4', 0 ), {}),
config_rule_delete(RSRC_ADDRIPV4.format('EP4', 0, '10.4.0.1'), {}),
]
DEVICE_EMU_DECONFIG_ENDPOINTS = [
config_rule_delete(RSRC_EP.format('EP1'), {}),
config_rule_delete(RSRC_EP.format('EP2'), {}),
config_rule_delete(RSRC_EP.format('EP3'), {}),
config_rule_delete(RSRC_EP.format('EP4'), {}),