Ansible Projects (#116)

<!-- This change is generated by MagicModules. -->
/cc @rambleraptor
This commit is contained in:
The Magician 2018-11-06 11:12:07 -08:00 committed by Alex Stephen
commit 5e762dc9a1
42 changed files with 123 additions and 112 deletions

View file

@ -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__':