def test_delete_network_postcommit_flat(self): m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_FLAT) self.driver.delete_network_postcommit(m_nc) self.mock_manager.assert_not_called() self.mock_driver.assert_not_called()
def test_empty_methods(self): m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network() m_pc = mock.create_autospec(driver_context.PortContext) m_pc.current = ml2_utils.get_test_port(network_id=m_nc.current['id']) m_pc.network = m_nc.current m_sc = mock.create_autospec(driver_context.SubnetContext) m_sc.current = ml2_utils.get_test_subnet( network_id=m_nc.current['id']) m_sc.network = m_nc self.driver.create_network_precommit(m_nc) self.driver.create_network_postcommit(m_nc) self.driver.update_network_precommit(m_nc) self.driver.update_network_postcommit(m_nc) self.driver.delete_network_precommit(m_nc) self.driver.delete_network_postcommit(m_nc) self.driver.create_subnet_precommit(m_sc) self.driver.create_subnet_postcommit(m_sc) self.driver.update_subnet_precommit(m_sc) self.driver.update_subnet_postcommit(m_sc) self.driver.delete_subnet_precommit(m_sc) self.driver.delete_subnet_postcommit(m_sc) self.driver.create_port_precommit(m_pc) self.driver.create_port_postcommit(m_pc) self.driver.update_port_precommit(m_pc) self.driver.update_port_postcommit(m_pc) self.driver.delete_port_precommit(m_pc) self.driver.delete_port_postcommit(m_pc)
def test_delete_network_postcommit_vlan(self): # VLAN but no segmentation ID m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN) m_nc.original = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN) self.driver.delete_network_postcommit(m_nc) self.mock_manager.assert_not_called() self.mock_driver.assert_not_called() # VLAN ID and matching physnet self.mock_manager.reset_mock() self.mock_driver.reset_mock() m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN, segmentation_id=10, physical_network='fake_physical_network') self.driver.delete_network_postcommit(m_nc) self.mock_manager.assert_called_once_with('foo') self.mock_driver.delete_network.assert_called_once_with(m_nc) # Not on physnet self.mock_manager.reset_mock() self.mock_driver.reset_mock() m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN, segmentation_id=10, physical_network='not-on-physnet') self.driver.delete_network_postcommit(m_nc) self.mock_manager.assert_not_called() self.mock_driver.assert_not_called() # VLAN management disabled self.mock_manager.reset_mock() self.mock_driver.reset_mock() self.conf.config(manage_vlans=False, group='foo') m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN, segmentation_id=10, physical_network='fake_physical_network') self.driver.delete_network_postcommit(m_nc) self.mock_manager.assert_not_called() self.mock_driver.assert_not_called()
def test_update_network_postcommit_vlan(self): # VLAN but no segmentation ID m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN) m_nc.original = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN) self.driver.update_network_postcommit(m_nc) self.mock_manager.assert_not_called() self.mock_driver.assert_not_called() # Whith physical network self.mock_manager.reset_mock() self.mock_driver.reset_mock() m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN, segmentation_id=10, physical_network='fake_physical_network') self.driver.update_network_postcommit(m_nc) self.mock_manager.assert_called_once_with('foo') self.mock_driver.update_network.assert_called_once_with(m_nc) # VLAN management disabled self.mock_manager.reset_mock() self.mock_driver.reset_mock() self.conf.config(manage_vlans=False, group='foo') self.driver.update_network_postcommit(m_nc) self.mock_manager.assert_not_called() self.mock_driver.assert_not_called() # Device not on physical network self.mock_manager.reset_mock() self.mock_driver.reset_mock() m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN, segmentation_id=10, physical_network='fake_physical_network') self.conf.config(physical_networks=['not-connected-physnet'], manage_vlans=True, group='foo') self.driver.update_network_postcommit(m_nc) self.mock_manager.assert_not_called() self.mock_driver.assert_not_called()
def test_update_port_postcommit_not_bound(self, mpb_pc): m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network() m_pc = mock.create_autospec(driver_context.PortContext) m_pc.current = ml2_utils.get_test_port(network_id=m_nc.current['id']) m_pc.network = m_nc self.driver.update_port_postcommit(m_pc) self.assertFalse(mpb_pc.called)
def test_port_unbound_unplug_port(self): m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network() m_nc.original = ml2_utils.get_test_network() m_pc = mock.create_autospec(driver_context.PortContext) m_pc.current = ml2_utils.get_test_port( network_id=m_nc.current['id'], vnic_type=None, vif_type=None) m_pc.original = ml2_utils.get_test_port( network_id=m_nc.current['id'], vnic_type=portbindings.VNIC_BAREMETAL, vif_type=portbindings.VIF_TYPE_OTHER) m_pc.network = m_nc self.driver.update_port_postcommit(m_pc) self.mock_manager.assert_called_once_with('foo') self.mock_driver.delete_port.assert_called_once_with( m_pc, m_pc.current['binding:profile']['local_link_information'], current=False)
def test_create_network_postcommit_vlan(self): # VLAN but no segmentation ID m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN) self.driver.create_network_postcommit(m_nc) self.mock_manager.assert_not_called() self.mock_manager.assert_not_called() # VLAN with segmentation ID, but not on physical network self.mock_manager.reset_mock() self.mock_driver.reset_mock() m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN, segmentation_id=10) self.driver.create_network_postcommit(m_nc) self.mock_manager.assert_not_called() self.mock_driver.assert_not_called() # VLAN with segmentation ID, on physical network self.mock_manager.reset_mock() self.mock_driver.reset_mock() m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN, segmentation_id=10, physical_network='fake_physical_network') self.driver.create_network_postcommit(m_nc) self.mock_manager.assert_called_once_with('foo') self.mock_driver.create_network.assert_called_once_with(m_nc) # Device VLAN management disabled in config self.conf.config(manage_vlans=False, group='foo') self.mock_manager.reset_mock() self.mock_driver.reset_mock() m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VLAN, segmentation_id=10, physical_network='fake_physical_network') self.driver.create_network_postcommit(m_nc) self.mock_manager.assert_not_called() self.mock_driver.assert_not_called()
def test_update_port_postcommit_unsupported_vnic_type_not_bound( self, mpb_pc): m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network() m_pc = mock.create_autospec(driver_context.PortContext) m_pc.current = ml2_utils.get_test_port( network_id=m_nc.current['id'], vnic_type=portbindings.VNIC_MACVTAP, vif_type=portbindings.VIF_TYPE_OTHER) m_pc.network = m_nc self.driver.update_port_postcommit(m_pc) self.assertFalse(mpb_pc.called)
def test_bind_port_unsupported_vnic_type(self, mpb_pc): m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_FLAT) m_pc = mock.create_autospec(driver_context.PortContext) m_pc.current = ml2_utils.get_test_port( network_id=m_nc.current['id'], vnic_type='unsupported') m_pc.network = m_nc m_pc.segments_to_bind = [ ml2_utils.get_test_segment(network_type=n_const.TYPE_FLAT)] self.driver.bind_port(m_pc) self.assertFalse(mpb_pc.called)
def test_update_port_postcommit_supported_vnic_type_bound(self, mpb_pc): m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network() m_pc = mock.create_autospec(driver_context.PortContext) m_pc.current = ml2_utils.get_test_port( network_id=m_nc.current['id'], vnic_type=portbindings.VNIC_BAREMETAL, vif_type=portbindings.VIF_TYPE_OTHER) m_pc._plugin_context = 'plugin_context' m_pc.network = m_nc self.driver.update_port_postcommit(m_pc) mpb_pc.assert_called_once_with('plugin_context', m_pc.current['id'], 'port', 'BAREMETAL_DRV_ENTITIY')
def test_bind_port_unsupported_network_type(self, mpb_pc): m_nc = mock.create_autospec(driver_context.NetworkContext) m_nc.current = ml2_utils.get_test_network( network_type=n_const.TYPE_VXLAN) m_pc = mock.create_autospec(driver_context.PortContext) m_pc.current = ml2_utils.get_test_port( network_id=m_nc.current['id'], vnic_type=portbindings.VNIC_BAREMETAL, vif_type=portbindings.VIF_TYPE_OTHER) m_pc.network = m_nc m_pc.segments_to_bind = [ ml2_utils.get_test_segment(network_type=n_const.TYPE_VXLAN)] self.driver.bind_port(m_pc) self.assertFalse(mpb_pc.called)