--- - name: Create keypair (non-existing) openstack.cloud.keypair: cloud: "{{ cloud }}" name: "{{ keypair_name }}" state: present register: keypair - name: Assert fields assert: that: - item in keypair.keypair loop: "{{ expected_fields }}" - name: Get list of all keypairs openstack.cloud.keypair_info: cloud: "{{ cloud }}" register: keypairs_all - name: Get list of keypairs with filter openstack.cloud.keypair_info: cloud: "{{ cloud }}" name: "{{ keypair_name }}" register: keypairs - name: Ensure that list of keypairs contains single element assert: that: - keypairs['keypairs']|length == 1 - name: Assert fields assert: that: - item in keypairs.keypairs.0.keys() loop: "{{ expected_fields }}" # This assert verifies that Ansible is capable serializing data returned by SDK - name: Ensure public key is returned assert: that: - keypair.keypair.public_key is defined and keypair.keypair.public_key|length > 0 - name: Create another keypair openstack.cloud.keypair: cloud: "{{ cloud }}" name: "{{ keypair_name }}-2" state: present - name: Delete keypair (non-existing) openstack.cloud.keypair: cloud: "{{ cloud }}" name: "non-existing" state: absent - name: Delete keypair openstack.cloud.keypair: cloud: "{{ cloud }}" name: "{{ keypair_name }}" state: absent - name: Get list of keypairs openstack.cloud.keypair_info: cloud: "{{ cloud }}" name: "{{ keypair_name }}" register: keypairs - name: Ensure that list of keypairs is empty assert: that: - keypairs['keypairs']|length == 0 - name: Delete another keypair openstack.cloud.keypair: cloud: "{{ cloud }}" name: "{{ keypair_name }}-2" state: absent - name: Generate test key file user: name: "{{ ansible_env.USER }}" generate_ssh_key: true ssh_key_file: .ssh/shade_id_rsa - name: Create keypair (file) openstack.cloud.keypair: cloud: "{{ cloud }}" name: "{{ keypair_name }}" state: present public_key_file: "{{ ansible_env.HOME }}/.ssh/shade_id_rsa.pub" - name: Get list of keypairs openstack.cloud.keypair_info: cloud: "{{ cloud }}" name: "{{ keypair_name }}" register: keypairs - name: Ensure that list of keypairs contains single element assert: that: - keypairs['keypairs']|length == 1 - name: Delete keypair (file) openstack.cloud.keypair: cloud: "{{ cloud }}" name: "{{ keypair_name }}" state: absent - name: Get list of keypairs openstack.cloud.keypair_info: cloud: "{{ cloud }}" name: "{{ keypair_name }}" register: keypairs - name: Ensure that list of keypairs is empty assert: that: - keypairs['keypairs']|length == 0 - name: Create keypair (key) openstack.cloud.keypair: cloud: "{{ cloud }}" name: "{{ keypair_name }}" state: present public_key: "{{ lookup('file', '~/.ssh/shade_id_rsa.pub') }}" - name: Get list of keypairs openstack.cloud.keypair_info: cloud: "{{ cloud }}" name: "{{ keypair_name }}" register: keypairs - name: Ensure that list of keypairs contains single element assert: that: - keypairs['keypairs']|length == 1 - name: Delete keypair (key) openstack.cloud.keypair: cloud: "{{ cloud }}" name: "{{ keypair_name }}" state: absent - name: Get list of keypairs openstack.cloud.keypair_info: cloud: "{{ cloud }}" name: "{{ keypair_name }}" register: keypairs - name: Ensure that list of keypairs is empty assert: that: - keypairs['keypairs']|length == 0 - name: Delete test key pub file file: name: "{{ ansible_env.HOME }}/.ssh/shade_id_rsa.pub" state: absent - name: Delete test key pvt file file: name: "{{ ansible_env.HOME }}/.ssh/shade_id_rsa" state: absent