Exemple #1
0
 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()
Exemple #2
0
    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)
Exemple #3
0
    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()
Exemple #4
0
    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()
Exemple #5
0
    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)
Exemple #6
0
 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)
Exemple #7
0
    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()
Exemple #8
0
    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)
Exemple #9
0
    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)
Exemple #10
0
    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')
Exemple #11
0
    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)