From ec9f708d71b9e69dfee5bbad30368bbc78ff25d7 Mon Sep 17 00:00:00 2001
From: Lukas Bezdicka <lbezdick@redhat.com>
Date: Sun, 20 Aug 2017 23:30:44 +0200
Subject: [PATCH] Add setup-heat-outputs option to get heat stack outputs

For minor update workflow we need heat stack outputs but we
don't want to touch actual deployment, for that we noop most of
the tasks.

Change-Id: I2c12255fce11a8f6976fe5afc76357446c1e32aa
---

diff --git a/releasenotes/notes/setup-heat-outputs-c7158bdd81a2f618.yaml b/releasenotes/notes/setup-heat-outputs-c7158bdd81a2f618.yaml
new file mode 100644
index 0000000..82599c5
--- /dev/null
+++ b/releasenotes/notes/setup-heat-outputs-c7158bdd81a2f618.yaml
@@ -0,0 +1,10 @@
+---
+features:
+  - |
+    Adds openstack overcloud deploy --setup-heat-outputs option to run noop
+    deployment in order to get heat outputs for minor update and upgrade
+    tasks.
+deprecations:
+  - |
+    The openstack overcloud deploy --update-plan-only is deprecated as it
+    does not provide update_tasks for minor update process.
diff --git a/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py b/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py
index d19688d..5454da8 100644
--- a/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py
+++ b/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py
@@ -651,7 +651,8 @@
         with open(test_env, 'w') as temp_file:
             temp_file.write('resource_registry:\n  Test: OS::Heat::None')
 
-        arglist = ['--templates', '--environment-directory', self.tmp_dir.path]
+        arglist = ['--templates', '--environment-directory', self.tmp_dir.path,
+                   '--setup-heat-outputs']
         verifylist = [
             ('templates', '/usr/share/openstack-tripleo-heat-templates/'),
             ('environment_directories', env_dirs),
@@ -667,6 +668,27 @@
             assertEqual(
                 {'parameter_defaults': {},
                  'resource_registry': {
+                     'OS::TripleO::DeploymentSteps': 'OS::Heat::None',
+                     'OS::TripleO::Tasks::BlockStoragePostConfig':
+                         'OS::Heat::None',
+                     'OS::TripleO::Tasks::BlockStoragePreConfig':
+                         'OS::Heat::None',
+                     'OS::TripleO::Tasks::CephStoragePostConfig':
+                         'OS::Heat::None',
+                     'OS::TripleO::Tasks::CephStoragePreConfig':
+                         'OS::Heat::None',
+                     'OS::TripleO::Tasks::ComputePostConfig':
+                         'OS::Heat::None',
+                     'OS::TripleO::Tasks::ComputePreConfig':
+                         'OS::Heat::None',
+                     'OS::TripleO::Tasks::ControllerPostConfig':
+                         'OS::Heat::None',
+                     'OS::TripleO::Tasks::ControllerPreConfig':
+                         'OS::Heat::None',
+                     'OS::TripleO::Tasks::ObjectStoragePostConfig':
+                         'OS::Heat::None',
+                     'OS::TripleO::Tasks::ObjectStoragePreConfig':
+                         'OS::Heat::None',
                      'Test': 'OS::Heat::None',
                      'resources': {'*': {'*': {
                          'UpdateDeployment': {'hooks': []}}}}}}, env)
diff --git a/tripleoclient/v1/overcloud_deploy.py b/tripleoclient/v1/overcloud_deploy.py
index 80c5500..75d68a9 100644
--- a/tripleoclient/v1/overcloud_deploy.py
+++ b/tripleoclient/v1/overcloud_deploy.py
@@ -491,6 +491,28 @@
                     'environments when using multiple controllers '
                     '(with HA).')
 
+        # Run noop deployment to get heat outputs to get update_tasks
+        if parsed_args.setup_heat_outputs:
+            noop_env = {
+                'resource_registry': {
+                    'OS::TripleO::DeploymentSteps': 'OS::Heat::None',
+                },
+            }
+            if parsed_args.roles_file:
+                roles_data = yaml.safe_load(
+                    open(parsed_args.roles_file).read())
+                role_names = [role['name'] for role in roles_data]
+            else:
+                role_names = ['Controller', 'Compute', 'BlockStorage',
+                              'ObjectStorage', 'CephStorage']
+            for r in role_names:
+                role_env = {
+                    "OS::TripleO::Tasks::%sPreConfig" % r: 'OS::Heat::None',
+                    "OS::TripleO::Tasks::%sPostConfig" % r: 'OS::Heat::None',
+                }
+                noop_env['resource_registry'].update(role_env)
+            template_utils.deep_update(env, noop_env)
+
         self._try_overcloud_deploy_with_compat_yaml(
             tht_root, stack, parsed_args.stack, parameters, env_files,
             parsed_args.timeout, env, parsed_args.update_plan_only,
@@ -772,11 +794,18 @@
             help=_('Don\'t cleanup temporary files, just log their location')
         )
         parser.add_argument(
+            '--setup-heat-outputs',
+            action='store_true',
+            help=_('Update the plan and prepare heat outputs without modifying'
+                   ' overcloud for the maintenance tasks (minor-update, '
+                   'upgrade..)')
+        )
+        parser.add_argument(
             '--update-plan-only',
             action='store_true',
             help=_('Only update the plan. Do not perform the actual '
                    'deployment. NOTE: Will move to a discrete command  in a '
-                   'future release.')
+                   'future release. (DEPRECATED)')
         )
         parser.add_argument(
             '--validation-errors-nonfatal',
