Пример #1
0
    def test_get_sync_data_metering_with_inactive_router(self):
        with self.subnet() as subnet:
            s = subnet['subnet']
            self._set_net_external(s['network_id'])
            with self.router(name='router1',
                             tenant_id=self.tenant_id) as router1:
                self._add_external_gateway_to_router(router1['router']['id'],
                                                     s['network_id'])
                with self.router(name='router2',
                                 tenant_id=self.tenant_id,
                                 admin_state_up=False) as router2:
                    self._add_external_gateway_to_router(
                        router2['router']['id'], s['network_id'])
                    with self.metering_label(tenant_id=self.tenant_id):
                        callbacks = metering_rpc.MeteringRpcCallbacks(
                            self.meter_plugin)
                        data = callbacks.get_sync_data_metering(
                            self.adminContext, host='agent1')
                        self.assertEqual(set(['router1']),
                                         set([r['name'] for r in data]))

                    self._remove_external_gateway_from_router(
                        router2['router']['id'], s['network_id'])

                self._remove_external_gateway_from_router(
                    router1['router']['id'], s['network_id'])
Пример #2
0
 def start_rpc_listeners(self):
     self.endpoints = [metering_rpc.MeteringRpcCallbacks(self)]
     self.conn = n_rpc.create_connection()
     self.conn.create_consumer(topics.METERING_PLUGIN,
                               self.endpoints,
                               fanout=False)
     return self.conn.consume_in_threads()
Пример #3
0
    def __init__(self):
        super(MeteringPlugin, self).__init__()

        self.endpoints = [metering_rpc.MeteringRpcCallbacks(self)]

        self.conn = n_rpc.create_connection(new=True)
        self.conn.create_consumer(
            topics.METERING_PLUGIN, self.endpoints, fanout=False)
        self.conn.consume_in_threads()

        self.meter_rpc = metering_rpc_agent_api.MeteringAgentNotifyAPI()
Пример #4
0
    def test_get_sync_data_metering_not_shared(self):
        with self.router(name='router1', tenant_id=self.tenant_id_1):
            with self.router(name='router2', tenant_id=self.tenant_id_2):
                with self.metering_label(tenant_id=self.tenant_id):
                    callbacks = metering_rpc.MeteringRpcCallbacks(
                        self.meter_plugin)
                    data = callbacks.get_sync_data_metering(self.adminContext)

                    routers = [router['name'] for router in data]

                    self.assertEqual([], routers)
Пример #5
0
    def test_get_sync_data_metering(self):
        with self.subnet() as subnet:
            s = subnet['subnet']
            self._set_net_external(s['network_id'])
            with self.router(name='router1', subnet=subnet) as router:
                r = router['router']
                self._add_external_gateway_to_router(r['id'], s['network_id'])
                with self.metering_label(tenant_id=r['tenant_id']):
                    callbacks = metering_rpc.MeteringRpcCallbacks(
                        self.meter_plugin)
                    data = callbacks.get_sync_data_metering(self.adminContext,
                                                            host='agent1')
                    self.assertEqual('router1', data[0]['name'])

                    helpers.register_l3_agent(host='agent2')
                    data = callbacks.get_sync_data_metering(self.adminContext,
                                                            host='agent2')
                    self.assertFalse(data)

                self._remove_external_gateway_from_router(
                    r['id'], s['network_id'])