# ============================================================ - name: Test rax_cbs with no args rax_cbs: ignore_errors: true register: rax_cbs - name: Validate results of rax_cbs with no args assert: that: - rax_cbs|failed - rax_cbs.msg == 'missing required arguments: name' # ============================================================ # ============================================================ - name: Test rax_cbs with name rax_cbs: name: fail ignore_errors: true register: rax_cbs - name: Validate results of rax_cbs with no args assert: that: - rax_cbs|failed - rax_cbs.msg == 'No credentials supplied!' # ============================================================ # ============================================================ - name: Test rax_cbs with name and credentials rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" name: fail ignore_errors: true register: rax_cbs - name: Validate results of rax_cbs with name and credentials assert: that: - rax_cbs|failed - rax_cbs.msg.startswith('None is not a valid region') # ============================================================ # ============================================================ - name: Test rax_cbs with creds, region, name and public_key string rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-1" wait: true wait_timeout: "{{ rackspace_wait_timeout }}" register: rax_cbs - name: Validate rax_cbs creds, region and name assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.display_name == "{{ resource_prefix }}-1" - rax_cbs.volume.attachments == [] - rax_cbs.volume.size == 100 - rax_cbs.volume.volume_type == 'SATA' - rax_cbs.volume.status == 'available' - name: Delete integration 1 rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-1" state: absent register: rax_cbs - name: Validate delete integration 1 assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.display_name == "{{ resource_prefix }}-1" # ============================================================ # ============================================================ - name: Test rax_cbs with creds, region, name and invalid size rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: fail size: 1 ignore_errors: true register: rax_cbs - name: Validate rax_cbs creds, region, name and invalid size assert: that: - rax_cbs|failed # ============================================================ # ============================================================ - name: Test rax_cbs with creds, region, name and valid size rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-2" size: 150 wait: true wait_timeout: "{{ rackspace_wait_timeout }}" register: rax_cbs - name: Validate rax_cbs creds, region and valid size assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.display_name == "{{ resource_prefix }}-2" - rax_cbs.volume.attachments == [] - rax_cbs.volume.size == 150 - rax_cbs.volume.volume_type == 'SATA' - rax_cbs.volume.status == 'available' - name: Delete integration 2 rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-2" state: absent register: rax_cbs - name: Validate delete integration 2 assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.display_name == "{{ resource_prefix }}-2" # ============================================================ # ============================================================ - name: Test rax_cbs with creds, region, name and invalid volume_type rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: fail volume_type: fail ignore_errors: true register: rax_cbs - name: Validate rax_cbs creds, region, name and invalid volume_type assert: that: - rax_cbs|failed - "rax_cbs.msg == 'value of volume_type must be one of: SSD,SATA, got: fail'" # ============================================================ # ============================================================ - name: Test rax_cbs with creds, region, name and valid volume_size rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-3" volume_type: SSD wait: true wait_timeout: "{{ rackspace_wait_timeout }}" register: rax_cbs - name: Validate rax_cbs creds, region and valid volume_size assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.display_name == "{{ resource_prefix }}-3" - rax_cbs.volume.attachments == [] - rax_cbs.volume.size == 100 - rax_cbs.volume.volume_type == 'SSD' - rax_cbs.volume.status == 'available' - name: Delete integration 3 rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-3" state: absent register: rax_cbs - name: Validate delete integration 3 assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.display_name == "{{ resource_prefix }}-3" # ============================================================ # ============================================================ - name: Test rax_cbs with creds, region, name and description rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-4" description: "{{ resource_prefix }}-4 description" wait: true wait_timeout: "{{ rackspace_wait_timeout }}" register: rax_cbs - name: Validate rax_cbs creds, region and description assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.display_name == "{{ resource_prefix }}-4" - rax_cbs.volume.description == '{{ resource_prefix }}-4 description' - rax_cbs.volume.attachments == [] - rax_cbs.volume.size == 100 - rax_cbs.volume.volume_type == 'SATA' - rax_cbs.volume.status == 'available' - name: Delete integration 4 rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-4" state: absent register: rax_cbs - name: Validate delete integration 4 assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.display_name == "{{ resource_prefix }}-4" # ============================================================ # ============================================================ - name: Test rax_cbs with creds, region, name and meta rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-5" meta: foo: bar wait: true wait_timeout: "{{ rackspace_wait_timeout }}" register: rax_cbs - name: Validate rax_cbs creds, region and meta assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.display_name == "{{ resource_prefix }}-5" - rax_cbs.volume.attachments == [] - rax_cbs.volume.size == 100 - rax_cbs.volume.volume_type == 'SATA' - rax_cbs.volume.status == 'available' - rax_cbs.volume.metadata.foo == 'bar' - name: Delete integration 5 rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-5" state: absent register: rax_cbs - name: Validate delete integration 5 assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.display_name == "{{ resource_prefix }}-5" # ============================================================ # ============================================================ - name: Test rax_cbs with idempotency 1 rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-6" wait: true wait_timeout: "{{ rackspace_wait_timeout }}" register: rax_cbs_1 - name: Validate rax_cbs with idempotency 1 assert: that: - rax_cbs_1|success - rax_cbs_1|changed - rax_cbs_1.volume.display_name == "{{ resource_prefix }}-6" - name: Test rax_cbs with idempotency 2 rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-6" register: rax_cbs_2 - name: Validate rax_cbs with idempotency 2 assert: that: - rax_cbs_2|success - not rax_cbs_2|changed - rax_cbs_2.volume.display_name == "{{ resource_prefix }}-6" - rax_cbs_2.volume.id == rax_cbs_1.volume.id - name: Delete integration 6 rax_cbs: username: "{{ rackspace_username }}" api_key: "{{ rackspace_api_key }}" region: "{{ rackspace_region }}" name: "{{ resource_prefix }}-6" state: absent register: rax_cbs - name: Validate delete integration 6 assert: that: - rax_cbs|success - rax_cbs|changed - rax_cbs.volume.name == "{{ resource_prefix }}-6" # ============================================================