Exemple #1
0
 def test_port_bind_retry(self):
     agent = helpers.register_ovs_agent(host=helpers.HOST)
     helpers.kill_agent(agent_id=agent.id)
     with self.network() as network:
         with self.subnet(network=network) as subnet:
             with self.port(subnet=subnet,
                            device_owner=DEVICE_OWNER_COMPUTE,
                            arg_list=(
                                portbindings.HOST_ID,
                                'admin_state_up',
                            ),
                            **self.host_args) as port:
                 # Since the agent is dead, expect binding to fail
                 self.assertEqual(port['port']['binding:vif_type'],
                                  portbindings.VIF_TYPE_BINDING_FAILED)
                 helpers.revive_agent(agent.id)
                 # When an agent starts, The RPC call get_device_details()
                 # will invoke get_bound_port_context() which eventually use
                 # _bind_port_if_needed()
                 bound_context = self.plugin.get_bound_port_context(
                     self.admin_context, port['port']['id'], helpers.HOST)
                 # Since the agent is back online, expect binding to succeed
                 self.assertEqual(bound_context.vif_type,
                                  portbindings.VIF_TYPE_OVS)
                 self.assertEqual(bound_context.current['binding:vif_type'],
                                  portbindings.VIF_TYPE_OVS)
def register_bgp_dragent(host=helpers.HOST, admin_state_up=True, alive=True):
    agent = helpers._register_agent(_get_bgp_dragent_dict(host))

    if not admin_state_up:
        helpers.set_agent_admin_state(agent['id'])
    if not alive:
        helpers.kill_agent(agent['id'])

    return helpers.FakePlugin()._get_agent_by_type_and_host(
        context.get_admin_context(), agent['agent_type'], agent['host'])
def register_bgp_dragent(host=helpers.HOST, admin_state_up=True,
                        alive=True):
    agent = helpers._register_agent(
        _get_bgp_dragent_dict(host))

    if not admin_state_up:
        helpers.set_agent_admin_state(agent['id'])
    if not alive:
        helpers.kill_agent(agent['id'])

    return helpers.FakePlugin()._get_agent_by_type_and_host(
        context.get_admin_context(), agent['agent_type'], agent['host'])
Exemple #4
0
 def test_loadbalancer_reschedule_from_dead_lbaas_agent(self):
     self._register_agent_states(lbaas_agents=True)
     with self.loadbalancer() as loadbalancer:
         loadbalancer_data = loadbalancer['loadbalancer']
         self.plugin.db.update_loadbalancer_provisioning_status(
             self.adminContext, loadbalancer_data['id'])
         original_agent = self._get_lbaas_agent_hosting_loadbalancer(
             loadbalancer_data['id'])
         self.assertIsNotNone(original_agent)
         helpers.kill_agent(original_agent['agent']['id'])
         self.load_balancer.reschedule_lbaas_from_down_agents()
         rescheduled_agent = self._get_lbaas_agent_hosting_loadbalancer(
             loadbalancer_data['id'])
         self.assertNotEqual(original_agent, rescheduled_agent)
Exemple #5
0
 def test_port_bind_retry(self):
     agent = helpers.register_ovs_agent(host=helpers.HOST)
     helpers.kill_agent(agent_id=agent.id)
     with self.network() as network:
         with self.subnet(network=network) as subnet:
             with self.port(
                     subnet=subnet, device_owner=DEVICE_OWNER_COMPUTE,
                     arg_list=(portbindings.HOST_ID, 'admin_state_up',),
                     **self.host_args) as port:
                 # Since the agent is dead, expect binding to fail
                 self.assertEqual(port['port']['binding:vif_type'],
                                  portbindings.VIF_TYPE_BINDING_FAILED)
                 helpers.revive_agent(agent.id)
                 # When an agent starts, The RPC call get_device_details()
                 # will invoke get_bound_port_context() which eventually use
                 # _bind_port_if_needed()
                 bound_context = self.plugin.get_bound_port_context(
                     self.admin_context, port['port']['id'], helpers.HOST)
                 # Since the agent is back online, expect binding to succeed
                 self.assertEqual(bound_context.vif_type,
                                  portbindings.VIF_TYPE_OVS)
                 self.assertEqual(bound_context.current['binding:vif_type'],
                                  portbindings.VIF_TYPE_OVS)
 def test_get_number_of_agents_for_scheduling_not_enough_agents(self):
     cfg.CONF.set_override('min_l3_agents_per_router', 3)
     helpers.kill_agent(helpers.register_l3_agent(host='l3host_3')['id'])
     self.assertRaises(l3_ext_ha_mode.HANotEnoughAvailableAgents,
                       self.plugin.get_number_of_agents_for_scheduling,
                       self.admin_ctx)
Exemple #7
0
 def test_get_number_of_agents_for_scheduling_not_enough_agents(self):
     cfg.CONF.set_override('min_l3_agents_per_router', 3)
     helpers.kill_agent(helpers.register_l3_agent(host='l3host_3')['id'])
     self.assertRaises(l3_ext_ha_mode.HANotEnoughAvailableAgents,
                       self.plugin.get_number_of_agents_for_scheduling,
                       self.admin_ctx)