Exemple #1
0
 def test_get_ha_agents_by_router_id(self):
     helpers.register_dhcp_agent()
     helpers.register_l3_agent()
     helpers.register_ovs_agent()
     self._create_ha_router()
     self._setup_port_binding(
         device_owner=constants.DEVICE_OWNER_ROUTER_SNAT,
         device_id=TEST_ROUTER_ID)
     agents = l2pop_db.get_ha_agents_by_router_id(self.ctx, TEST_ROUTER_ID)
     ha_agents = [agent.host for agent in agents]
     self.assertEqual(tools.UnorderedList([HOST, HOST_2]), ha_agents)
    def test_add_metering_label_rpc_call(self):
        second_uuid = 'e27fe2df-376e-4ac7-ae13-92f050a21f84'
        expected = [{
            'status': 'ACTIVE',
            'name': 'router1',
            'gw_port_id': None,
            'admin_state_up': True,
            'distributed': False,
            'tenant_id': self.tenant_id,
            '_metering_labels': [{
                'rules': [],
                'id': second_uuid
            }],
            'id': self.uuid
        }, {
            'status': 'ACTIVE',
            'name': 'router2',
            'gw_port_id': None,
            'admin_state_up': True,
            'distributed': False,
            'tenant_id': self.tenant_id,
            '_metering_labels': [{
                'rules': [],
                'id': second_uuid
            }],
            'id': second_uuid
        }]

        # bind each router to a specific agent
        agent1 = agent_obj.Agent(mock.ANY, host='agent1')
        agent2 = agent_obj.Agent(mock.ANY, host='agent2')

        agents = {self.uuid: agent1, second_uuid: agent2}

        def side_effect(context, routers, admin_state_up, active):
            return [agents[routers[0]]]

        self.l3routers_mock.side_effect = side_effect

        with self.router(name='router1',
                         tenant_id=self.tenant_id,
                         set_context=True):
            self.mock_uuid.return_value = second_uuid
            with self.router(name='router2',
                             tenant_id=self.tenant_id,
                             set_context=True):
                with self.metering_label(tenant_id=self.tenant_id,
                                         set_context=True):
                    self.mock_add.assert_called_with(
                        self.ctx, tools.UnorderedList(expected))
 def test_convert_kvp_list_to_dict_succeeds_for_multiple_values(self):
     result = converters.convert_kvp_list_to_dict(
         ['a=b', 'a=c', 'a=c', 'b=a'])
     expected = {'a': tools.UnorderedList(['c', 'b']), 'b': ['a']}
     self.assertEqual(expected, result)