def test_parse_call_to_empty_bridge(self, mock_list_br, mock_empty): mock_list_br.return_value = ['br1'] utils.parse_sea_mappings(None, 'host_uuid', '') # Make sure the _parse_empty_bridge_mapping method was called self.assertEqual(1, mock_empty.call_count)
def test_parse_call_to_empty_bridge(self, mock_list_br, mock_empty): nb_wraps = pvm_net.NetBridge.wrap(self.net_br_resp) mock_list_br.return_value = nb_wraps self._mock_feed(self.vios_feed_resp) utils.parse_sea_mappings(self.adpt, 'host_uuid', '') # Make sure the _parse_empty_bridge_mapping method was called self.assertEqual(1, mock_empty.call_count)
def test_parse_sea_mappings(self, mock_wrap, mock_list_br): # Create mocks class FakeVIOS(object): @property def name(self): return '21-25D0A' @property def related_href(self): return 'https://9.1.2.3/vios1' mock_sea = mock.Mock() mock_sea.dev_name = 'ent8' mock_sea.vio_uri = 'https://9.1.2.3/vios1' nb_wrap = mock.Mock() nb_wrap.seas = [mock_sea] nb_wrap.uuid = '764f3423-04c5-3b96-95a3-4764065400bd' nb_wraps = [nb_wrap] mock_list_br.return_value = nb_wraps mock_adpt = mock.MagicMock() mock_wrap.return_value = [FakeVIOS()] # Run actual test resp = utils.parse_sea_mappings(mock_adpt, 'host_uuid', 'default:ent8:21-25D0A') # Verify results self.assertEqual(1, len(resp.keys())) self.assertIn('default', resp) self.assertEqual('764f3423-04c5-3b96-95a3-4764065400bd', resp['default'])
def test_parse_sea_mappings(self, mock_vioget, mock_list_br): # Create mocks mock_vios = mock.Mock() mock_vios.configure_mock(name='21-25D0A', uuid="4E0B057C-F052-4609-8EDE-071C7FC485BD") mock_sea = mock.Mock( dev_name='ent8', vio_uri='http://localhost:12080/rest/api/uom/ManagedSystem/' 'b7f6d2f3-c4f3-33e4-91ea-1aaeada65d7b/VirtualIOServer/' '4E0B057C-F052-4609-8EDE-071C7FC485BD') nb_wrap = mock.Mock() nb_wrap.seas = [mock_sea] nb_wrap.uuid = '764f3423-04c5-3b96-95a3-4764065400bd' nb_wraps = [nb_wrap] mock_list_br.return_value = nb_wraps mock_vioget.return_value = [mock_vios] # Run actual test resp = utils.parse_sea_mappings('adap', 'host_uuid', 'default:ent8:21-25D0A') # Verify results self.assertEqual(1, len(resp.keys())) self.assertIn('default', resp) self.assertEqual('764f3423-04c5-3b96-95a3-4764065400bd', resp['default'])
def test_parse_sea_mappings_no_mapping(self, mock_list_br): nb_wraps = pvm_net.NetBridge.wrap(self.net_br_resp) mock_list_br.return_value = nb_wraps self._mock_feed(self.vios_feed_resp) resp = utils.parse_sea_mappings(self.adpt, 'host_uuid', 'default:ent8:21-25D0A') self.assertEqual({'default': '764f3423-04c5-3b96-95a3-4764065400bd'}, resp)
def __init__(self): """Constructs the agent.""" name = 'networking-powervm-sharedethernet-agent' agent_type = p_const.AGENT_TYPE_PVM_SEA super(SharedEthernetNeutronAgent, self).__init__(name, agent_type) self.br_map = utils.parse_sea_mappings(self.adapter, self.host_uuid, ACONF.bridge_mappings) # A looping utility that updates asynchronously the PVIDs on the # Client Network Adapters (CNAs) self.pvid_updater = PVIDLooper(self) eventlet.spawn_n(self.pvid_updater.looping_call) # Add an event handler to the session. evt_listener = self.adapter.session.get_event_listener() self._cna_event_handler = CNAEventHandler(self) evt_listener.subscribe(self._cna_event_handler)
def parse_bridge_mappings(self): return utils.parse_sea_mappings(self.adapter, self.host_uuid, ACONF.bridge_mappings)