Adding ability to run smoke test in multinode
The patch adds ability to run smoke tests in multinode for
that below actions have been:
* copy tempest config from config node to test_target
* send keystonerc file to mine from control node
* put keystonerc from mine to test_target
Change-Id: Ifb8555e0526daa5e32c46fbac518ef45ca4ad1ef
Related-PROD: PROD-18350
diff --git a/README.rst b/README.rst
index 4d24d42..5df03f5 100644
--- a/README.rst
+++ b/README.rst
@@ -12,6 +12,8 @@
.. code-block:: yaml
runtest:
+ keystonerc_node: ctl01*
+ test_target: gtw01*
artifact_collector:
enabled: true
artifactory:
diff --git a/runtest/map.jinja b/runtest/map.jinja
index 7360cbc..10e0419 100644
--- a/runtest/map.jinja
+++ b/runtest/map.jinja
@@ -1,6 +1,7 @@
{% set runtest = salt['grains.filter_by']({
'default': {
- 'pkgs':['python-jsonpath-rw']
+ 'pkgs':['python-jsonpath-rw'],
+ 'keystonerc': '/root/keystonercv3',
}
}, grain='os', merge=salt['pillar.get']('runtest'), base='default') %}
diff --git a/runtest/put_keystone_file.sls b/runtest/put_keystone_file.sls
new file mode 100644
index 0000000..bffbad9
--- /dev/null
+++ b/runtest/put_keystone_file.sls
@@ -0,0 +1,9 @@
+{%- from "runtest/map.jinja" import runtest with context %}
+
+{%- set keystone_client_file = salt['mine.get']('*', 'keystonerc_file', 'compound') %}
+
+put_keystone_file:
+ file.managed:
+ - name: {{ runtest.keystonerc }}
+ - contents: '{{ keystone_client_file.values()[0] }}'
+
diff --git a/runtest/tempest.sls b/runtest/tempest.sls
index 06024ac..cca70d4 100644
--- a/runtest/tempest.sls
+++ b/runtest/tempest.sls
@@ -1,16 +1,54 @@
-{%- from "runtest/map.jinja" import tempest with context %}
-{%- if tempest.get('enabled', False) -%}
+{%- from "runtest/map.jinja" import runtest with context %}
+{%- if runtest.tempest.get('enabled', False) -%}
tempest_config_dir:
file.directory:
- - name: {{ tempest.cfg_dir }}
+ - name: {{ runtest.tempest.cfg_dir }}
- makedirs: true
- mode: 755
tempest_config_file:
runtest.tempestconf_present:
- - name: {{ tempest.cfg_dir }}/{{ tempest.cfg_name }}
+ - name: {{ runtest.tempest.cfg_dir }}/{{ runtest.tempest.cfg_name }}
- require:
- file: tempest_config_dir
+{%- if runtest.test_target is defined %}
+create_on_target:
+ salt.function:
+ - tgt: {{ runtest.test_target }}
+ - tgt_type: compound
+ - name: file.mkdir
+ - arg:
+ - {{ runtest.tempest.cfg_dir }}
+
+copy_to_target:
+ cmd.run:
+ - name: salt-cp {{ runtest.test_target }} {{ runtest.tempest.cfg_dir }}/{{ runtest.tempest.cfg_name }} {{ runtest.tempest.cfg_dir }}/{{ runtest.tempest.cfg_name }}
+ - require:
+ - salt: create_on_target
{%- endif -%}
+
+{%- if runtest.keystonerc_node is defined %}
+mine_send_keystonerc_file:
+ salt.function:
+ - tgt: {{ runtest.keystonerc_node }}
+ - tgt_type: compound
+ - name: mine.send
+ - arg:
+ - 'keystonerc_file'
+ - 'mine_function=cmd.shell'
+ - 'cat {{ runtest.keystonerc }}'
+
+put_keystone_rc_file:
+ salt.state:
+ - tgt: {{ runtest.test_target }}
+ - tgt_type: compound
+ - sls: runtest.put_keystone_file
+ - require:
+ - salt: mine_send_keystonerc_file
+
+{%- endif -%}
+
+{%- endif -%}
+