mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-02 20:24:23 -07:00
Adds support for attaching persistent disks to GCE instances
This commit is contained in:
parent
d227330a55
commit
2257a69723
3 changed files with 171 additions and 5 deletions
|
@ -95,3 +95,117 @@
|
|||
- 'result.name == "{{ instance_name }}"'
|
||||
- 'result.state == "absent"'
|
||||
|
||||
# ============================================================
|
||||
- name: test disks given (expected changed=true)
|
||||
gce:
|
||||
name: "{{ instance_name }}"
|
||||
disks:
|
||||
- "{{ instance_name }}-base"
|
||||
- "{{ instance_name }}-extra"
|
||||
service_account_email: "{{ service_account_email }}"
|
||||
pem_file: "{{ pem_file }}"
|
||||
project_id: "{{ project_id }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- name: assert disks given
|
||||
assert:
|
||||
that:
|
||||
- 'result.changed'
|
||||
- 'result.instance_data[0].disks == ["{{ instance_name }}-base", "{{ instance_name }}-extra"]'
|
||||
- 'result.state == "present"'
|
||||
|
||||
# ============================================================
|
||||
- name: test disks given (expected changed=false)
|
||||
gce:
|
||||
name: "{{ instance_name }}"
|
||||
disks:
|
||||
- "{{ instance_name }}-base"
|
||||
- "{{ instance_name }}-extra"
|
||||
service_account_email: "{{ service_account_email }}"
|
||||
pem_file: "{{ pem_file }}"
|
||||
project_id: "{{ project_id }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- name: assert disks given
|
||||
assert:
|
||||
that:
|
||||
- 'not result.changed'
|
||||
- 'result.instance_data[0].disks == ["{{ instance_name }}-base", "{{ instance_name }}-extra"]'
|
||||
- 'result.state == "present"'
|
||||
|
||||
# ============================================================
|
||||
- name: test disks in the wrong order
|
||||
gce:
|
||||
name: "{{ instance_name }}"
|
||||
disks:
|
||||
- "{{ instance_name }}-extra"
|
||||
- "{{ instance_name }}-base"
|
||||
service_account_email: "{{ service_account_email }}"
|
||||
pem_file: "{{ pem_file }}"
|
||||
project_id: "{{ project_id }}"
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
- name: assert disks in the wrong order
|
||||
assert:
|
||||
that:
|
||||
- 'result.failed'
|
||||
- '{{ result.msg | match("Disk at index 0 does not match:.*") }}'
|
||||
|
||||
# ============================================================
|
||||
- name: test disks given with name and mode
|
||||
gce:
|
||||
name: "{{ instance_name }}"
|
||||
disks:
|
||||
- { name: "{{ instance_name }}-base", mode: "READ_WRITE" }
|
||||
- { name: "{{ instance_name }}-extra", mode: "READ_ONLY" }
|
||||
service_account_email: "{{ service_account_email }}"
|
||||
pem_file: "{{ pem_file }}"
|
||||
project_id: "{{ project_id }}"
|
||||
register: result
|
||||
|
||||
- name: assert disks given
|
||||
assert:
|
||||
that:
|
||||
- 'not result.changed'
|
||||
- 'result.state == "present"'
|
||||
|
||||
# ============================================================
|
||||
- name: test disks given with name and wrong mode
|
||||
gce:
|
||||
name: "{{ instance_name }}"
|
||||
disks:
|
||||
- { name: "{{ instance_name }}-base", mode: "READ_ONLY" }
|
||||
- "{{ instance_name }}-extra"
|
||||
service_account_email: "{{ service_account_email }}"
|
||||
pem_file: "{{ pem_file }}"
|
||||
project_id: "{{ project_id }}"
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
- name: assert disks given
|
||||
assert:
|
||||
that:
|
||||
- 'result.failed'
|
||||
- '{{ result.msg | match("Disk at index 0 is in the wrong mode:.*") }}'
|
||||
|
||||
# ============================================================
|
||||
- name: test disks given, state absent (expected changed=true)
|
||||
gce:
|
||||
name: "{{ instance_name }}"
|
||||
disks:
|
||||
- "{{ instance_name }}-base"
|
||||
- "{{ instance_name }}-extra"
|
||||
service_account_email: "{{ service_account_email }}"
|
||||
pem_file: "{{ pem_file }}"
|
||||
project_id: "{{ project_id }}"
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- name: assert disks given, state absent (expected changed=true)
|
||||
assert:
|
||||
that:
|
||||
- 'result.changed'
|
||||
- 'result.state == "absent"'
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
'''
|
||||
Create GCE resources for use in integration tests.
|
||||
|
||||
Takes a prefix as a command-line argument and creates a persistent disk
|
||||
named ${prefix}-base and a snapshot of it named ${prefix}-snapshot.
|
||||
prefix will be forced to lowercase, to ensure the names are legal GCE
|
||||
resource names.
|
||||
Takes a prefix as a command-line argument and creates two persistent disks named
|
||||
${prefix}-base and ${prefix}-extra and a snapshot of the base disk named
|
||||
${prefix}-snapshot. prefix will be forced to lowercase, to ensure the names are
|
||||
legal GCE resource names.
|
||||
'''
|
||||
|
||||
import sys
|
||||
|
@ -36,5 +36,7 @@ if __name__ == '__main__':
|
|||
base_volume = gce.create_volume(
|
||||
size=10, name=prefix+'-base', location='us-central1-a')
|
||||
gce.create_volume_snapshot(base_volume, name=prefix+'-snapshot')
|
||||
gce.create_volume(
|
||||
size=10, name=prefix+'-extra', location='us-central1-a')
|
||||
except KeyboardInterrupt, e:
|
||||
print "\nExiting on user command."
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue