From 49c1c981b5850c21ebcef5667a1198e79a8a3da4 Mon Sep 17 00:00:00 2001 From: Oleg Bondarev Date: Mon, 18 Mar 2013 19:36:27 +0400 Subject: [PATCH] Metadata agent: reuse authentication info across eventlet threads Fixes bug 1152429 Change-Id: Ib65f08a46feb14abc97c0c83e57d076abd372a2c --- quantum/agent/metadata/agent.py | 5 +++++ quantum/tests/unit/test_metadata_agent.py | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/quantum/agent/metadata/agent.py b/quantum/agent/metadata/agent.py index 5a7428186..d04231b26 100644 --- a/quantum/agent/metadata/agent.py +++ b/quantum/agent/metadata/agent.py @@ -66,6 +66,7 @@ class MetadataProxyHandler(object): def __init__(self, conf): self.conf = conf + self.auth_info = {} def _get_quantum_client(self): qclient = client.Client( @@ -75,6 +76,8 @@ class MetadataProxyHandler(object): auth_url=self.conf.auth_url, auth_strategy=self.conf.auth_strategy, region_name=self.conf.auth_region, + auth_token=self.auth_info.get('auth_token'), + endpoint_url=self.auth_info.get('endpoint_url'), ) return qclient @@ -115,6 +118,8 @@ class MetadataProxyHandler(object): network_id=networks, fixed_ips=['ip_address=%s' % remote_address])['ports'] + self.auth_info = qclient.get_auth_info() + if len(ports) == 1: return ports[0]['device_id'] diff --git a/quantum/tests/unit/test_metadata_agent.py b/quantum/tests/unit/test_metadata_agent.py index ec0f4585c..1b0af7fc2 100644 --- a/quantum/tests/unit/test_metadata_agent.py +++ b/quantum/tests/unit/test_metadata_agent.py @@ -95,7 +95,9 @@ class TestMetadataProxyHandler(base.BaseTestCase): region_name=FakeConf.auth_region, auth_url=FakeConf.auth_url, password=FakeConf.admin_password, - auth_strategy=FakeConf.auth_strategy) + auth_strategy=FakeConf.auth_strategy, + auth_token=None, + endpoint_url=None) ] if router_id: -- 2.45.2