def test_port_update_rpc_exception(self): port = self._build_aur_port() ovsvapp_agent.ports_dict[port['id']] = ovsvapp_agent.portInfo( port['segmentation_id'], port['mac_address'], port['security_groups'], port['fixed_ips'], port['admin_state_up'], port['network_id'], port['device_id']) self.agent.tenant_network_type = 'vlan' self.agent.net_mgr = fake_manager.MockNetworkManager("callback") self.agent.net_mgr.initialize_driver() self.agent.state = "RUNNING" neutron_port = {'segmentation_id': port['segmentation_id'], 'port': {'id': port['id'], 'mac_address': port['mac_address'], 'security_groups': port['security_groups'], 'fixed_ips': port['fixed_ips'], 'admin_state_up': True, 'network_id': port['network_id'], 'device_id': port['device_id']}} with contextlib.nested( mock.patch.object(self.agent.plugin_rpc, "update_device_up", side_effect=Exception()), mock.patch.object(self.agent.plugin_rpc, "update_device_down"), mock.patch.object(self.LOG, 'exception'), mock.patch.object(self.LOG, 'debug') ) as (device_up, device_down, log_exception, log_debug): self.assertRaises( error.NeutronAgentError, self.agent.port_update, self.agent.context, **neutron_port) self.assertEqual( ovsvapp_agent.ports_dict[port['id']].admin_state_up, neutron_port['port']['admin_state_up'] ) self.assertTrue(log_exception.called) self.assertTrue(device_up.called)
def test_process_event_vm_delete_non_hosted_vm(self): self.agent.esx_hostname = 'realhost' self.agent.cluster_devices.add('fakevm') self.agent.cluster_other_ports.add('xxx') self.agent.tenant_network_type = p_const.TYPE_VLAN ovsvapp_agent.network_port_count['yyy'] = 1 port = self._build_aur_port() ovsvapp_agent.ports_dict[port['id']] = ovsvapp_agent.portInfo( port['segmentation_id'], port['mac_address'], port['security_groups'], port['fixed_ips'], port['admin_state_up'], port['network_id'], port['device_id']) vm_port = samplePortUIDMac("xxx", "01:02:03:04:05:06") vm = VM("fakevm", ([vm_port])) event = sampleEvent(model.EventType.VM_DELETED, 'fakehost', 'fakecluster', vm) self.assertIn(vm.uuid, self.agent.cluster_devices) for vnic in vm.vnics: self.assertIn(vnic.port_uuid, self.agent.cluster_other_ports) self.assertNotIn(vnic.port_uuid, self.agent.cluster_host_ports) self.agent.net_mgr = fake_manager.MockNetworkManager("callback") self.agent.net_mgr.initialize_driver() self.agent.state = "RUNNING" with contextlib.nested( mock.patch.object(self.agent.net_mgr.get_driver(), "post_delete_vm", return_value=True), mock.patch.object(self.agent.net_mgr.get_driver(), "delete_network"), ) as (post_del_vm, del_net): self.agent.process_event(event) self.assertNotIn(vm.uuid, self.agent.cluster_devices) for vnic in vm.vnics: self.assertNotIn(vnic.port_uuid, self.agent.cluster_other_ports) self.assertTrue(post_del_vm.called) self.assertFalse(del_net.called)