From 814c6f41391cac5e51b6b6833ba6576f59039e48 Mon Sep 17 00:00:00 2001 From: Ladislav Smola <lsmola@redhat.com> Date: Thu, 27 Feb 2014 07:32:04 -0500 Subject: [PATCH] Fix of Overcloud Update - little fix of Overcloud Update, counts has to be passed as db_models so they have the overcloud_role relation avaiable - tested with UI Change-Id: I2bf8ad86774c542daf5da453a5501aba06a3877d --- tuskar/api/controllers/v1/overcloud.py | 5 ++-- .../api/controllers/v1/test_overcloud.py | 24 +++++++++++++++++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/tuskar/api/controllers/v1/overcloud.py b/tuskar/api/controllers/v1/overcloud.py index f88f392a..714024af 100644 --- a/tuskar/api/controllers/v1/overcloud.py +++ b/tuskar/api/controllers/v1/overcloud.py @@ -277,9 +277,8 @@ class OvercloudsController(rest.RestController): # this probably should also have workflow # step 1- build template and stack-update # step 2- set the correct overcloud status - - process_stack(updated_overcloud.attributes, updated_overcloud.counts, - get_overcloud_roles_dict(), create=True) + process_stack(updated_overcloud.attributes, result.counts, + get_overcloud_roles_dict()) return updated_overcloud diff --git a/tuskar/tests/api/controllers/v1/test_overcloud.py b/tuskar/tests/api/controllers/v1/test_overcloud.py index ef414cd4..ad33c73a 100644 --- a/tuskar/tests/api/controllers/v1/test_overcloud.py +++ b/tuskar/tests/api/controllers/v1/test_overcloud.py @@ -319,9 +319,25 @@ class OvercloudTests(base.TestCase): # Setup changes = {'name': 'updated'} + overcloud_role_1 = db_models.OvercloudRole( + image_name='overcloud-compute', flavor_id='1') + + overcloud_role_2 = db_models.OvercloudRole( + image_name='overcloud-cinder-volume', flavor_id='1') + + overcloud_role_count_1 = db_models.OvercloudRoleCount( + overcloud_role_id=1, num_nodes=5, overcloud_role=overcloud_role_1) + + overcloud_role_count_2 = db_models.OvercloudRoleCount( + overcloud_role_id=2, num_nodes=9, overcloud_role=overcloud_role_2) + + attribute_1 = db_models.OvercloudAttribute( + overcloud_id=1, key='name', value='updated') + fake_updated = db_models.Overcloud(name='after-update', - attributes=[], - counts=[]) + attributes=[attribute_1], + counts=[overcloud_role_count_1, + overcloud_role_count_2]) mock_db_update.return_value = fake_updated mock_process_stack.return_value = None @@ -341,6 +357,10 @@ class OvercloudTests(base.TestCase): self.assertEqual(db_update_model.id, 12345) self.assertEqual(db_update_model.name, changes['name']) + mock_process_stack.assert_called_once_with( + {'name': 'updated'}, [overcloud_role_count_1, + overcloud_role_count_2], {}) + @mock.patch('tuskar.db.sqlalchemy.api.' 'Connection.delete_overcloud_by_id') @mock.patch(