Model generator from cookiecutter-templates
Change-Id: I1ae23b812125b975849f0ba8fadeca2844547970
diff --git a/tcp_tests/tests/environment/test_generate_model.py b/tcp_tests/tests/environment/test_generate_model.py
new file mode 100644
index 0000000..a936bb5
--- /dev/null
+++ b/tcp_tests/tests/environment/test_generate_model.py
@@ -0,0 +1,79 @@
+# Copyright 2017 Mirantis, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import pytest
+import os
+
+from tcp_tests import logger
+from tcp_tests import settings
+from tcp_tests.helpers import ext
+
+LOG = logger.logger
+
+
+class TestGenerateModel(object):
+ """Test class that generates and checks a cluster model"""
+
+ @pytest.mark.fail_snapshot
+ def test_generate_model(self, config, underlay, salt_actions):
+ config.salt.salt_master_host = \
+ underlay.host_by_node_role(
+ node_role=ext.UNDERLAY_NODE_ROLES.salt_master)
+
+ commands = underlay.read_template(config.salt_deploy.salt_steps_path)
+ salt_actions.install(commands)
+
+ node_name = underlay.get_target_node_names('cfg01.')[0]
+ arch_model_name = 'model_{0}.tar.gz'.format(settings.ENV_NAME)
+ commands = [
+ {
+ 'description': "Copy generated model to /root/reclass",
+ 'node_name': node_name,
+ 'cmd': ('cp -r /srv/salt/reclass/ /root/;'
+ 'rm -rf /root/reclass/classes/service/;'
+ 'rm -rf /root/reclass/classes/system/;')},
+ {
+ 'description': ("Archive the model to the /root/{0}"
+ .format(arch_model_name)),
+ 'node_name': node_name,
+ 'cmd': ('cd /root/reclass/;'
+ 'tar --warning=no-file-changed -czf /root/{0} ./'
+ .format(arch_model_name))},
+ {
+ 'description': "Download the model to the host",
+ 'node_name': node_name,
+ 'download': {
+ 'remote_path': '/root/',
+ 'remote_filename': arch_model_name,
+ 'local_path': os.getcwd()
+ }},
+ ]
+
+ salt_actions.execute_commands(commands=commands,
+ label="Get the model from the cfg01")
+
+
+# tar_cmd = (
+# 'cp -r /srv/salt/reclass/ /root/;'
+# 'rm -rf /root/reclass/classes/service/;'
+# 'rm -rf /root/reclass/classes/system/;'
+# 'cd /root/reclass/;'
+# 'tar --warning=no-file-changed -czf /root/model_{0}.tar.gz ./'
+# .format(settings.ENV_NAME))
+# with underlay.remote(host=config.salt.salt_master_host) as r:
+# r.check_call(tar_cmd, verbose=True)
+# r.download('model_{0}.tar.gz'.format(settings.ENV_NAME),
+# os.getcwd())
+
+ LOG.info("*************** DONE **************")