From 53f79082ca89937cf5997e62f472f436cf886884 Mon Sep 17 00:00:00 2001 From: Marius Cornea Date: Thu, 31 Aug 2017 11:39:16 +0200 Subject: [PATCH] Convert step to integer in when statement for upgrade tasks Currently the when conditionals in the upgrade tasks aren't evaluated correctly and as a result the upgrade tasks are skipped. This change converts the step variable in the when statement to an integer to get it evaluated properly. Related-Bug: 1708115 Change-Id: I4ee1a2729d74442570f1b1f38b0d03a95ea7793f --- .../tests/v1/overcloud_config/test_overcloud_config.py | 6 +++--- tripleoclient/v1/overcloud_config.py | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/tripleoclient/tests/v1/overcloud_config/test_overcloud_config.py b/tripleoclient/tests/v1/overcloud_config/test_overcloud_config.py index 96603d5ca..a5caae632 100644 --- a/tripleoclient/tests/v1/overcloud_config/test_overcloud_config.py +++ b/tripleoclient/tests/v1/overcloud_config/test_overcloud_config.py @@ -145,18 +145,18 @@ class TestOvercloudConfig(utils.TestCommand): 'service': 'name=fake ' 'state=stopped', 'tags': 'step1', - 'when': 'step == 1'}], + 'when': 'step|int == 1'}], 'FakeCompute': [{'name': 'Stop fake service', 'service': 'name=fake state=stopped', 'tags': 'step1', - 'when': 'step == 1'}, + 'when': 'step|int == 1'}, {'name': 'Stop nova-' 'compute service', 'service': 'name=openstack-nova-' 'compute state=stopped', 'tags': 'step1', - 'when': 'step == 1'}] + 'when': 'step|int == 1'}] } mock_get_role_data.return_value = fake_role diff --git a/tripleoclient/v1/overcloud_config.py b/tripleoclient/v1/overcloud_config.py index a498131b6..1665ed694 100644 --- a/tripleoclient/v1/overcloud_config.py +++ b/tripleoclient/v1/overcloud_config.py @@ -65,9 +65,10 @@ class DownloadConfig(command.Command): when_exists = re.search('step == [0-9]', whenline) if when_exists: # skip if there is an existing 'step == N' continue - task['when'] = "(%s) and (step == %s)" % (whenline, step) + task['when'] = "(%s) and (step|int == %s)" % (whenline, + step) else: - task.update({"when": "step == %s" % step}) + task.update({"when": "step|int == %s" % step}) def _write_playbook_get_tasks(self, tasks, role, filepath): playbook = []