make neutron-ns-metadata-proxy configurable

Introduced a new configuration parameter for DHCP and L3 agent
to be able to set the path of the metadata socket to be used
by neutron-ns-metadata-proxy when started inside the DHCP or L3
agent. Also moved the configuration parameter of the
neutron-ns-metadata-proxy to the CLI parameters.

fixes bug #1202628

Change-Id: I3b1aa72b4e06c00f7fed152f0ee03d52b6bbc279
This commit is contained in:
Christian Berendt 2013-07-18 13:13:05 +02:00
parent b5d1c993de
commit 495fd24fb0
5 changed files with 18 additions and 7 deletions

View File

@ -69,6 +69,10 @@ class DhcpAgent(manager.Manager):
"enable_isolated_metadata = True")),
cfg.IntOpt('num_sync_threads', default=4,
help=_('Number of threads to use during sync process.')),
cfg.StrOpt('metadata_proxy_socket',
default='$state_path/metadata_proxy',
help=_('Location of Metadata Proxy UNIX domain '
'socket')),
]
def __init__(self, host=None):
@ -326,8 +330,10 @@ class DhcpAgent(manager.Manager):
router_ports[0].device_id)
def callback(pid_file):
metadata_proxy_socket = cfg.CONF.metadata_proxy_socket
proxy_cmd = ['neutron-ns-metadata-proxy',
'--pid_file=%s' % pid_file,
'--metadata_proxy_socket=%s' % metadata_proxy_socket,
neutron_lookup_param,
'--state_path=%s' % self.conf.state_path,
'--metadata_port=%d' % METADATA_PORT]

View File

@ -181,6 +181,10 @@ class L3NATAgent(manager.Manager):
"by the agents.")),
cfg.BoolOpt('enable_metadata_proxy', default=True,
help=_("Allow running metadata proxy.")),
cfg.StrOpt('metadata_proxy_socket',
default='$state_path/metadata_proxy',
help=_('Location of Metadata Proxy UNIX domain '
'socket')),
]
def __init__(self, host, conf=None):
@ -303,8 +307,10 @@ class L3NATAgent(manager.Manager):
def _spawn_metadata_proxy(self, router_info):
def callback(pid_file):
metadata_proxy_socket = cfg.CONF.metadata_proxy_socket
proxy_cmd = ['neutron-ns-metadata-proxy',
'--pid_file=%s' % pid_file,
'--metadata_proxy_socket=%s' % metadata_proxy_socket,
'--router_id=%s' % router_info.router_id,
'--state_path=%s' % self.conf.state_path,
'--metadata_port=%s' % self.conf.metadata_port]

View File

@ -31,13 +31,6 @@ from neutron.common import utils
from neutron.openstack.common import log as logging
from neutron import wsgi
proxy_socket = cfg.StrOpt('metadata_proxy_socket',
default='$state_path/metadata_proxy',
help=_('Location of Metadata Proxy UNIX domain '
'socket'))
cfg.CONF.register_opt(proxy_socket)
LOG = logging.getLogger(__name__)
@ -157,6 +150,10 @@ def main():
default=9697,
help=_("TCP Port to listen for metadata server "
"requests.")),
cfg.StrOpt('metadata_proxy_socket',
default='$state_path/metadata_proxy',
help=_('Location of Metadata Proxy UNIX domain '
'socket'))
]
cfg.CONF.register_cli_opts(opts)

View File

@ -625,6 +625,7 @@ class TestDhcpAgentEventHandler(base.BaseTestCase):
mock.call().netns.execute([
'neutron-ns-metadata-proxy',
mock.ANY,
mock.ANY,
'--router_id=forzanapoli',
mock.ANY,
mock.ANY,

View File

@ -692,6 +692,7 @@ class TestL3AgentEventHandler(base.BaseTestCase):
mock.call().netns.execute([
'neutron-ns-metadata-proxy',
mock.ANY,
mock.ANY,
'--router_id=%s' % router_id,
mock.ANY,
'--metadata_port=%s' % metadata_port,