def test_create_network_definition_from_ci_config_bad(self): CFG = DotDict({ 'device_type': "bad_device_type", }) # device_type with self.assertRaises(NetworkDefinitionException): NetworkUtil.create_network_definition_from_ci_config(CFG) CFG = DotDict({ 'device_type': "PlatformDevice", }) # missing platform_id with self.assertRaises(NetworkDefinitionException): NetworkUtil.create_network_definition_from_ci_config(CFG) CFG = DotDict({ 'device_type': "PlatformDevice", 'platform_config': { 'platform_id': 'Node1D' }, }) # missing driver_config with self.assertRaises(NetworkDefinitionException): NetworkUtil.create_network_definition_from_ci_config(CFG)
def test_create_network_definition_from_ci_config_bad(self): CFG = DotDict({ 'device_type' : "bad_device_type", }) # device_type with self.assertRaises(NetworkDefinitionException): NetworkUtil.create_network_definition_from_ci_config(CFG) CFG = DotDict({ 'device_type' : "PlatformDevice", }) # missing platform_id with self.assertRaises(NetworkDefinitionException): NetworkUtil.create_network_definition_from_ci_config(CFG) CFG = DotDict({ 'device_type' : "PlatformDevice", 'platform_config': { 'platform_id': 'Node1D' }, }) # missing driver_config with self.assertRaises(NetworkDefinitionException): NetworkUtil.create_network_definition_from_ci_config(CFG)
def test_create_network_definition_from_ci_config(self): CFG = DotDict({ 'device_type': "PlatformDevice", 'platform_config': { 'platform_id': 'Node1D' }, 'driver_config': { 'attributes': { 'MVPC_pressure_1': { 'attr_id': 'MVPC_pressure_1', 'group': 'pressure', 'max_val': 33.8, 'min_val': -3.8, 'monitor_cycle_seconds': 10, 'precision': 0.04, 'read_write': 'read', 'type': 'float', 'units': 'PSI' }, 'MVPC_temperature': { 'attr_id': 'MVPC_temperature', 'group': 'temperature', 'max_val': 58.5, 'min_val': -1.5, 'monitor_cycle_seconds': 10, 'precision': 0.06, 'read_write': 'read', 'type': 'float', 'units': 'Degrees C' }, 'input_bus_current': { 'attr_id': 'input_bus_current', 'group': 'power', 'max_val': 50, 'min_val': -50, 'monitor_cycle_seconds': 5, 'precision': 0.1, 'read_write': 'write', 'type': 'float', 'units': 'Amps' }, 'input_voltage': { 'attr_id': 'input_voltage', 'group': 'power', 'max_val': 500, 'min_val': -500, 'monitor_cycle_seconds': 5, 'precision': 1, 'read_write': 'read', 'type': 'float', 'units': 'Volts' } }, 'dvr_cls': 'RSNPlatformDriver', 'dvr_mod': 'ion.agents.platform.rsn.rsn_platform_driver', 'oms_uri': 'embsimulator', 'ports': { 'Node1D_port_1': { 'port_id': 'Node1D_port_1' }, 'Node1D_port_2': { 'port_id': 'Node1D_port_2' } }, }, 'children': { 'd7877d832cf94c388089b141043d60de': { 'agent': { 'resource_id': 'd7877d832cf94c388089b141043d60de' }, 'device_type': 'PlatformDevice', 'platform_config': { 'platform_id': 'MJ01C' }, 'driver_config': { 'attributes': { 'MJ01C_attr_1': { 'attr_id': 'MJ01C_attr_1', 'group': 'power', 'max_val': 10, 'min_val': -2, 'monitor_cycle_seconds': 5, 'read_write': 'read', 'type': 'int', 'units': 'xyz' }, 'MJ01C_attr_2': { 'attr_id': 'MJ01C_attr_2', 'group': 'power', 'max_val': 10, 'min_val': -2, 'monitor_cycle_seconds': 5, 'read_write': 'write', 'type': 'int', 'units': 'xyz' } }, 'dvr_cls': 'RSNPlatformDriver', 'dvr_mod': 'ion.agents.platform.rsn.rsn_platform_driver', 'oms_uri': 'embsimulator', 'ports': { 'MJ01C_port_1': { 'port_id': 'MJ01C_port_1' }, 'MJ01C_port_2': { 'port_id': 'MJ01C_port_2' } } }, 'children': { 'd0203cb9eb844727b7a8eea77db78e89': { 'agent': { 'resource_id': 'd0203cb9eb844727b7a8eea77db78e89' }, 'platform_config': { 'platform_id': 'LJ01D' }, 'device_type': 'PlatformDevice', 'driver_config': { 'attributes': { 'MVPC_pressure_1': { 'attr_id': 'MVPC_pressure_1', 'group': 'pressure', 'max_val': 33.8, 'min_val': -3.8, 'monitor_cycle_seconds': 10, 'precision': 0.04, 'read_write': 'read', 'type': 'float', 'units': 'PSI' }, 'MVPC_temperature': { 'attr_id': 'MVPC_temperature', 'group': 'temperature', 'max_val': 58.5, 'min_val': -1.5, 'monitor_cycle_seconds': 10, 'precision': 0.06, 'read_write': 'read', 'type': 'float', 'units': 'Degrees C' }, 'input_bus_current': { 'attr_id': 'input_bus_current', 'group': 'power', 'max_val': 50, 'min_val': -50, 'monitor_cycle_seconds': 5, 'precision': 0.1, 'read_write': 'write', 'type': 'float', 'units': 'Amps' }, 'input_voltage': { 'attr_id': 'input_voltage', 'group': 'power', 'max_val': 500, 'min_val': -500, 'monitor_cycle_seconds': 5, 'precision': 1, 'read_write': 'read', 'type': 'float', 'units': 'Volts' } }, 'dvr_cls': 'RSNPlatformDriver', 'dvr_mod': 'ion.agents.platform.rsn.rsn_platform_driver', 'oms_uri': 'embsimulator', 'ports': { 'LJ01D_port_1': { 'port_id': '1' }, 'LJ01D_port_2': { 'port_id': '2' } } }, 'children': {}, } } } } }) ndef = NetworkUtil.create_network_definition_from_ci_config(CFG) if log.isEnabledFor(logging.TRACE): serialization = NetworkUtil.serialize_network_definition(ndef) log.trace("serialization = \n%s", serialization) self.assertIn('Node1D', ndef.pnodes) Node1D = ndef.pnodes['Node1D'] common_attr_names = [ 'MVPC_pressure_1|0', 'MVPC_temperature|0', 'input_bus_current|0', 'input_voltage|0', ] for attr_name in common_attr_names: self.assertIn(attr_name, Node1D.attrs) #todo complete the network definition: align ports defintion with internal representation. #for port_name in ['Node1D_port_1', 'Node1D_port_2']: # self.assertIn(port_name, Node1D.ports) for subplat_name in [ 'MJ01C', ]: self.assertIn(subplat_name, Node1D.subplatforms) MJ01C = Node1D.subplatforms['MJ01C'] for subplat_name in [ 'LJ01D', ]: self.assertIn(subplat_name, MJ01C.subplatforms) LJ01D = MJ01C.subplatforms['LJ01D'] for attr_name in common_attr_names: self.assertIn(attr_name, LJ01D.attrs)
def test_create_network_definition_from_ci_config(self): CFG = DotDict({ 'device_type' : "PlatformDevice", 'platform_config': { 'platform_id': 'Node1D' }, 'driver_config': {'attributes': {'MVPC_pressure_1': {'attr_id': 'MVPC_pressure_1', 'group': 'pressure', 'max_val': 33.8, 'min_val': -3.8, 'monitor_cycle_seconds': 10, 'precision': 0.04, 'read_write': 'read', 'type': 'float', 'units': 'PSI'}, 'MVPC_temperature': {'attr_id': 'MVPC_temperature', 'group': 'temperature', 'max_val': 58.5, 'min_val': -1.5, 'monitor_cycle_seconds': 10, 'precision': 0.06, 'read_write': 'read', 'type': 'float', 'units': 'Degrees C'}, 'input_bus_current': {'attr_id': 'input_bus_current', 'group': 'power', 'max_val': 50, 'min_val': -50, 'monitor_cycle_seconds': 5, 'precision': 0.1, 'read_write': 'write', 'type': 'float', 'units': 'Amps'}, 'input_voltage': {'attr_id': 'input_voltage', 'group': 'power', 'max_val': 500, 'min_val': -500, 'monitor_cycle_seconds': 5, 'precision': 1, 'read_write': 'read', 'type': 'float', 'units': 'Volts'}}, 'dvr_cls': 'RSNPlatformDriver', 'dvr_mod': 'ion.agents.platform.rsn.rsn_platform_driver', 'oms_uri': 'embsimulator', 'ports': {'Node1D_port_1': {'port_id': 'Node1D_port_1'}, 'Node1D_port_2': {'port_id': 'Node1D_port_2'}}, }, 'children': {'d7877d832cf94c388089b141043d60de': {'agent': {'resource_id': 'd7877d832cf94c388089b141043d60de'}, 'device_type': 'PlatformDevice', 'platform_config': {'platform_id': 'MJ01C'}, 'driver_config': {'attributes': {'MJ01C_attr_1': {'attr_id': 'MJ01C_attr_1', 'group': 'power', 'max_val': 10, 'min_val': -2, 'monitor_cycle_seconds': 5, 'read_write': 'read', 'type': 'int', 'units': 'xyz'}, 'MJ01C_attr_2': {'attr_id': 'MJ01C_attr_2', 'group': 'power', 'max_val': 10, 'min_val': -2, 'monitor_cycle_seconds': 5, 'read_write': 'write', 'type': 'int', 'units': 'xyz'}}, 'dvr_cls': 'RSNPlatformDriver', 'dvr_mod': 'ion.agents.platform.rsn.rsn_platform_driver', 'oms_uri': 'embsimulator', 'ports': {'MJ01C_port_1': {'port_id': 'MJ01C_port_1'}, 'MJ01C_port_2': {'port_id': 'MJ01C_port_2'}}}, 'children': {'d0203cb9eb844727b7a8eea77db78e89': {'agent': {'resource_id': 'd0203cb9eb844727b7a8eea77db78e89'}, 'platform_config': {'platform_id': 'LJ01D'}, 'device_type': 'PlatformDevice', 'driver_config': {'attributes': {'MVPC_pressure_1': {'attr_id': 'MVPC_pressure_1', 'group': 'pressure', 'max_val': 33.8, 'min_val': -3.8, 'monitor_cycle_seconds': 10, 'precision': 0.04, 'read_write': 'read', 'type': 'float', 'units': 'PSI'}, 'MVPC_temperature': {'attr_id': 'MVPC_temperature', 'group': 'temperature', 'max_val': 58.5, 'min_val': -1.5, 'monitor_cycle_seconds': 10, 'precision': 0.06, 'read_write': 'read', 'type': 'float', 'units': 'Degrees C'}, 'input_bus_current': {'attr_id': 'input_bus_current', 'group': 'power', 'max_val': 50, 'min_val': -50, 'monitor_cycle_seconds': 5, 'precision': 0.1, 'read_write': 'write', 'type': 'float', 'units': 'Amps'}, 'input_voltage': {'attr_id': 'input_voltage', 'group': 'power', 'max_val': 500, 'min_val': -500, 'monitor_cycle_seconds': 5, 'precision': 1, 'read_write': 'read', 'type': 'float', 'units': 'Volts'}}, 'dvr_cls': 'RSNPlatformDriver', 'dvr_mod': 'ion.agents.platform.rsn.rsn_platform_driver', 'oms_uri': 'embsimulator', 'ports': {'LJ01D_port_1': {'port_id': '1'}, 'LJ01D_port_2': {'port_id': '2'}}}, 'children': {}, } } } } }) ndef = NetworkUtil.create_network_definition_from_ci_config(CFG) if log.isEnabledFor(logging.TRACE): serialization = NetworkUtil.serialize_network_definition(ndef) log.trace("serialization = \n%s", serialization) self.assertIn('Node1D', ndef.pnodes) Node1D = ndef.pnodes['Node1D'] common_attr_names = ['MVPC_pressure_1|0', 'MVPC_temperature|0', 'input_bus_current|0', 'input_voltage|0', ] for attr_name in common_attr_names: self.assertIn(attr_name, Node1D.attrs) #todo complete the network definition: align ports defintion with internal representation. #for port_name in ['Node1D_port_1', 'Node1D_port_2']: # self.assertIn(port_name, Node1D.ports) for subplat_name in ['MJ01C', ]: self.assertIn(subplat_name, Node1D.subplatforms) MJ01C = Node1D.subplatforms['MJ01C'] for subplat_name in ['LJ01D', ]: self.assertIn(subplat_name, MJ01C.subplatforms) LJ01D = MJ01C.subplatforms['LJ01D'] for attr_name in common_attr_names: self.assertIn(attr_name, LJ01D.attrs)