]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
tests: convert extra-vars to use json 1368/head
authorAndrew Schoen <aschoen@redhat.com>
Thu, 16 Mar 2017 11:16:09 +0000 (06:16 -0500)
committerAndrew Schoen <aschoen@redhat.com>
Thu, 16 Mar 2017 19:23:41 +0000 (14:23 -0500)
This will prevent ansible from misreading any of these values. There
were failures with xenial deployments because the value set for
``ceph_rhcs`` was being treated as a boolean True even though I'd set
the value to false. This is because boolean values passed in with
--extra-vars must use the json format.

The formatting of the json is very important as you need a '\' to escape
the starting and ending json to make tox happy. Also, each line needs to
end with '\' if it's a multi-line command.

Another thing to note is that if you want to use extra vars at the
command line to respond to a vars_prompt it must be in key/value format.
This is why we have a -e and a --extra-vars on the purge and update
tests.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
tox.ini

diff --git a/tox.ini b/tox.ini
index 6fd660e42612868172460ce5c9c92c81c7380847..4d9186a505a6b40456370ddfc2336ca79bcfdbb3 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -9,28 +9,29 @@ skipsdist = True
 [purge]
 commands=
   cp {toxinidir}/infrastructure-playbooks/purge-cluster.yml {toxinidir}/purge-cluster.yml
-  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/purge-cluster.yml --extra-vars="\
-      ireallymeanit=yes \
-      fetch_directory={changedir}/fetch \
-      ceph_rhcs={env:CEPH_RHCS:false} \
-      ceph_origin={env:CEPH_ORIGIN:upstream} \
-      ceph_dev={env:CEPH_DEV:false} \
-      ceph_dev_branch={env:CEPH_DEV_BRANCH:master} \
-      ceph_dev_sha1={env:CEPH_DEV_SHA1:latest} \
-      ceph_stable_release={env:CEPH_STABLE_RELEASE:jewel} \
-      ceph_stable={env:CEPH_STABLE:true} \
-  "
+  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/purge-cluster.yml -e ireallymeanit=yes --extra-vars '\
+    \{\
+     "fetch_directory":"{changedir}/fetch",\
+     "ceph_rhcs":{env:CEPH_RHCS:false},\
+     "ceph_origin":"{env:CEPH_ORIGIN:upstream}",\
+     "ceph_dev":{env:CEPH_DEV:false},\
+     "ceph_dev_branch":"{env:CEPH_DEV_BRANCH:master}",\
+     "ceph_dev_sha1":"{env:CEPH_DEV_SHA1:latest}",\
+     "ceph_stable_release":"{env:CEPH_STABLE_RELEASE:jewel}",\
+     "ceph_stable":{env:CEPH_STABLE:true}\
+    \}'
   # set up the cluster again
-  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/site.yml.sample --extra-vars="\
-      fetch_directory={changedir}/fetch \
-      ceph_rhcs={env:CEPH_RHCS:false} \
-      ceph_origin={env:CEPH_ORIGIN:upstream} \
-      ceph_dev={env:CEPH_DEV:false} \
-      ceph_dev_branch={env:CEPH_DEV_BRANCH:master} \
-      ceph_dev_sha1={env:CEPH_DEV_SHA1:latest} \
-      ceph_stable_release={env:CEPH_STABLE_RELEASE:jewel} \
-      ceph_stable={env:CEPH_STABLE:true} \
-  "
+  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/site.yml.sample --extra-vars '\
+    \{\
+     "fetch_directory":"{changedir}/fetch",\
+     "ceph_rhcs":{env:CEPH_RHCS:false},\
+     "ceph_origin":"{env:CEPH_ORIGIN:upstream}",\
+     "ceph_dev":{env:CEPH_DEV:false},\
+     "ceph_dev_branch":"{env:CEPH_DEV_BRANCH:master}",\
+     "ceph_dev_sha1":"{env:CEPH_DEV_SHA1:latest}",\
+     "ceph_stable_release":"{env:CEPH_STABLE_RELEASE:jewel}",\
+     "ceph_stable":{env:CEPH_STABLE:true}\
+    \}'
   # test that the cluster can be redeployed in a healthy state
   testinfra -n 4 --sudo -v --connection=ansible --ansible-inventory={changedir}/hosts {toxinidir}/tests/functional/tests
 
@@ -40,17 +41,17 @@ commands=
 [update]
 commands=
   cp {toxinidir}/infrastructure-playbooks/rolling_update.yml {toxinidir}/rolling_update.yml
-  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/rolling_update.yml --extra-vars="\
-      ceph_stable_release={env:UPDATE_CEPH_STABLE_RELEASE:kraken} \
-      ireallymeanit=yes \
-      fetch_directory={changedir}/fetch \
-      ceph_rhcs={env:CEPH_RHCS:false} \
-      ceph_origin={env:CEPH_ORIGIN:upstream} \
-      ceph_dev={env:CEPH_DEV:false} \
-      ceph_dev_branch={env:UPDATE_CEPH_DEV_BRANCH:master} \
-      ceph_dev_sha1={env:UPDATE_CEPH_DEV_SHA1:latest} \
-      ceph_stable={env:CEPH_STABLE:true} \
-  "
+  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/rolling_update.yml -e ireallymeanit=yes --extra-vars '\
+    \{\
+      "fetch_directory":"{changedir}/fetch",\
+      "ceph_rhcs":{env:CEPH_RHCS:false},\
+      "ceph_origin":"{env:CEPH_ORIGIN:upstream}",\
+      "ceph_dev":{env:CEPH_DEV:false},\
+      "ceph_dev_branch":"{env:UPDATE_CEPH_DEV_BRANCH:master}",\
+      "ceph_dev_sha1":"{env:UPDATE_CEPH_DEV_SHA1:latest}",\
+      "ceph_stable_release":"{env:UPDATE_CEPH_STABLE_RELEASE:kraken}",\
+      "ceph_stable":{env:CEPH_STABLE:true}\
+    \}'
 
   testinfra -n 4 --sudo -v --connection=ansible --ansible-inventory={changedir}/hosts {toxinidir}/tests/functional/tests
 
@@ -97,16 +98,18 @@ commands=
   vagrant up --no-provision {posargs:--provider=virtualbox}
   bash {toxinidir}/tests/scripts/generate_ssh_config.sh {changedir}
 
-  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/{env:PLAYBOOK:site.yml.sample} --extra-vars="\
-      fetch_directory={changedir}/fetch \
-      ceph_rhcs={env:CEPH_RHCS:false} \
-      ceph_origin={env:CEPH_ORIGIN:upstream} \
-      ceph_dev={env:CEPH_DEV:false} \
-      ceph_dev_branch={env:CEPH_DEV_BRANCH:master} \
-      ceph_dev_sha1={env:CEPH_DEV_SHA1:latest} \
-      ceph_stable_release={env:CEPH_STABLE_RELEASE:jewel} \
-      ceph_stable={env:CEPH_STABLE:true} \
-  "
+  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/{env:PLAYBOOK:site.yml.sample} --extra-vars '\
+    \{\
+     "fetch_directory":"{changedir}/fetch",\
+     "ceph_rhcs":{env:CEPH_RHCS:false},\
+     "ceph_origin":"{env:CEPH_ORIGIN:upstream}",\
+     "ceph_dev":{env:CEPH_DEV:false},\
+     "ceph_dev_branch":"{env:CEPH_DEV_BRANCH:master}",\
+     "ceph_dev_sha1":"{env:CEPH_DEV_SHA1:latest}",\
+     "ceph_stable_release":"{env:CEPH_STABLE_RELEASE:jewel}",\
+     "ceph_stable":{env:CEPH_STABLE:true}\
+    \}'
+
   ansible-playbook -vv -i {changedir}/hosts {toxinidir}/tests/functional/setup.yml
 
   testinfra -n 4 --sudo -v --connection=ansible --ansible-inventory={changedir}/hosts {toxinidir}/tests/functional/tests