示例#1
0
    def test__check_driver_to_bind(self):
        cfg.CONF.set_override('mechanism_drivers', ['fake_agent'], group='ml2')
        manager = managers.MechanismManager()

        with mock.patch.object(mech_fake_agent.FakeAgentMechanismDriver,
                               'bind_port') as bind_port:
            manager._bind_port_level(self.context, 0, self.segments_to_bind)
        self.assertEqual(1, bind_port.call_count)
示例#2
0
 def test__infer_driver_from_allocation_positive(self):
     cfg.CONF.set_override('mechanism_drivers', ['fake_agent'], group='ml2')
     manager = managers.MechanismManager()
     with mock.patch.object(mech_fake_agent.FakeAgentMechanismDriver,
                            'responsible_for_ports_allocation',
                            return_value=True):
         responsible_driver = manager._infer_driver_from_allocation(
             FakePortContext(
                 None,
                 None,
                 self.segments_to_bind,
                 profile={'allocation': 'fake_resource_provider'}))
         self.assertEqual(responsible_driver.name, 'fake_agent')
示例#3
0
    def test__check_driver_to_bind(self):
        manager = managers.MechanismManager()
        bindinglevel = mock.Mock()
        bindinglevel.driver = 'fake_driver'
        bindinglevel.segment_id = 'fake_seg_id'
        binding_levels = [bindinglevel]
        segments_to_bind = [{api.SEGMENTATION_ID: 'fake_seg_id'}]
        self.assertFalse(manager._check_driver_to_bind(
            'fake_driver', segments_to_bind, binding_levels))

        bindinglevel.segment_id = 'fake_seg_id1'
        self.assertTrue(manager._check_driver_to_bind(
            'fake_driver', segments_to_bind, binding_levels))
示例#4
0
    def test__check_driver_to_bind2(self):
        cfg.CONF.set_override('mechanism_drivers', ['fake_agent'],
                              group='ml2')
        manager = managers.MechanismManager()
        self.context._binding_levels = [mock.Mock(port_id="port_id",
                                             level=0,
                                             driver='fake_agent',
                                             segment_id=self.segment_id)]

        with mock.patch.object(mech_fake_agent.FakeAgentMechanismDriver,
                               'bind_port') as bind_port:
            manager._bind_port_level(self.context, 0, self.segments_to_bind)
        self.assertEqual(0, bind_port.call_count)
示例#5
0
 def test__infer_driver_from_allocation_negative(self):
     cfg.CONF.set_override('mechanism_drivers', ['fake_agent'], group='ml2')
     manager = managers.MechanismManager()
     with mock.patch.object(mech_fake_agent.FakeAgentMechanismDriver,
                            'responsible_for_ports_allocation',
                            return_value=False):
         self.assertRaises(
             place_exc.UnknownResourceProvider,
             manager._infer_driver_from_allocation,
             FakePortContext(
                 None,
                 None,
                 self.segments_to_bind,
                 profile={'allocation': 'fake_resource_provider'}))
示例#6
0
    def __init__(self):
        # First load drivers, then initialize DB, then initialize drivers
        self.type_manager = managers.TypeManager()
        self.mechanism_manager = managers.MechanismManager()
        db.initialize()
        self.type_manager.initialize()
        self.mechanism_manager.initialize()

        self._setup_rpc()

        # REVISIT(rkukura): Use stevedore for these?
        self.network_scheduler = importutils.import_object(
            cfg.CONF.network_scheduler_driver)

        LOG.info(_("Modular L2 Plugin initialization complete"))
示例#7
0
    def __init__(self):
        # First load drivers, then initialize DB, then initialize drivers
        self.type_manager = managers.TypeManager()
        self.mechanism_manager = managers.MechanismManager()
        super(Ml2Plugin, self).__init__()
        self.type_manager.initialize()
        self.mechanism_manager.initialize()
        # bulk support depends on the underlying drivers
        self.__native_bulk_support = self.mechanism_manager.native_bulk_support

        self._setup_rpc()

        # REVISIT(rkukura): Use stevedore for these?
        self.network_scheduler = importutils.import_object(
            cfg.CONF.network_scheduler_driver)

        LOG.info(_("Modular L2 Plugin initialization complete"))
示例#8
0
 def test__infer_driver_from_allocation_ambiguous(self):
     cfg.CONF.set_override('mechanism_drivers',
                           ['fake_agent', 'another_fake_agent'],
                           group='ml2')
     manager = managers.MechanismManager()
     with mock.patch.object(mech_fake_agent.FakeAgentMechanismDriver,
                            'responsible_for_ports_allocation',
                            return_value=True), \
         mock.patch.object(mech_fake_agent.AnotherFakeAgentMechanismDriver,
                           'responsible_for_ports_allocation',
                           return_value=True):
         self.assertRaises(
             place_exc.AmbiguousResponsibilityForResourceProvider,
             manager._infer_driver_from_allocation,
             FakePortContext(None,
                             None,
                             self.segments_to_bind,
                             profile={
                                 'allocation': {
                                     'fake_uuid': 'fake_resource_provider'
                                 }
                             }))
示例#9
0
 def setUp(self):
     config.cfg.CONF.set_override('mechanism_drivers', ['test'],
                                  group='ml2')
     super(TestMechManager, self).setUp()
     self._manager = managers.MechanismManager()
示例#10
0
 def _check_drivers_connectivity(self, agents):
     cfg.CONF.set_override('mechanism_drivers', agents, group='ml2')
     manager = managers.MechanismManager()
     return (manager.ordered_mech_drivers,
             manager._check_drivers_connectivity(
                 manager.ordered_mech_drivers, self.context))