mirror of
https://github.com/ansible-collections/google.cloud.git
synced 2025-07-02 22:50:26 -07:00
GCP Bug Fixes (#49458)
* Bug fixes * fixes as of 12/5/2018 * changes as of 12/06/2018
This commit is contained in:
parent
60e797e41b
commit
e2ea369ee6
47 changed files with 239 additions and 102 deletions
|
@ -53,11 +53,11 @@ options:
|
|||
description:
|
||||
- A mutable string of at most 1024 characters associated with this resource for
|
||||
the user's convenience. Has no effect on the managed zone's function.
|
||||
required: false
|
||||
required: true
|
||||
dns_name:
|
||||
description:
|
||||
- The DNS name of this managed zone, for instance "example.com.".
|
||||
required: false
|
||||
required: true
|
||||
name:
|
||||
description:
|
||||
- User assigned name for this resource.
|
||||
|
@ -69,7 +69,15 @@ options:
|
|||
is a set of DNS name servers that all host the same ManagedZones. Most users
|
||||
will leave this field unset.
|
||||
required: false
|
||||
labels:
|
||||
description:
|
||||
- A set of key/value label pairs to assign to this ManagedZone.
|
||||
required: false
|
||||
version_added: 2.8
|
||||
extends_documentation_fragment: gcp
|
||||
notes:
|
||||
- 'API Reference: U(https://cloud.google.com/dns/api/v1/managedZones)'
|
||||
- 'Managing Zones: U(https://cloud.google.com/dns/zones/)'
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
|
@ -126,6 +134,11 @@ creationTime:
|
|||
- This is in RFC3339 text format.
|
||||
returned: success
|
||||
type: str
|
||||
labels:
|
||||
description:
|
||||
- A set of key/value label pairs to assign to this ManagedZone.
|
||||
returned: success
|
||||
type: dict
|
||||
'''
|
||||
|
||||
################################################################################
|
||||
|
@ -146,10 +159,11 @@ def main():
|
|||
module = GcpModule(
|
||||
argument_spec=dict(
|
||||
state=dict(default='present', choices=['present', 'absent'], type='str'),
|
||||
description=dict(type='str'),
|
||||
dns_name=dict(type='str'),
|
||||
description=dict(required=True, type='str'),
|
||||
dns_name=dict(required=True, type='str'),
|
||||
name=dict(required=True, type='str'),
|
||||
name_server_set=dict(type='list', elements='str')
|
||||
name_server_set=dict(type='list', elements='str'),
|
||||
labels=dict(type='dict')
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -165,7 +179,7 @@ def main():
|
|||
if fetch:
|
||||
if state == 'present':
|
||||
if is_different(module, fetch):
|
||||
update(module, self_link(module), kind)
|
||||
update(module, self_link(module), kind, fetch)
|
||||
fetch = fetch_resource(module, self_link(module), kind)
|
||||
changed = True
|
||||
else:
|
||||
|
@ -189,8 +203,29 @@ def create(module, link, kind):
|
|||
return return_if_object(module, auth.post(link, resource_to_request(module)), kind)
|
||||
|
||||
|
||||
def update(module, link, kind):
|
||||
module.fail_json(msg="ManagedZone cannot be edited")
|
||||
def update(module, link, kind, fetch):
|
||||
update_fields(module, resource_to_request(module),
|
||||
response_to_hash(module, fetch))
|
||||
return fetch_resource(module, self_link(module), kind)
|
||||
|
||||
|
||||
def update_fields(module, request, response):
|
||||
if response.get('description') != request.get('description') or response.get('labels') != request.get('labels'):
|
||||
description_update(module, request, response)
|
||||
|
||||
|
||||
def description_update(module, request, response):
|
||||
auth = GcpSession(module, 'dns')
|
||||
auth.patch(
|
||||
''.join([
|
||||
"https://www.googleapis.com/dns/v1/",
|
||||
"projects/{project}/managedZones/{name}"
|
||||
]).format(**module.params),
|
||||
{
|
||||
u'description': module.params.get('description'),
|
||||
u'labels': module.params.get('labels')
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def delete(module, link, kind):
|
||||
|
@ -204,11 +239,12 @@ def resource_to_request(module):
|
|||
u'description': module.params.get('description'),
|
||||
u'dnsName': module.params.get('dns_name'),
|
||||
u'name': module.params.get('name'),
|
||||
u'nameServerSet': module.params.get('name_server_set')
|
||||
u'nameServerSet': module.params.get('name_server_set'),
|
||||
u'labels': module.params.get('labels')
|
||||
}
|
||||
return_vals = {}
|
||||
for k, v in request.items():
|
||||
if v:
|
||||
if v or v is False:
|
||||
return_vals[k] = v
|
||||
|
||||
return return_vals
|
||||
|
@ -276,7 +312,8 @@ def response_to_hash(module, response):
|
|||
u'name': response.get(u'name'),
|
||||
u'nameServers': response.get(u'nameServers'),
|
||||
u'nameServerSet': response.get(u'nameServerSet'),
|
||||
u'creationTime': response.get(u'creationTime')
|
||||
u'creationTime': response.get(u'creationTime'),
|
||||
u'labels': response.get(u'labels')
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue