diff --git a/heat/engine/resources/openstack/mistral/cron_trigger.py b/heat/engine/resources/openstack/mistral/cron_trigger.py index 5f5a702b8..a9ed877a2 100644 --- a/heat/engine/resources/openstack/mistral/cron_trigger.py +++ b/heat/engine/resources/openstack/mistral/cron_trigger.py @@ -72,7 +72,7 @@ class CronTrigger(resource.Resource): schema={ WORKFLOW_NAME: properties.Schema( properties.Schema.STRING, - _('Name of the workflow.'), + _('Name or ID of the workflow.'), required=True, constraints=[ constraints.CustomConstraint('mistral.workflow') @@ -121,16 +121,18 @@ class CronTrigger(resource.Resource): def handle_create(self): workflow = self.properties.get(self.WORKFLOW) + name = self._cron_trigger_name() + identifier = workflow[self.WORKFLOW_NAME] + args = { - 'name': self._cron_trigger_name(), 'pattern': self.properties.get(self.PATTERN), - 'workflow_name': workflow.get(self.WORKFLOW_NAME), 'workflow_input': workflow.get(self.WORKFLOW_INPUT), 'first_time': self.properties.get(self.FIRST_TIME), 'count': self.properties.get(self.COUNT) } - cron_trigger = self.client().cron_triggers.create(**args) + cron_trigger = self.client().cron_triggers.create(name, identifier, + **args) self.resource_id_set(cron_trigger.name) def _resolve_attribute(self, name): diff --git a/heat/tests/openstack/mistral/test_cron_trigger.py b/heat/tests/openstack/mistral/test_cron_trigger.py index 6519e47fd..5d78ff74c 100644 --- a/heat/tests/openstack/mistral/test_cron_trigger.py +++ b/heat/tests/openstack/mistral/test_cron_trigger.py @@ -76,12 +76,12 @@ class MistralCronTriggerTest(common.HeatTestCase): ct = self._create_resource('trigger', self.rsrc_defn, self.stack) expected_state = (ct.CREATE, ct.COMPLETE) self.assertEqual(expected_state, ct.state) - args = self.client.cron_triggers.create.call_args[1] - self.assertEqual('* * 0 * *', args['pattern']) - self.assertEqual('get_first_glance_image', args['workflow_name']) - self.assertEqual({}, args['workflow_input']) - self.assertEqual('2015-04-08 06:20', args['first_time']) - self.assertEqual(3, args['count']) + args, kwargs = self.client.cron_triggers.create.call_args + self.assertEqual('* * 0 * *', kwargs['pattern']) + self.assertEqual('get_first_glance_image', args[1]) + self.assertEqual({}, kwargs['workflow_input']) + self.assertEqual('2015-04-08 06:20', kwargs['first_time']) + self.assertEqual(3, kwargs['count']) self.assertEqual('my_cron_trigger', ct.resource_id) def test_attributes(self):