|
|
|
# TODO: need tests for read/write mode.
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test missing name
|
|
|
|
gce_pd:
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
register: result
|
|
|
|
ignore_errors: true
|
|
|
|
|
|
|
|
- name: assert failure when called with no parameters
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'result.failed'
|
|
|
|
- 'result.msg == "missing required arguments: name"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test state=present (expected changed=true)
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: present
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: assert state=present (expected changed=true)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'result.changed'
|
|
|
|
- 'result.name == "{{ instance_name }}"'
|
|
|
|
- 'result.size_gb == 10' # default size
|
|
|
|
- 'result.zone == "us-central1-b"' # default zone
|
|
|
|
- 'result.state == "present"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test state=present (expected changed=false)
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: present
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: assert state=present (expected changed=false)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'not result.changed'
|
|
|
|
- 'result.name == "{{ instance_name }}"'
|
|
|
|
- 'result.state == "present"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test state=absent (expected changed=true)
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: absent
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: assert state=absent (expected changed=true)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'result.changed'
|
|
|
|
- 'result.name == "{{ instance_name }}"'
|
|
|
|
- 'result.state == "absent"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test state=absent (expected changed=false)
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: absent
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: assert state=absent (expected changed=false)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'not result.changed'
|
|
|
|
- 'result.name == "{{ instance_name }}"'
|
|
|
|
- 'result.state == "absent"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test non-default size/zone
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
size_gb: 5
|
|
|
|
zone: us-central1-a
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: present
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: assert non-default size/zone
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'result.changed'
|
|
|
|
- 'result.name == "{{ instance_name }}"'
|
|
|
|
- 'result.size_gb == 5'
|
|
|
|
- 'result.zone == "us-central1-a"'
|
|
|
|
- 'result.state == "present"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test non-default size/zone (state=absent)
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
size_gb: 5
|
|
|
|
zone: us-central1-a
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: absent
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: assert non-default size/zone (state=absent)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'result.changed'
|
|
|
|
- 'result.name == "{{ instance_name }}"'
|
|
|
|
- 'result.state == "absent"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test image given (state=present)
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
image: debian-7
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: present
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: assert image given (state=present)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'result.changed'
|
|
|
|
- 'result.name == "{{ instance_name }}"'
|
|
|
|
- 'result.image == "debian-7"'
|
|
|
|
- 'result.state == "present"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test image given (state=absent)
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
image: debian-7
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: absent
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: assert image given (state=absent)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'result.changed'
|
|
|
|
- 'result.name == "{{ instance_name }}"'
|
|
|
|
- 'result.state == "absent"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test snapshot given (state=present)
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
snapshot: "{{ instance_name }}-snapshot"
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: present
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: assert image given (state=present)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'result.changed'
|
|
|
|
- 'result.name == "{{ instance_name }}"'
|
|
|
|
- 'result.snapshot == "{{ instance_name }}-snapshot"'
|
|
|
|
- 'result.state == "present"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test snapshot given (state=absent)
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
snapshot: "{{ instance_name }}-snapshot"
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: absent
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: assert image given (state=absent)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'result.changed'
|
|
|
|
- 'result.name == "{{ instance_name }}"'
|
|
|
|
- 'result.state == "absent"'
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: test both image and snapshot given
|
|
|
|
gce_pd:
|
|
|
|
name: "{{ instance_name }}"
|
|
|
|
image: "debian-7"
|
|
|
|
snapshot: "{{ instance_name }}-snapshot"
|
|
|
|
service_account_email: "{{ service_account_email }}"
|
|
|
|
pem_file: "{{ pem_file }}"
|
|
|
|
project_id: "{{ project_id }}"
|
|
|
|
state: present
|
|
|
|
register: result
|
|
|
|
ignore_errors: true
|
|
|
|
|
|
|
|
- name: assert image given (state=present)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'result.failed'
|
|
|
|
- 'result.msg == "Cannot give both image (debian-7) and snapshot ({{ instance_name }}-snapshot)"'
|