Skip to content

Instantly share code, notes, and snippets.

@ssolkhon
Last active February 3, 2020 20:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ssolkhon/0f39ee11130ed4f322bedb3bd3cb0462 to your computer and use it in GitHub Desktop.
Save ssolkhon/0f39ee11130ed4f322bedb3bd3cb0462 to your computer and use it in GitHub Desktop.
Configure Traits example tasks
---
- name: Install dependencies
pip:
name: "{{ item }}"
with_items:
- python-openstackclient
- osc-placement
delegate_to: localhost
run_once: true
- name: Create traits
command: |
openstack
--os-auth-url https://{{ kolla_external_fqdn_r1 | default(kolla_external_fqdn) }}:5000
--os-project-domain-name default
--os-tenant-name admin
--os-username admin
--os-password {{ keystone_admin_password }}
--os-user-domain-name default
--os-cacert {{ openstack_cacert }}
--os-region-name {{ openstack_region_name }}
--os-placement-api-version 1.6
trait create {{ item }}
with_items:
- "{{ traits }}"
no_log: true
delegate_to: localhost
- name: Get resource provider uuid
command: |
openstack
--os-auth-url https://{{ kolla_external_fqdn_r1 | default(kolla_external_fqdn) }}:5000
--os-project-domain-name default
--os-tenant-name admin
--os-username admin
--os-password {{ keystone_admin_password }}
--os-user-domain-name default
--os-cacert {{ openstack_cacert }}
--os-region-name {{ openstack_region_name }}
--os-placement-api-version 1.6
resource provider list --name {{ hostvars[inventory_hostname].ansible_fqdn }} -c uuid -f json
register: cmd_output_resource_provider_list
no_log: true
delegate_to: localhost
- name: Set uuid value
set_fact:
resource_provider_uuid: "{{ (cmd_output_resource_provider_list.stdout | from_json).0.uuid }}"
- name: Set traits
command: |
openstack
--os-auth-url https://{{ kolla_external_fqdn_r1 | default(kolla_external_fqdn) }}:5000
--os-project-domain-name default
--os-tenant-name admin
--os-username admin
--os-password {{ keystone_admin_password }}
--os-user-domain-name default
--os-cacert {{ openstack_cacert }}
--os-region-name {{ openstack_region_name }}
--os-placement-api-version 1.6
resource provider trait set {{ resource_provider_uuid }}
{% for t in traits %}
--trait {{ t }}
{% endfor %}
no_log: true
delegate_to: localhost
- name: Validate resource provider traits have been set correctly
command: |
openstack
--os-auth-url https://{{ kolla_external_fqdn_r1 | default(kolla_external_fqdn) }}:5000
--os-project-domain-name default
--os-tenant-name admin
--os-username admin
--os-password {{ keystone_admin_password }}
--os-user-domain-name default
--os-cacert {{ openstack_cacert }}
--os-region-name {{ openstack_region_name }}
--os-placement-api-version 1.6
resource provider trait list {{ resource_provider_uuid }} -c name -f json
register: cmd_output_resource_provider_trait_list
no_log: true
delegate_to: localhost
- assert:
fail_msg: "Traits have not been set correctly"
that: "{{ ((cmd_output_resource_provider_trait_list.stdout | from_json) | map(attribute='name') | select('match', '^CUSTOM_*') | list) == (traits | sort) }}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment