mirror of
https://github.com/ansible-collections/google.cloud.git
synced 2025-07-28 07:31:29 -07:00
Ansible Projects (#116)
<!-- This change is generated by MagicModules. --> /cc @rambleraptor
This commit is contained in:
parent
ff78ac3b85
commit
5e762dc9a1
42 changed files with 123 additions and 112 deletions
|
@ -18,14 +18,15 @@
|
|||
# ----------------------------------------------------------------------------
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
|
||||
__metaclass__ = type
|
||||
|
||||
################################################################################
|
||||
# Documentation
|
||||
################################################################################
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ["preview"], 'supported_by': 'community'}
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ["preview"],
|
||||
'supported_by': 'community'}
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
|
@ -90,14 +91,14 @@ extends_documentation_fragment: gcp
|
|||
EXAMPLES = '''
|
||||
- name: create a project
|
||||
gcp_resourcemanager_project:
|
||||
name: My Sample Project
|
||||
id: alextest-{{ 10000000000 | random }}
|
||||
auth_kind: serviceaccount
|
||||
service_account_file: "/tmp/auth.pem"
|
||||
parent:
|
||||
type: organization
|
||||
id: 636173955921
|
||||
state: present
|
||||
name: My Sample Project
|
||||
id: alextest-{{ 10000000000 | random }}
|
||||
auth_kind: "serviceaccount"
|
||||
service_account_file: "/tmp/auth.pem"
|
||||
parent:
|
||||
type: organization
|
||||
id: 636173955921
|
||||
state: present
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
|
@ -181,8 +182,11 @@ def main():
|
|||
state=dict(default='present', choices=['present', 'absent'], type='str'),
|
||||
name=dict(type='str'),
|
||||
labels=dict(type='dict'),
|
||||
parent=dict(type='dict', options=dict(type=dict(type='str'), id=dict(type='str'))),
|
||||
id=dict(required=True, type='str'),
|
||||
parent=dict(type='dict', options=dict(
|
||||
type=dict(type='str'),
|
||||
id=dict(type='str')
|
||||
)),
|
||||
id=dict(required=True, type='str')
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -236,11 +240,11 @@ def resource_to_request(module):
|
|||
u'projectId': module.params.get('id'),
|
||||
u'name': module.params.get('name'),
|
||||
u'labels': module.params.get('labels'),
|
||||
u'parent': ProjectParent(module.params.get('parent', {}), module).to_request(),
|
||||
u'parent': ProjectParent(module.params.get('parent', {}), module).to_request()
|
||||
}
|
||||
return_vals = {}
|
||||
for k, v in request.items():
|
||||
if v or v is False:
|
||||
if v:
|
||||
return_vals[k] = v
|
||||
|
||||
return return_vals
|
||||
|
@ -305,12 +309,12 @@ def is_different(module, response):
|
|||
# This is for doing comparisons with Ansible's current parameters.
|
||||
def response_to_hash(module, response):
|
||||
return {
|
||||
u'projectNumber': response.get(u'projectNumber'),
|
||||
u'projectNumber': response.get(u'number'),
|
||||
u'lifecycleState': response.get(u'lifecycleState'),
|
||||
u'name': response.get(u'name'),
|
||||
u'createTime': response.get(u'createTime'),
|
||||
u'labels': response.get(u'labels'),
|
||||
u'parent': ProjectParent(response.get(u'parent', {}), module).from_response(),
|
||||
u'parent': ProjectParent(response.get(u'parent', {}), module).from_response()
|
||||
}
|
||||
|
||||
|
||||
|
@ -329,17 +333,16 @@ def wait_for_operation(module, response):
|
|||
return {}
|
||||
status = navigate_hash(op_result, ['done'])
|
||||
wait_done = wait_for_completion(status, op_result, module)
|
||||
raise_if_errors(op_result, ['error'], module)
|
||||
return navigate_hash(wait_done, ['response'])
|
||||
|
||||
|
||||
def wait_for_completion(status, op_result, module):
|
||||
op_id = navigate_hash(op_result, ['name'])
|
||||
op_uri = async_op_url(module, {'op_id': op_id})
|
||||
while not status:
|
||||
raise_if_errors(op_result, ['error'], module)
|
||||
if not status:
|
||||
raise_if_errors(op_result, ['error'], 'message')
|
||||
time.sleep(1.0)
|
||||
op_result = fetch_resource(module, op_uri, False)
|
||||
op_result = fetch_resource(module, op_uri)
|
||||
status = navigate_hash(op_result, ['done'])
|
||||
return op_result
|
||||
|
||||
|
@ -359,10 +362,16 @@ class ProjectParent(object):
|
|||
self.request = {}
|
||||
|
||||
def to_request(self):
|
||||
return remove_nones_from_dict({u'type': self.request.get('type'), u'id': self.request.get('id')})
|
||||
return remove_nones_from_dict({
|
||||
u'type': self.request.get('type'),
|
||||
u'id': self.request.get('id')
|
||||
})
|
||||
|
||||
def from_response(self):
|
||||
return remove_nones_from_dict({u'type': self.request.get(u'type'), u'id': self.request.get(u'id')})
|
||||
return remove_nones_from_dict({
|
||||
u'type': self.request.get(u'type'),
|
||||
u'id': self.request.get(u'id')
|
||||
})
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue