summaryrefslogtreecommitdiffstats
path: root/roles/openstack-stack/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'roles/openstack-stack/tasks')
-rw-r--r--roles/openstack-stack/tasks/cleanup.yml6
-rw-r--r--roles/openstack-stack/tasks/generate-templates.yml32
-rw-r--r--roles/openstack-stack/tasks/main.yml54
3 files changed, 53 insertions, 39 deletions
diff --git a/roles/openstack-stack/tasks/cleanup.yml b/roles/openstack-stack/tasks/cleanup.yml
new file mode 100644
index 000000000..258334a6b
--- /dev/null
+++ b/roles/openstack-stack/tasks/cleanup.yml
@@ -0,0 +1,6 @@
+---
+
+- name: cleanup temp files
+ file:
+ path: "{{ stack_template_pre.path }}"
+ state: absent
diff --git a/roles/openstack-stack/tasks/generate-templates.yml b/roles/openstack-stack/tasks/generate-templates.yml
new file mode 100644
index 000000000..0ce9a3eec
--- /dev/null
+++ b/roles/openstack-stack/tasks/generate-templates.yml
@@ -0,0 +1,32 @@
+---
+- name: create HOT stack template prefix
+ register: stack_template_pre
+ tempfile:
+ state: directory
+ prefix: casl-ansible
+
+- name: set template paths
+ set_fact:
+ stack_template_path: "{{ stack_template_pre.path }}/stack.yaml"
+ user_data_template_path: "{{ stack_template_pre.path }}/user-data"
+
+- name: generate HOT stack template from jinja2 template
+ template:
+ src: heat_stack.yaml.j2
+ dest: "{{ stack_template_path }}"
+
+- name: generate HOT server template from jinja2 template
+ template:
+ src: heat_stack_server.yaml.j2
+ dest: "{{ stack_template_pre.path }}/server.yaml"
+
+- name: generate HOT server w/o floating IPs template from jinja2 template
+ template:
+ src: heat_stack_server_nofloating.yaml.j2
+ dest: "{{ stack_template_pre.path }}/server_nofloating.yaml"
+ when: use_bastion|bool
+
+- name: generate user_data from jinja2 template
+ template:
+ src: user_data.j2
+ dest: "{{ user_data_template_path }}"
diff --git a/roles/openstack-stack/tasks/main.yml b/roles/openstack-stack/tasks/main.yml
index 9b4855294..983567026 100644
--- a/roles/openstack-stack/tasks/main.yml
+++ b/roles/openstack-stack/tasks/main.yml
@@ -1,51 +1,27 @@
---
-- name: create HOT stack template prefix
- register: stack_template_pre
- tempfile:
- state: directory
- prefix: casl-ansible
-- name: set template paths
- set_fact:
- stack_template_path: "{{ stack_template_pre.path }}/stack.yaml"
- user_data_template_path: "{{ stack_template_pre.path }}/user-data"
+- name: Generate the templates
+ include: generate-templates.yml
+ when:
+ - stack_state == 'present'
-- name: generate HOT stack template from jinja2 template
- template:
- src: heat_stack.yaml.j2
- dest: "{{ stack_template_path }}"
-
-- name: generate HOT server template from jinja2 template
- template:
- src: heat_stack_server.yaml.j2
- dest: "{{ stack_template_pre.path }}/server.yaml"
-
-- name: generate HOT server w/o floating IPs template from jinja2 template
- template:
- src: heat_stack_server_nofloating.yaml.j2
- dest: "{{ stack_template_pre.path }}/server_nofloating.yaml"
- when: use_bastion|bool
-
-- name: generate user_data from jinja2 template
- template:
- src: user_data.j2
- dest: "{{ user_data_template_path }}"
-
-- name: create stack
+- name: Handle the Stack (create/delete)
ignore_errors: False
register: stack_create
os_stack:
name: "{{ stack_name }}"
- state: present
- template: "{{ stack_template_path }}"
+ state: "{{ stack_state }}"
+ template: "{{ stack_template_path | default(omit) }}"
wait: yes
# NOTE(bogdando) OS::Neutron::Subnet doesn't support live updates for
# dns_nameservers, so we can't do that for the "create stack" task.
- include: subnet_update_dns_servers.yaml
- when: private_dns_server is defined
-
-- name: cleanup temp files
- file:
- path: "{{ stack_template_pre.path }}"
- state: absent
+ when:
+ - private_dns_server is defined
+ - stack_state == 'present'
+
+- name: CleanUp
+ include: cleanup.yml
+ when:
+ - stack_state == 'present'