diff --git a/tuskar_ui/api/tuskar.py b/tuskar_ui/api/tuskar.py index 0c71fe980..560f51d0e 100644 --- a/tuskar_ui/api/tuskar.py +++ b/tuskar_ui/api/tuskar.py @@ -131,6 +131,9 @@ class OvercloudPlan(base.APIDictWrapper): plan_list = cls.list(request) for plan in plan_list: return plan + # if plan doesn't exist, create it + plan = cls.create(request, 'overcloud', 'overcloud') + return plan @classmethod def delete(cls, request, plan_id): diff --git a/tuskar_ui/test/api_tests/tuskar_tests.py b/tuskar_ui/test/api_tests/tuskar_tests.py index 5e94f6501..472e13420 100644 --- a/tuskar_ui/test/api_tests/tuskar_tests.py +++ b/tuskar_ui/test/api_tests/tuskar_tests.py @@ -47,6 +47,17 @@ class TuskarAPITests(test.APITestCase): self.assertIsInstance(ret_val, api.tuskar.OvercloudPlan) + def test_plan_get_the_plan(self): + plan = self.tuskarclient_plans.first() + + with patch('tuskar_ui.test.test_driver.tuskar_driver.Plan.list', + return_value=[]): + with patch('tuskar_ui.test.test_driver.tuskar_driver.Plan.create', + return_value=plan): + ret_val = api.tuskar.OvercloudPlan.get_the_plan(self.request) + + self.assertIsInstance(ret_val, api.tuskar.OvercloudPlan) + def test_plan_delete(self): plan = self.tuskarclient_plans.first() api.tuskar.OvercloudPlan.delete(self.request, plan['id'])