diff --git a/ansible/flavor_registration.yml b/ansible/flavor_registration.yml index f7a7314..8ef4167 100644 --- a/ansible/flavor_registration.yml +++ b/ansible/flavor_registration.yml @@ -1,7 +1,7 @@ --- - hosts: localhost tasks: - - name: Register Nova flavors + - name: Configure Nova flavors include_role: name: nova-flavors vars: @@ -9,3 +9,4 @@ flavors_python_upper_constraints_url: >- {{ python_upper_constraints_url }} flavors: "{{ nova_flavors }}" + flavors_state: "{{ 'absent' if cmd == 'teardown' else 'present' }}" diff --git a/ansible/roles/nova-flavors/README.md b/ansible/roles/nova-flavors/README.md index 88cb76e..6fda311 100644 --- a/ansible/roles/nova-flavors/README.md +++ b/ansible/roles/nova-flavors/README.md @@ -1,7 +1,9 @@ Nova Flavors ============ -This role creates flavors in Nova. +This role manages flavors in Nova. If `flavors_state` is `present`, it will +ensure the specified flavors eexist; if it is `absent`, it will ensure they do +not. Requirements ------------ @@ -19,3 +21,5 @@ Role Variables OpenStack clients. - `flavors_python_upper_constraints_url`: The URL of the upper constraints file to pass to pip when installing Python packages. +- `flavors_state`: Whether the specified flavors should be `present` or + `absent`. Default is `present`. diff --git a/ansible/roles/nova-flavors/defaults/main.yml b/ansible/roles/nova-flavors/defaults/main.yml index 7c6aeb5..1c27128 100644 --- a/ansible/roles/nova-flavors/defaults/main.yml +++ b/ansible/roles/nova-flavors/defaults/main.yml @@ -23,3 +23,5 @@ flavors_virtualenv_path: # The URL of the upper constraints file to pass to pip when installing Python # packages. flavors_python_upper_constraints_url: +# Whether the specified flavors should be `present` or `absent`. +flavors_state: present diff --git a/ansible/roles/nova-flavors/tasks/main.yml b/ansible/roles/nova-flavors/tasks/main.yml index 5dc4f5f..992ac7f 100644 --- a/ansible/roles/nova-flavors/tasks/main.yml +++ b/ansible/roles/nova-flavors/tasks/main.yml @@ -6,7 +6,7 @@ -c {{ flavors_python_upper_constraints_url }} virtualenv: "{{ flavors_virtualenv_path }}" - - name: Register Nova flavors + - name: Configure Nova flavors os_nova_flavor: auth_type: password name: "{{ item.name | default(item.resource_class) }}" @@ -28,6 +28,7 @@ | combine(forbidden_traits) | combine(item.custom_specs | default({})) }} + state: "{{ flavors_state }}" vars: hw_specs: "resources:DISK_GB": 0