fixing gcp_resourcemanager_project delete

gcp_resourcemanager_project was not properly deleting projects.

fixing gcp_resourcemanager_project as well.

fixes #530.
This commit is contained in:
Yusuke Tsutsumi 2022-12-13 06:17:00 +00:00 committed by Yusuke Tsutsumi
commit d063d44b73
6 changed files with 64 additions and 30 deletions

View file

@ -15,52 +15,57 @@
# Pre-test setup
- name: delete a project
google.cloud.gcp_resourcemanager_project:
name: My Sample Project
id: ansible-test-{{ 10000000000 | random }}
name: "{{ resource_prefix[0:30] }}"
id: "{{ resource_prefix[0:30] }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
parent:
type: organization
id: 636173955921
type: folder
id: "{{ gcp_folder_id }}"
state: absent
#----------------------------------------------------------
- name: create a project
google.cloud.gcp_resourcemanager_project:
name: My Sample Project
id: ansible-test-{{ 10000000000 | random }}
name: "{{ resource_prefix[0:30] }}"
id: "{{ resource_prefix[0:30] }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
parent:
type: organization
id: 636173955921
type: folder
id: "{{ gcp_folder_id }}"
state: present
register: result
- name: assert changed is true
assert:
that:
- result.changed == true
- name: Pause for 2 minutes for project to appear
ansible.builtin.pause:
minutes: 2
- name: verify that project was created
google.cloud.gcp_resourcemanager_project_info:
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
# choose 1000 projects so iterate past the deleted ones.
page_size: 1000
scopes:
- https://www.googleapis.com/auth/cloud-platform
register: results
- name: verify that command succeeded
assert:
that:
- results['resources'] | map(attribute='name') | select("match", ".*My Sample Project.*") | list | length == 1
- results['resources'] | selectattr("lifecycleState", "equalto", "ACTIVE") | map(attribute='name') | select("match", ".*{{ resource_prefix[0:30] }}.*") | list | length == 1
# ----------------------------------------------------------------------------
- name: create a project that already exists
google.cloud.gcp_resourcemanager_project:
name: My Sample Project
id: ansible-test-{{ 10000000000 | random }}
name: "{{ resource_prefix[0:30] }}"
id: "{{ resource_prefix[0:30] }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
parent:
type: organization
id: 636173955921
type: folder
id: "{{ gcp_folder_id }}"
state: present
register: result
- name: assert changed is false
@ -70,41 +75,46 @@
#----------------------------------------------------------
- name: delete a project
google.cloud.gcp_resourcemanager_project:
name: My Sample Project
id: ansible-test-{{ 10000000000 | random }}
name: "{{ resource_prefix[0:30] }}"
id: "{{ resource_prefix[0:30] }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
parent:
type: organization
id: 636173955921
type: folder
id: "{{ gcp_folder_id }}"
state: absent
register: result
- name: assert changed is true
assert:
that:
- result.changed == true
- name: Pause for 2 minutes for project to appear
ansible.builtin.pause:
minutes: 2
- name: verify that project was deleted
google.cloud.gcp_resourcemanager_project_info:
project: "{{ gcp_project }}"
project: "{{ resource_prefix[0:30] }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
# choose 1000 projects so iterate past the deleted ones.
page_size: 1000
scopes:
- https://www.googleapis.com/auth/cloud-platform
register: results
- name: verify that command succeeded
assert:
that:
- results['resources'] | map(attribute='name') | select("match", ".*My Sample Project.*") | list | length == 0
- results['resources'] | selectattr("lifecycleState", "equalto", "DELETE_REQUESTED") | map(attribute='name') | select("match", ".*{{ resource_prefix[0:30] }}.*") | list | length == 1
# ----------------------------------------------------------------------------
- name: delete a project that does not exist
google.cloud.gcp_resourcemanager_project:
name: My Sample Project
id: ansible-test-{{ 10000000000 | random }}
name: "{{ resource_prefix[0:30] }}"
id: "{{ resource_prefix[0:30] }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
parent:
type: organization
id: 636173955921
type: folder
id: "{{ gcp_folder_id }}"
state: absent
register: result
- name: assert changed is false