From 7550c0373bdf9d9d47f768bccad2a16e0be8194d Mon Sep 17 00:00:00 2001 From: Oleh Anufriiev Date: Mon, 19 Oct 2015 15:57:09 +0300 Subject: [PATCH] Use local.conf instead of localrc Use actual local.conf file name and format instead of deprecated localrc in devstack related deployment engines. Closes-bug: #1457194 Change-Id: Iba464f33eb9d1598dfa6aabbd167712d573f79da --- devstack/README.rst | 7 +++--- doc/source/install.rst | 6 +++-- rally/deployment/engines/devstack.py | 25 +++++++++++++------ rally/deployment/engines/multihost.py | 2 +- .../devstack-in-lxc.json | 2 +- ...evstack-lxc-engine-in-existing-servers.rst | 12 ++++----- .../multihost.json | 4 +-- .../unit/deployment/engines/test_devstack.py | 10 ++++---- 8 files changed, 40 insertions(+), 28 deletions(-) diff --git a/devstack/README.rst b/devstack/README.rst index cc0a45c089..d7775778f0 100644 --- a/devstack/README.rst +++ b/devstack/README.rst @@ -4,10 +4,11 @@ Installing Rally using devstack This directory contains the files necessary to integrate Rally with devstack. -To configure devstack to run rally:: +To configure devstack to run rally edit ``${DEVSTACK_DIR}/local.conf`` file and add:: - $ cd ${DEVSTACK_DIR} - $ echo "enable_plugin rally https://github.com/openstack/rally master" >> localrc + enable_plugin rally https://github.com/openstack/rally master + +to the ``[[local|localrc]]`` section. Run devstack as normal:: diff --git a/doc/source/install.rst b/doc/source/install.rst index af6d0afd56..0e97dd6490 100644 --- a/doc/source/install.rst +++ b/doc/source/install.rst @@ -107,13 +107,15 @@ It is also possible to install Rally with DevStack. First, clone the correspondi git clone https://git.openstack.org/openstack-dev/devstack git clone https://github.com/openstack/rally -Then, configure DevStack to run Rally: +Then, configure DevStack to run Rally. First, create your ``local.conf`` file: .. code-block:: bash cd devstack cp samples/local.conf local.conf - echo "enable_plugin rally https://github.com/openstack/rally master" >> localrc + +Next, edit local.conf: +add ``enable_plugin rally https://github.com/openstack/rally master`` to ``[[local|localrc]]`` section. Finally, run DevStack as usually: diff --git a/rally/deployment/engines/devstack.py b/rally/deployment/engines/devstack.py index cfa3884952..6d8f134e50 100644 --- a/rally/deployment/engines/devstack.py +++ b/rally/deployment/engines/devstack.py @@ -52,7 +52,7 @@ class DevstackEngine(engine.Engine): { "type": "DevstackEngine", "devstack_repo": "https://example.com/devstack/", - "localrc": { + "local_conf": { "ADMIN_PASSWORD": "secret" }, "provider": { @@ -67,6 +67,7 @@ class DevstackEngine(engine.Engine): "properties": { "type": {"type": "string"}, "provider": {"type": "object"}, + "local_conf": {"type": "object"}, "localrc": {"type": "object"}, "devstack_repo": {"type": "string"}, "devstack_branch": {"type": "string"}, @@ -76,7 +77,7 @@ class DevstackEngine(engine.Engine): def __init__(self, deployment): super(DevstackEngine, self).__init__(deployment) - self.localrc = { + self.local_conf = { "DATABASE_PASSWORD": "rally", "RABBIT_PASSWORD": "rally", "SERVICE_TOKEN": "rally", @@ -85,8 +86,15 @@ class DevstackEngine(engine.Engine): "RECLONE": "yes", "SYSLOG": "yes", } + if "localrc" in self.config: - self.localrc.update(self.config["localrc"]) + LOG.warn("'localrc' parameter is deprecated for deployment config " + "since 0.1.2. Please use 'local_conf' instead.") + if "local_conf" not in self.config: + self.config["local_conf"] = self.config["localrc"] + + if "local_conf" in self.config: + self.local_conf.update(self.config["local_conf"]) @utils.log_deploy_wrapper(LOG.info, _("Prepare server for devstack")) def prepare_server(self, server): @@ -101,9 +109,9 @@ class DevstackEngine(engine.Engine): self.servers = self.get_provider().create_servers() devstack_repo = self.config.get("devstack_repo", DEVSTACK_REPO) devstack_branch = self.config.get("devstack_branch", DEVSTACK_BRANCH) - localrc = "" - for k, v in six.iteritems(self.localrc): - localrc += "%s=%s\n" % (k, v) + local_conf = "[[local|localrc]]\n" + for k, v in six.iteritems(self.local_conf): + local_conf += "%s=%s\n" % (k, v) for server in self.servers: self.deployment.add_resource(provider_name="DevstackEngine", @@ -112,12 +120,13 @@ class DevstackEngine(engine.Engine): cmd = "/bin/sh -e -s %s %s" % (devstack_repo, devstack_branch) server.ssh.run(cmd, stdin=get_script("install.sh")) devstack_server = get_updated_server(server, user=DEVSTACK_USER) - devstack_server.ssh.run("cat > ~/devstack/localrc", stdin=localrc) + devstack_server.ssh.run("cat > ~/devstack/local.conf", + stdin=local_conf) devstack_server.ssh.run("~/devstack/stack.sh") admin_endpoint = objects.Endpoint("http://%s:5000/v2.0/" % self.servers[0].host, "admin", - self.localrc["ADMIN_PASSWORD"], + self.local_conf["ADMIN_PASSWORD"], "admin", consts.EndpointPermission.ADMIN) return {"admin": admin_endpoint} diff --git a/rally/deployment/engines/multihost.py b/rally/deployment/engines/multihost.py index 1a024bea8f..b7d5a2fc56 100644 --- a/rally/deployment/engines/multihost.py +++ b/rally/deployment/engines/multihost.py @@ -53,7 +53,7 @@ class MultihostEngine(engine.Engine): "nodes": [ { "type": "DevstackEngine", - "localrc": { + "local_conf": { "GLANCE_HOSTPORT": "{controller_ip}:9292", ... """ diff --git a/samples/deployments/for_deploying_openstack_with_rally/devstack-in-lxc.json b/samples/deployments/for_deploying_openstack_with_rally/devstack-in-lxc.json index a93301571d..457616afaf 100644 --- a/samples/deployments/for_deploying_openstack_with_rally/devstack-in-lxc.json +++ b/samples/deployments/for_deploying_openstack_with_rally/devstack-in-lxc.json @@ -1,6 +1,6 @@ { "type": "DevstackEngine", - "localrc": { + "local_conf": { "VIRT_DRIVER": "fake" }, "provider": { diff --git a/samples/deployments/for_deploying_openstack_with_rally/devstack-lxc-engine-in-existing-servers.rst b/samples/deployments/for_deploying_openstack_with_rally/devstack-lxc-engine-in-existing-servers.rst index ea2f3a844f..0687685e9b 100644 --- a/samples/deployments/for_deploying_openstack_with_rally/devstack-lxc-engine-in-existing-servers.rst +++ b/samples/deployments/for_deploying_openstack_with_rally/devstack-lxc-engine-in-existing-servers.rst @@ -14,14 +14,14 @@ Controller :: "type": "DevstackEngine", - "localrc": { + "local_conf": { "MULTI_HOST": "1", "VIRT_DRIVER": "fake", "ENABLED_SERVICES+": ",-n-cpu", }, Look carefully at ENABLED_SERVICES. Such syntax is translated to 'ENABLED_SERVICES+=,-n-cpu' -in localrc. This means 'remove n-cpu from ENABLED_SERVICES'. +in local.conf. This means 'remove n-cpu from ENABLED_SERVICES'. Please note: VIRT_DRIVER=fake on controller node is mandatory. @@ -59,7 +59,7 @@ compute instance via the devstack engine, then makes N clones using lxc-clone. }, "engine": { "name": "DevstackEngine", - "localrc": { + "local_conf": { "VIRT_DRIVER": "fake", "DATABASE_TYPE": "mysql", "MYSQL_HOST": "{controller_ip}", @@ -98,7 +98,7 @@ Here is an example of a complete configuration file, assembled from the snippets "type": "MultihostEngine", "controller": { "type": "DevstackEngine", - "localrc": { + "local_conf": { "MULTI_HOST": "1", "VIRT_DRIVER": "fake", "API_RATE_LIMIT": "False", @@ -128,7 +128,7 @@ Here is an example of a complete configuration file, assembled from the snippets }, "engine": { "name": "DevstackEngine", - "localrc": { + "local_conf": { "VIRT_DRIVER": "fake", "DATABASE_TYPE": "mysql", "MYSQL_HOST": "{controller_ip}", @@ -217,7 +217,7 @@ to controller node. So, we add the option "tunnel_to": ["192.168.1.13"]:: }, "engine": { "name": "DevstackEngine", - "localrc": { + "local_conf": { "VIRT_DRIVER": "fake", "DATABASE_TYPE": "mysql", "MYSQL_HOST": "{controller_ip}", diff --git a/samples/deployments/for_deploying_openstack_with_rally/multihost.json b/samples/deployments/for_deploying_openstack_with_rally/multihost.json index 3eb2e66b37..c562fed4ff 100644 --- a/samples/deployments/for_deploying_openstack_with_rally/multihost.json +++ b/samples/deployments/for_deploying_openstack_with_rally/multihost.json @@ -2,7 +2,7 @@ "type": "MultihostEngine", "controller": { "type": "DevstackEngine", - "localrc": { + "local_conf": { "ENABLED_SERVICES+": ",-n-cpu,-n-net", "MULTI_HOST": "1", "SCREEN_LOGDIR": "$DEST/logs/screen" @@ -14,7 +14,7 @@ "nodes": [ { "type": "DevstackEngine", - "localrc": {"ENABLED_SERVICES": "n-cpu,n-net"}, + "local_conf": {"ENABLED_SERVICES": "n-cpu,n-net"}, "provider": { "type": "DummyProvider", "credentials": [{"host": "host-2.net", diff --git a/tests/unit/deployment/engines/test_devstack.py b/tests/unit/deployment/engines/test_devstack.py index bdde368b28..5b76d12950 100644 --- a/tests/unit/deployment/engines/test_devstack.py +++ b/tests/unit/deployment/engines/test_devstack.py @@ -26,7 +26,7 @@ SAMPLE_CONFIG = { "name": "ExistingServers", "credentials": [{"user": "root", "host": "example.com"}], }, - "localrc": { + "local_conf": { "ADMIN_PASSWORD": "secret", }, } @@ -52,7 +52,7 @@ class DevstackEngineTestCase(test.TestCase): engine.validate) def test_construct(self): - self.assertEqual(self.engine.localrc["ADMIN_PASSWORD"], "secret") + self.assertEqual(self.engine.local_conf["ADMIN_PASSWORD"], "secret") @mock.patch("rally.deployment.engines.devstack.open", create=True) def test_prepare_server(self, mock_open): @@ -99,9 +99,9 @@ class DevstackEngineTestCase(test.TestCase): cmd = "/bin/sh -e -s %s master" % repo server.ssh.run.assert_called_once_with(cmd, stdin="fake_script") ds_calls = [ - mock.call.ssh.run("cat > ~/devstack/localrc", stdin=mock.ANY), + mock.call.ssh.run("cat > ~/devstack/local.conf", stdin=mock.ANY), mock.call.ssh.run("~/devstack/stack.sh") ] self.assertEqual(ds_calls, ds_server.mock_calls) - localrc = ds_server.mock_calls[0][2]["stdin"] - self.assertIn("ADMIN_PASSWORD=secret", localrc) + local_conf = ds_server.mock_calls[0][2]["stdin"] + self.assertIn("ADMIN_PASSWORD=secret", local_conf)