From 5de12d9ea836c58494601db62919168a29ef9f43 Mon Sep 17 00:00:00 2001 From: Hua Wang Date: Tue, 8 Mar 2016 11:19:30 +0800 Subject: [PATCH] Bay status returns None initially after create When creating a bay using heat resources, OS::Magnum::Bay, the first bay status returns None, then the following bay status returns the correct CREATE_IN_PROGRESS. Change-Id: I6e3802b1321de5d300e167c5b0f1a9ebf291fe13 Closes-Bug: #1507598 --- magnum/conductor/handlers/bay_conductor.py | 1 + magnum/tests/functional/api/v1/test_bay.py | 3 ++- magnum/tests/unit/conductor/handlers/test_bay_conductor.py | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/magnum/conductor/handlers/bay_conductor.py b/magnum/conductor/handlers/bay_conductor.py index d8e639162f..3cee774b35 100644 --- a/magnum/conductor/handlers/bay_conductor.py +++ b/magnum/conductor/handlers/bay_conductor.py @@ -153,6 +153,7 @@ class Handler(object): raise bay.stack_id = created_stack['stack']['id'] + bay.status = bay_status.CREATE_IN_PROGRESS bay.create() self._poll_and_check(osc, bay) diff --git a/magnum/tests/functional/api/v1/test_bay.py b/magnum/tests/functional/api/v1/test_bay.py index a08a11a9a1..5c658684f6 100644 --- a/magnum/tests/functional/api/v1/test_bay.py +++ b/magnum/tests/functional/api/v1/test_bay.py @@ -17,6 +17,7 @@ from tempest_lib.common.utils import data_utils from tempest_lib import exceptions import testtools +from magnum.objects.fields import BayStatus from magnum.tests.functional.common import base from magnum.tests.functional.common import datagen @@ -94,7 +95,7 @@ class BayTest(base.BaseMagnumTest): self.assertEqual(resp.status, 201) self.assertIsNotNone(model.uuid) self.bays.append(model.uuid) - self.assertIsNone(model.status) + self.assertEqual(BayStatus.CREATE_IN_PROGRESS, model.status) self.assertIsNone(model.status_reason) self.assertEqual(model.baymodel_id, self.baymodel.uuid) self.bay_uuid = model.uuid diff --git a/magnum/tests/unit/conductor/handlers/test_bay_conductor.py b/magnum/tests/unit/conductor/handlers/test_bay_conductor.py index c8454e82ae..bc350b94af 100644 --- a/magnum/tests/unit/conductor/handlers/test_bay_conductor.py +++ b/magnum/tests/unit/conductor/handlers/test_bay_conductor.py @@ -194,14 +194,15 @@ class TestHandler(db_base.DbTestCase): # will get notice that baymodel_id is updated and will update it # in db. self.bay.baymodel_id = self.baymodel.uuid - self.handler.bay_create(self.context, - self.bay, timeout) + bay = self.handler.bay_create(self.context, + self.bay, timeout) mock_create_stack.assert_called_once_with(self.context, mock.sentinel.osc, self.bay, timeout) mock_cert_manager.generate_certificates_to_bay.assert_called_once_with( self.bay) + self.assertEqual(bay_status.CREATE_IN_PROGRESS, bay.status) @patch('magnum.conductor.handlers.bay_conductor.cert_manager') @patch('magnum.conductor.handlers.bay_conductor._create_stack')