Case 1: Creating resources using Heat template and check that they are available in Mistral service.
1. Create workflow template file (nova_actions.yaml). This workflow allows to create nova server
---
version: '2.0'
create_vm:
type: direct
input:
- vm_name
- image_ref
- flavor_ref
output:
vm_id: $.vm_id
tasks:
create_server:
action: nova.servers_create name={$.vm_name} image={$.image_ref} flavor={$.flavor_ref}
publish:
vm_id: $.id
on-success:
- check_server_exists
check_server_exists:
action: nova.servers_get server={$.vm_id}
publish:
server_exists: True
on-success:
- wait_instance
wait_instance:
action: nova.servers_find id={$.vm_id} status='ACTIVE'
policies:
retry:
delay: 5
count: 15
2. Create template (template.yaml) with OS::Mistral::Workflow and OS::Mistral::CronTrigger resources
heat_template_version: 2013-05-23
parameters:
cron_pattern:
type: string
default: '54 15 25 * *'
resources:
workflow:
type: OS::Mistral::Workflow
properties:
definition: { get_file: nova_actions.yaml }
input: {"vm_name": "test_vm", "image_ref": "64200b6e-9c5e-46d7-a373-676e1335eb24", "flavor_ref": "84"}
trigger:
type: OS::Mistral::CronTrigger
properties:
pattern: { get_param: cron_pattern }
workflow: { get_attr: [workflow, available_workflows, create_vm] }
outputs:
execution_time:
value: { get_attr: [trigger, next_execution_time] }
3. Create stack
heat stack-create test1 -f template.yaml
4. Check that resources were created in Mistral
mistral workflow-list
+--------------------------+--------+------------------------------+---------------------+------------+
| Name | Tags | Input | Created at | Updated at |
+--------------------------+--------+------------------------------+---------------------+------------+
| std.create_instance | <none> | name, image_id, flavor_id... | 2015-01-26 00:00:49 | None |
| std.delete_instance | <none> | instance_id | 2015-01-26 00:00:49 | None |
| test1.workflow.create_vm | <none> | vm_name, image_ref, flavo... | 2015-01-26 22:04:12 | None |
+--------------------------+--------+------------------------------+---------------------+------------+
mistral cron-trigger-list
+--------------------+--------------+--------------------------+---------------------+---------------------+------------+
| Name | Pattern | Workflow | Next execution time | Created at | Updated at |
+--------------------+--------------+--------------------------+---------------------+---------------------+------------+
| test1-trigger-kqet | 54 15 25 * * | test1.workflow.create_vm | 2015-02-25 15:54:00 | 2015-01-26 22:04:25 | None |
+--------------------+--------------+--------------------------+---------------------+---------------------+------------+