diff --git a/watcher/api/controllers/v1/action_plan.py b/watcher/api/controllers/v1/action_plan.py index 8237be6c9..7e741dc6d 100644 --- a/watcher/api/controllers/v1/action_plan.py +++ b/watcher/api/controllers/v1/action_plan.py @@ -181,7 +181,6 @@ class ActionPlan(base.APIBase): self.fields = [] fields = list(objects.ActionPlan.fields) - fields.append('audit_uuid') for field in fields: # Skip fields we do not expose. if not hasattr(self, field): @@ -189,14 +188,19 @@ class ActionPlan(base.APIBase): self.fields.append(field) setattr(self, field, kwargs.get(field, wtypes.Unset)) - self.fields.append('audit_id') + self.fields.append('audit_uuid') + self.fields.append('first_action_uuid') + setattr(self, 'audit_uuid', kwargs.get('audit_id', wtypes.Unset)) + setattr(self, 'first_action_uuid', + kwargs.get('first_action_id', wtypes.Unset)) @staticmethod def _convert_with_links(action_plan, url, expand=True): if not expand: - action_plan.unset_fields_except(['uuid', 'state', 'updated_at', - 'audit_uuid']) + action_plan.unset_fields_except( + ['uuid', 'state', 'updated_at', + 'audit_uuid', 'first_action_uuid']) action_plan.links = [link.Link.make_link( 'self', url, diff --git a/watcher/tests/api/v1/test_actions_plans.py b/watcher/tests/api/v1/test_actions_plans.py index 28c20af46..16334033f 100644 --- a/watcher/tests/api/v1/test_actions_plans.py +++ b/watcher/tests/api/v1/test_actions_plans.py @@ -35,6 +35,7 @@ class TestActionPlanObject(base.TestCase): act_plan_dict = api_utils.action_plan_post_data() del act_plan_dict['state'] del act_plan_dict['audit_id'] + del act_plan_dict['first_action_id'] act_plan = api_action_plan.ActionPlan(**act_plan_dict) self.assertEqual(wtypes.Unset, act_plan.state) @@ -69,12 +70,20 @@ class TestListActionPlan(api_base.FunctionalTest): response = self.get_json('/action_plans') self.assertEqual([], response['action_plans']) - def test_get_one(self): + def test_get_one_ok(self): action_plan = obj_utils.create_action_plan_without_audit(self.context) response = self.get_json('/action_plans/%s' % action_plan['uuid']) self.assertEqual(action_plan.uuid, response['uuid']) self._assert_action_plans_fields(response) + def test_get_one_with_first_action(self): + action_plan = obj_utils.create_test_action_plan(self.context) + action = obj_utils.create_test_action(self.context, id=1) + response = self.get_json('/action_plans/%s' % action_plan['uuid']) + self.assertEqual(action_plan.uuid, response['uuid']) + self.assertEqual(action.uuid, response['first_action_uuid']) + self._assert_action_plans_fields(response) + def test_get_one_soft_deleted(self): action_plan = obj_utils.create_action_plan_without_audit(self.context) action_plan.soft_delete()