Exemplo n.º 1
0
 def setUp(self):
     self.plugin_p = mock.patch('quantum.manager.QuantumManager.get_plugin')
     get_plugin = self.plugin_p.start()
     self.plugin = mock.Mock()
     get_plugin.return_value = self.plugin
     self.callbacks = dhcp_rpc_base.DhcpRpcCallbackMixin()
     self.log_p = mock.patch('quantum.db.dhcp_rpc_base.LOG')
     self.log = self.log_p.start()
Exemplo n.º 2
0
 def test_network_auto_schedule_with_disabled(self):
     with contextlib.nested(self.network(), self.network()):
         dhcp_rpc = dhcp_rpc_base.DhcpRpcCallbackMixin()
         self._register_agent_states()
         hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP,
                                       DHCP_HOSTA)
         hostc_id = self._get_agent_id(constants.AGENT_TYPE_DHCP,
                                       DHCP_HOSTC)
         self._disable_agent(hosta_id)
         dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTA)
         # second agent will host all the networks since first is disabled.
         dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTC)
         networks = self._list_networks_hosted_by_dhcp_agent(hostc_id)
         num_hostc_nets = len(networks['networks'])
         networks = self._list_networks_hosted_by_dhcp_agent(hosta_id)
         num_hosta_nets = len(networks['networks'])
     self.assertEqual(0, num_hosta_nets)
     self.assertEqual(2, num_hostc_nets)
Exemplo n.º 3
0
    def test_network_auto_schedule_with_hosted_2(self):
        # one agent hosts one network
        dhcp_rpc = dhcp_rpc_base.DhcpRpcCallbackMixin()
        dhcp_hosta = {
            'binary': 'quantum-dhcp-agent',
            'host': DHCP_HOSTA,
            'topic': 'DHCP_AGENT',
            'configurations': {
                'dhcp_driver': 'dhcp_driver',
                'use_namespaces': True,
            },
            'agent_type': constants.AGENT_TYPE_DHCP
        }
        dhcp_hostc = copy.deepcopy(dhcp_hosta)
        dhcp_hostc['host'] = DHCP_HOSTC
        with self.network() as net1:
            self._register_one_agent_state(dhcp_hosta)
            dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTA)
            hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP,
                                          DHCP_HOSTA)
            self._disable_agent(hosta_id, admin_state_up=False)
            with self.network() as net2:
                self._register_one_agent_state(dhcp_hostc)
                dhcp_rpc.get_active_networks(self.adminContext,
                                             host=DHCP_HOSTC)
                dhcp_agents_1 = self._list_dhcp_agents_hosting_network(
                    net1['network']['id'])
                dhcp_agents_2 = self._list_dhcp_agents_hosting_network(
                    net2['network']['id'])
                hosta_nets = self._list_networks_hosted_by_dhcp_agent(hosta_id)
                num_hosta_nets = len(hosta_nets['networks'])
                hostc_id = self._get_agent_id(constants.AGENT_TYPE_DHCP,
                                              DHCP_HOSTC)
                hostc_nets = self._list_networks_hosted_by_dhcp_agent(hostc_id)
                num_hostc_nets = len(hostc_nets['networks'])

        self.assertEqual(1, num_hosta_nets)
        self.assertEqual(1, num_hostc_nets)
        self.assertEqual(1, len(dhcp_agents_1['agents']))
        self.assertEqual(1, len(dhcp_agents_2['agents']))
        self.assertEqual(DHCP_HOSTA, dhcp_agents_1['agents'][0]['host'])
        self.assertEqual(DHCP_HOSTC, dhcp_agents_2['agents'][0]['host'])
Exemplo n.º 4
0
    def test_network_auto_schedule_with_hosted(self):
        # one agent hosts all the networks, other hosts none
        with contextlib.nested(self.network(), self.network()) as (net1, net2):
            dhcp_rpc = dhcp_rpc_base.DhcpRpcCallbackMixin()
            self._register_agent_states()
            dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTA)
            # second agent will not host the network since first has got it.
            dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTC)
            dhcp_agents = self._list_dhcp_agents_hosting_network(
                net1['network']['id'])
            hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP,
                                          DHCP_HOSTA)
            hostc_id = self._get_agent_id(constants.AGENT_TYPE_DHCP,
                                          DHCP_HOSTC)
            hosta_nets = self._list_networks_hosted_by_dhcp_agent(hosta_id)
            num_hosta_nets = len(hosta_nets['networks'])
            hostc_nets = self._list_networks_hosted_by_dhcp_agent(hostc_id)
            num_hostc_nets = len(hostc_nets['networks'])

        self.assertEqual(2, num_hosta_nets)
        self.assertEqual(0, num_hostc_nets)
        self.assertEqual(1, len(dhcp_agents['agents']))
        self.assertEqual(DHCP_HOSTA, dhcp_agents['agents'][0]['host'])