Bug fixes for GCP modules (as of 2019-01-09T15:35:45-08:00) (#50783)
This commit is contained in:
parent
41c1f8b9a5
commit
36fd9d1b6a
19 changed files with 152 additions and 92 deletions
|
@ -102,10 +102,9 @@ options:
|
|||
- This field can only be used with INTERNAL type with GCE_ENDPOINT/DNS_RESOLVER
|
||||
purposes.
|
||||
- 'This field represents a link to a Subnetwork resource in GCP. It can be specified
|
||||
in two ways. You can add `register: name-of-resource` to a gcp_compute_subnetwork
|
||||
task and then set this subnetwork field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this subnetwork to a dictionary with the selfLink key where the
|
||||
value is the selfLink of your Subnetwork'
|
||||
in two ways. First, you can place in the selfLink of the resource here as a
|
||||
string Alternatively, you can add `register: name-of-resource` to a gcp_compute_subnetwork
|
||||
task and then set this subnetwork field to "{{ name-of-resource }}"'
|
||||
required: false
|
||||
version_added: 2.7
|
||||
region:
|
||||
|
@ -183,7 +182,7 @@ subnetwork:
|
|||
- This field can only be used with INTERNAL type with GCE_ENDPOINT/DNS_RESOLVER
|
||||
purposes.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
users:
|
||||
description:
|
||||
- The URLs of the resources that are using this address.
|
||||
|
@ -221,7 +220,7 @@ def main():
|
|||
description=dict(type='str'),
|
||||
name=dict(required=True, type='str'),
|
||||
network_tier=dict(type='str', choices=['PREMIUM', 'STANDARD']),
|
||||
subnetwork=dict(type='dict'),
|
||||
subnetwork=dict(),
|
||||
region=dict(required=True, type='str')
|
||||
)
|
||||
)
|
||||
|
|
|
@ -122,7 +122,7 @@ items:
|
|||
- This field can only be used with INTERNAL type with GCE_ENDPOINT/DNS_RESOLVER
|
||||
purposes.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
users:
|
||||
description:
|
||||
- The URLs of the resources that are using this address.
|
||||
|
|
|
@ -97,10 +97,10 @@ options:
|
|||
- When the BackendService has load balancing scheme INTERNAL, the instance
|
||||
group must be in a zone within the same region as the BackendService.
|
||||
- 'This field represents a link to a InstanceGroup resource in GCP. It can
|
||||
be specified in two ways. You can add `register: name-of-resource` to a
|
||||
gcp_compute_instance_group task and then set this group field to "{{ name-of-resource
|
||||
}}" Alternatively, you can set this group to a dictionary with the selfLink
|
||||
key where the value is the selfLink of your InstanceGroup'
|
||||
be specified in two ways. First, you can place in the selfLink of the resource
|
||||
here as a string Alternatively, you can add `register: name-of-resource`
|
||||
to a gcp_compute_instance_group task and then set this group field to "{{
|
||||
name-of-resource }}"'
|
||||
required: false
|
||||
max_connections:
|
||||
description:
|
||||
|
@ -387,7 +387,7 @@ backends:
|
|||
- When the BackendService has load balancing scheme INTERNAL, the instance group
|
||||
must be in a zone within the same region as the BackendService.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
maxConnections:
|
||||
description:
|
||||
- The max number of simultaneous connections for the group. Can be used with
|
||||
|
@ -626,7 +626,7 @@ def main():
|
|||
balancing_mode=dict(type='str', choices=['UTILIZATION', 'RATE', 'CONNECTION']),
|
||||
capacity_scaler=dict(type='str'),
|
||||
description=dict(type='str'),
|
||||
group=dict(type='dict'),
|
||||
group=dict(),
|
||||
max_connections=dict(type='int'),
|
||||
max_connections_per_instance=dict(type='int'),
|
||||
max_rate=dict(type='int'),
|
||||
|
|
|
@ -115,7 +115,7 @@ items:
|
|||
- When the BackendService has load balancing scheme INTERNAL, the instance
|
||||
group must be in a zone within the same region as the BackendService.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
maxConnections:
|
||||
description:
|
||||
- The max number of simultaneous connections for the group. Can be used
|
||||
|
|
|
@ -157,10 +157,9 @@ options:
|
|||
- The source snapshot used to create this disk. You can provide this as a partial
|
||||
or full URL to the resource.
|
||||
- 'This field represents a link to a Snapshot resource in GCP. It can be specified
|
||||
in two ways. You can add `register: name-of-resource` to a gcp_compute_snapshot
|
||||
task and then set this source_snapshot field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this source_snapshot to a dictionary with the selfLink key where
|
||||
the value is the selfLink of your Snapshot'
|
||||
in two ways. First, you can place in the selfLink of the resource here as a
|
||||
string Alternatively, you can add `register: name-of-resource` to a gcp_compute_snapshot
|
||||
task and then set this source_snapshot field to "{{ name-of-resource }}"'
|
||||
required: false
|
||||
source_snapshot_encryption_key:
|
||||
description:
|
||||
|
@ -351,7 +350,7 @@ sourceSnapshot:
|
|||
- The source snapshot used to create this disk. You can provide this as a partial
|
||||
or full URL to the resource.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
sourceSnapshotEncryptionKey:
|
||||
description:
|
||||
- The customer-supplied encryption key of the source snapshot. Required if the source
|
||||
|
@ -418,7 +417,7 @@ def main():
|
|||
raw_key=dict(type='str'),
|
||||
sha256=dict(type='str')
|
||||
)),
|
||||
source_snapshot=dict(type='dict'),
|
||||
source_snapshot=dict(),
|
||||
source_snapshot_encryption_key=dict(type='dict', options=dict(
|
||||
raw_key=dict(type='str'),
|
||||
sha256=dict(type='str')
|
||||
|
|
|
@ -224,7 +224,7 @@ items:
|
|||
- The source snapshot used to create this disk. You can provide this as a partial
|
||||
or full URL to the resource.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
sourceSnapshotEncryptionKey:
|
||||
description:
|
||||
- The customer-supplied encryption key of the source snapshot. Required if the
|
||||
|
|
|
@ -147,10 +147,9 @@ options:
|
|||
networks/my-network projects/myproject/global/networks/my-network global/networks/default
|
||||
.'
|
||||
- 'This field represents a link to a Network resource in GCP. It can be specified
|
||||
in two ways. You can add `register: name-of-resource` to a gcp_compute_network
|
||||
task and then set this network field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this network to a dictionary with the selfLink key where the value
|
||||
is the selfLink of your Network'
|
||||
in two ways. First, you can place in the selfLink of the resource here as a
|
||||
string Alternatively, you can add `register: name-of-resource` to a gcp_compute_network
|
||||
task and then set this network field to "{{ name-of-resource }}"'
|
||||
required: false
|
||||
default:
|
||||
selfLink: global/networks/default
|
||||
|
@ -343,7 +342,7 @@ network:
|
|||
networks/my-network projects/myproject/global/networks/my-network global/networks/default
|
||||
.'
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
priority:
|
||||
description:
|
||||
- Priority for this rule. This is an integer between 0 and 65535, both inclusive.
|
||||
|
@ -441,7 +440,7 @@ def main():
|
|||
direction=dict(type='str', choices=['INGRESS', 'EGRESS']),
|
||||
disabled=dict(type='bool'),
|
||||
name=dict(required=True, type='str'),
|
||||
network=dict(default={'selfLink': 'global/networks/default'}, type='dict'),
|
||||
network=dict(default={'selfLink': 'global/networks/default'}),
|
||||
priority=dict(default=1000, type='int'),
|
||||
source_ranges=dict(type='list', elements='str'),
|
||||
source_service_accounts=dict(type='list', elements='str'),
|
||||
|
|
|
@ -170,7 +170,7 @@ items:
|
|||
networks/my-network projects/myproject/global/networks/my-network global/networks/default
|
||||
.'
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
priority:
|
||||
description:
|
||||
- Priority for this rule. This is an integer between 0 and 65535, both inclusive.
|
||||
|
|
|
@ -96,10 +96,10 @@ options:
|
|||
- This is used for internal load balancing.
|
||||
- "(not used for external load balancing) ."
|
||||
- 'This field represents a link to a BackendService resource in GCP. It can be
|
||||
specified in two ways. You can add `register: name-of-resource` to a gcp_compute_backend_service
|
||||
task and then set this backend_service field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this backend_service to a dictionary with the selfLink key where
|
||||
the value is the selfLink of your BackendService'
|
||||
specified in two ways. First, you can place in the selfLink of the resource
|
||||
here as a string Alternatively, you can add `register: name-of-resource` to
|
||||
a gcp_compute_backend_service task and then set this backend_service field to
|
||||
"{{ name-of-resource }}"'
|
||||
required: false
|
||||
ip_version:
|
||||
description:
|
||||
|
@ -136,10 +136,9 @@ options:
|
|||
specified, the default network will be used.
|
||||
- This field is not used for external load balancing.
|
||||
- 'This field represents a link to a Network resource in GCP. It can be specified
|
||||
in two ways. You can add `register: name-of-resource` to a gcp_compute_network
|
||||
task and then set this network field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this network to a dictionary with the selfLink key where the value
|
||||
is the selfLink of your Network'
|
||||
in two ways. First, you can place in the selfLink of the resource here as a
|
||||
string Alternatively, you can add `register: name-of-resource` to a gcp_compute_network
|
||||
task and then set this network field to "{{ name-of-resource }}"'
|
||||
required: false
|
||||
port_range:
|
||||
description:
|
||||
|
@ -172,10 +171,9 @@ options:
|
|||
if the network is in custom subnet mode, a subnetwork must be specified.
|
||||
- This field is not used for external load balancing.
|
||||
- 'This field represents a link to a Subnetwork resource in GCP. It can be specified
|
||||
in two ways. You can add `register: name-of-resource` to a gcp_compute_subnetwork
|
||||
task and then set this subnetwork field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this subnetwork to a dictionary with the selfLink key where the
|
||||
value is the selfLink of your Subnetwork'
|
||||
in two ways. First, you can place in the selfLink of the resource here as a
|
||||
string Alternatively, you can add `register: name-of-resource` to a gcp_compute_subnetwork
|
||||
task and then set this subnetwork field to "{{ name-of-resource }}"'
|
||||
required: false
|
||||
target:
|
||||
description:
|
||||
|
@ -186,10 +184,9 @@ options:
|
|||
target object.
|
||||
- This field is not used for internal load balancing.
|
||||
- 'This field represents a link to a TargetPool resource in GCP. It can be specified
|
||||
in two ways. You can add `register: name-of-resource` to a gcp_compute_target_pool
|
||||
task and then set this target field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this target to a dictionary with the selfLink key where the value
|
||||
is the selfLink of your TargetPool'
|
||||
in two ways. First, you can place in the selfLink of the resource here as a
|
||||
string Alternatively, you can add `register: name-of-resource` to a gcp_compute_target_pool
|
||||
task and then set this target field to "{{ name-of-resource }}"'
|
||||
required: false
|
||||
version_added: 2.7
|
||||
network_tier:
|
||||
|
@ -301,7 +298,7 @@ backendService:
|
|||
- This is used for internal load balancing.
|
||||
- "(not used for external load balancing) ."
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
ipVersion:
|
||||
description:
|
||||
- The IP Version that will be used by this forwarding rule. Valid options are IPV4
|
||||
|
@ -334,7 +331,7 @@ network:
|
|||
the default network will be used.
|
||||
- This field is not used for external load balancing.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
portRange:
|
||||
description:
|
||||
- This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy,
|
||||
|
@ -367,7 +364,7 @@ subnetwork:
|
|||
if the network is in custom subnet mode, a subnetwork must be specified.
|
||||
- This field is not used for external load balancing.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
target:
|
||||
description:
|
||||
- A reference to a TargetPool resource to receive the matched traffic.
|
||||
|
@ -377,7 +374,7 @@ target:
|
|||
target object.
|
||||
- This field is not used for internal load balancing.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
networkTier:
|
||||
description:
|
||||
- 'The networking tier used for configuring this address. This field can take the
|
||||
|
@ -415,15 +412,15 @@ def main():
|
|||
description=dict(type='str'),
|
||||
ip_address=dict(type='str'),
|
||||
ip_protocol=dict(type='str', choices=['TCP', 'UDP', 'ESP', 'AH', 'SCTP', 'ICMP']),
|
||||
backend_service=dict(type='dict'),
|
||||
backend_service=dict(),
|
||||
ip_version=dict(type='str', choices=['IPV4', 'IPV6']),
|
||||
load_balancing_scheme=dict(type='str', choices=['INTERNAL', 'EXTERNAL']),
|
||||
name=dict(required=True, type='str'),
|
||||
network=dict(type='dict'),
|
||||
network=dict(),
|
||||
port_range=dict(type='str'),
|
||||
ports=dict(type='list', elements='str'),
|
||||
subnetwork=dict(type='dict'),
|
||||
target=dict(type='dict'),
|
||||
subnetwork=dict(),
|
||||
target=dict(),
|
||||
network_tier=dict(type='str', choices=['PREMIUM', 'STANDARD']),
|
||||
region=dict(required=True, type='str')
|
||||
)
|
||||
|
|
|
@ -123,7 +123,7 @@ items:
|
|||
- This is used for internal load balancing.
|
||||
- "(not used for external load balancing) ."
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
ipVersion:
|
||||
description:
|
||||
- The IP Version that will be used by this forwarding rule. Valid options are
|
||||
|
@ -156,7 +156,7 @@ items:
|
|||
specified, the default network will be used.
|
||||
- This field is not used for external load balancing.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
portRange:
|
||||
description:
|
||||
- This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy,
|
||||
|
@ -191,7 +191,7 @@ items:
|
|||
if the network is in custom subnet mode, a subnetwork must be specified.
|
||||
- This field is not used for external load balancing.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
target:
|
||||
description:
|
||||
- A reference to a TargetPool resource to receive the matched traffic.
|
||||
|
@ -201,7 +201,7 @@ items:
|
|||
to the target object.
|
||||
- This field is not used for internal load balancing.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
networkTier:
|
||||
description:
|
||||
- 'The networking tier used for configuring this address. This field can take
|
||||
|
|
|
@ -49,6 +49,11 @@ options:
|
|||
- present
|
||||
- absent
|
||||
default: present
|
||||
address:
|
||||
description:
|
||||
- The static external IP address represented by this resource.
|
||||
required: false
|
||||
version_added: 2.8
|
||||
description:
|
||||
description:
|
||||
- An optional description of this resource.
|
||||
|
@ -170,6 +175,7 @@ def main():
|
|||
module = GcpModule(
|
||||
argument_spec=dict(
|
||||
state=dict(default='present', choices=['present', 'absent'], type='str'),
|
||||
address=dict(type='str'),
|
||||
description=dict(type='str'),
|
||||
name=dict(required=True, type='str'),
|
||||
ip_version=dict(type='str', choices=['IPV4', 'IPV6']),
|
||||
|
@ -225,6 +231,7 @@ def delete(module, link, kind):
|
|||
def resource_to_request(module):
|
||||
request = {
|
||||
u'kind': 'compute#address',
|
||||
u'address': module.params.get('address'),
|
||||
u'description': module.params.get('description'),
|
||||
u'name': module.params.get('name'),
|
||||
u'ipVersion': module.params.get('ip_version'),
|
||||
|
|
|
@ -98,10 +98,10 @@ options:
|
|||
- This is used for internal load balancing.
|
||||
- "(not used for external load balancing) ."
|
||||
- 'This field represents a link to a BackendService resource in GCP. It can be
|
||||
specified in two ways. You can add `register: name-of-resource` to a gcp_compute_backend_service
|
||||
task and then set this backend_service field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this backend_service to a dictionary with the selfLink key where
|
||||
the value is the selfLink of your BackendService'
|
||||
specified in two ways. First, you can place in the selfLink of the resource
|
||||
here as a string Alternatively, you can add `register: name-of-resource` to
|
||||
a gcp_compute_backend_service task and then set this backend_service field to
|
||||
"{{ name-of-resource }}"'
|
||||
required: false
|
||||
ip_version:
|
||||
description:
|
||||
|
@ -138,10 +138,9 @@ options:
|
|||
specified, the default network will be used.
|
||||
- This field is not used for external load balancing.
|
||||
- 'This field represents a link to a Network resource in GCP. It can be specified
|
||||
in two ways. You can add `register: name-of-resource` to a gcp_compute_network
|
||||
task and then set this network field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this network to a dictionary with the selfLink key where the value
|
||||
is the selfLink of your Network'
|
||||
in two ways. First, you can place in the selfLink of the resource here as a
|
||||
string Alternatively, you can add `register: name-of-resource` to a gcp_compute_network
|
||||
task and then set this network field to "{{ name-of-resource }}"'
|
||||
required: false
|
||||
port_range:
|
||||
description:
|
||||
|
@ -174,10 +173,9 @@ options:
|
|||
if the network is in custom subnet mode, a subnetwork must be specified.
|
||||
- This field is not used for external load balancing.
|
||||
- 'This field represents a link to a Subnetwork resource in GCP. It can be specified
|
||||
in two ways. You can add `register: name-of-resource` to a gcp_compute_subnetwork
|
||||
task and then set this subnetwork field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this subnetwork to a dictionary with the selfLink key where the
|
||||
value is the selfLink of your Subnetwork'
|
||||
in two ways. First, you can place in the selfLink of the resource here as a
|
||||
string Alternatively, you can add `register: name-of-resource` to a gcp_compute_subnetwork
|
||||
task and then set this subnetwork field to "{{ name-of-resource }}"'
|
||||
required: false
|
||||
target:
|
||||
description:
|
||||
|
@ -321,7 +319,7 @@ backendService:
|
|||
- This is used for internal load balancing.
|
||||
- "(not used for external load balancing) ."
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
ipVersion:
|
||||
description:
|
||||
- The IP Version that will be used by this forwarding rule. Valid options are IPV4
|
||||
|
@ -354,7 +352,7 @@ network:
|
|||
the default network will be used.
|
||||
- This field is not used for external load balancing.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
portRange:
|
||||
description:
|
||||
- This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy,
|
||||
|
@ -387,7 +385,7 @@ subnetwork:
|
|||
if the network is in custom subnet mode, a subnetwork must be specified.
|
||||
- This field is not used for external load balancing.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
region:
|
||||
description:
|
||||
- A reference to the region where the regional forwarding rule resides.
|
||||
|
@ -425,14 +423,14 @@ def main():
|
|||
description=dict(type='str'),
|
||||
ip_address=dict(type='str'),
|
||||
ip_protocol=dict(type='str', choices=['TCP', 'UDP', 'ESP', 'AH', 'SCTP', 'ICMP']),
|
||||
backend_service=dict(type='dict'),
|
||||
backend_service=dict(),
|
||||
ip_version=dict(type='str', choices=['IPV4', 'IPV6']),
|
||||
load_balancing_scheme=dict(type='str', choices=['INTERNAL', 'EXTERNAL']),
|
||||
name=dict(required=True, type='str'),
|
||||
network=dict(type='dict'),
|
||||
network=dict(),
|
||||
port_range=dict(type='str'),
|
||||
ports=dict(type='list', elements='str'),
|
||||
subnetwork=dict(type='dict'),
|
||||
subnetwork=dict(),
|
||||
target=dict(type='str')
|
||||
)
|
||||
)
|
||||
|
|
|
@ -117,7 +117,7 @@ items:
|
|||
- This is used for internal load balancing.
|
||||
- "(not used for external load balancing) ."
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
ipVersion:
|
||||
description:
|
||||
- The IP Version that will be used by this forwarding rule. Valid options are
|
||||
|
@ -150,7 +150,7 @@ items:
|
|||
specified, the default network will be used.
|
||||
- This field is not used for external load balancing.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
portRange:
|
||||
description:
|
||||
- This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy,
|
||||
|
@ -185,7 +185,7 @@ items:
|
|||
if the network is in custom subnet mode, a subnetwork must be specified.
|
||||
- This field is not used for external load balancing.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
region:
|
||||
description:
|
||||
- A reference to the region where the regional forwarding rule resides.
|
||||
|
|
|
@ -112,6 +112,11 @@ options:
|
|||
- The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption
|
||||
key that protects this resource.
|
||||
required: false
|
||||
labels:
|
||||
description:
|
||||
- Labels to apply to this Image.
|
||||
required: false
|
||||
version_added: 2.8
|
||||
licenses:
|
||||
description:
|
||||
- Any applicable license URI.
|
||||
|
@ -147,16 +152,16 @@ options:
|
|||
description:
|
||||
- The full Google Cloud Storage URL where disk storage is stored You must
|
||||
provide either this property or the sourceDisk property but not both.
|
||||
required: false
|
||||
required: true
|
||||
source_disk:
|
||||
description:
|
||||
- Refers to a gcompute_disk object You must provide either this property or the
|
||||
rawDisk.source property but not both to create an image.
|
||||
- The source disk to create this image based on.
|
||||
- You must provide either this property or the rawDisk.source property but not
|
||||
both to create an image.
|
||||
- 'This field represents a link to a Disk resource in GCP. It can be specified
|
||||
in two ways. You can add `register: name-of-resource` to a gcp_compute_disk
|
||||
task and then set this source_disk field to "{{ name-of-resource }}" Alternatively,
|
||||
you can set this source_disk to a dictionary with the selfLink key where the
|
||||
value is the selfLink of your Disk'
|
||||
in two ways. First, you can place in the selfLink of the resource here as a
|
||||
string Alternatively, you can add `register: name-of-resource` to a gcp_compute_disk
|
||||
task and then set this source_disk field to "{{ name-of-resource }}"'
|
||||
required: false
|
||||
source_disk_encryption_key:
|
||||
description:
|
||||
|
@ -188,6 +193,9 @@ options:
|
|||
choices:
|
||||
- RAW
|
||||
extends_documentation_fragment: gcp
|
||||
notes:
|
||||
- 'API Reference: U(https://cloud.google.com/compute/docs/reference/latest/images)'
|
||||
- 'Official Documentation: U(https://cloud.google.com/compute/docs/images)'
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
|
@ -330,6 +338,17 @@ imageEncryptionKey:
|
|||
key that protects this resource.
|
||||
returned: success
|
||||
type: str
|
||||
labels:
|
||||
description:
|
||||
- Labels to apply to this Image.
|
||||
returned: success
|
||||
type: dict
|
||||
labelFingerprint:
|
||||
description:
|
||||
- The fingerprint used for optimistic locking of this resource. Used internally
|
||||
during updates.
|
||||
returned: success
|
||||
type: str
|
||||
licenses:
|
||||
description:
|
||||
- Any applicable license URI.
|
||||
|
@ -372,10 +391,11 @@ rawDisk:
|
|||
type: str
|
||||
sourceDisk:
|
||||
description:
|
||||
- Refers to a gcompute_disk object You must provide either this property or the
|
||||
rawDisk.source property but not both to create an image.
|
||||
- The source disk to create this image based on.
|
||||
- You must provide either this property or the rawDisk.source property but not both
|
||||
to create an image.
|
||||
returned: success
|
||||
type: dict
|
||||
type: str
|
||||
sourceDiskEncryptionKey:
|
||||
description:
|
||||
- The customer-supplied encryption key of the source disk. Required if the source
|
||||
|
@ -439,14 +459,15 @@ def main():
|
|||
raw_key=dict(type='str'),
|
||||
sha256=dict(type='str')
|
||||
)),
|
||||
labels=dict(type='dict'),
|
||||
licenses=dict(type='list', elements='str'),
|
||||
name=dict(required=True, type='str'),
|
||||
raw_disk=dict(type='dict', options=dict(
|
||||
container_type=dict(type='str', choices=['TAR']),
|
||||
sha1_checksum=dict(type='str'),
|
||||
source=dict(type='str')
|
||||
source=dict(required=True, type='str')
|
||||
)),
|
||||
source_disk=dict(type='dict'),
|
||||
source_disk=dict(),
|
||||
source_disk_encryption_key=dict(type='dict', options=dict(
|
||||
raw_key=dict(type='str'),
|
||||
sha256=dict(type='str')
|
||||
|
@ -468,7 +489,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:
|
||||
|
@ -492,9 +513,29 @@ def create(module, link, kind):
|
|||
return wait_for_operation(module, auth.post(link, resource_to_request(module)))
|
||||
|
||||
|
||||
def update(module, link, kind):
|
||||
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('labels') != request.get('labels'):
|
||||
labels_update(module, request, response)
|
||||
|
||||
|
||||
def labels_update(module, request, response):
|
||||
auth = GcpSession(module, 'compute')
|
||||
return wait_for_operation(module, auth.put(link, resource_to_request(module)))
|
||||
auth.post(
|
||||
''.join([
|
||||
"https://www.googleapis.com/compute/v1/",
|
||||
"projects/{project}/global/images/{name}/setLabels"
|
||||
]).format(**module.params),
|
||||
{
|
||||
u'labels': module.params.get('labels'),
|
||||
u'labelFingerprint': response.get('labelFingerprint')
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def delete(module, link, kind):
|
||||
|
@ -510,6 +551,7 @@ def resource_to_request(module):
|
|||
u'family': module.params.get('family'),
|
||||
u'guestOsFeatures': ImageGuestosfeaturesArray(module.params.get('guest_os_features', []), module).to_request(),
|
||||
u'imageEncryptionKey': ImageImageencryptionkey(module.params.get('image_encryption_key', {}), module).to_request(),
|
||||
u'labels': module.params.get('labels'),
|
||||
u'licenses': module.params.get('licenses'),
|
||||
u'name': module.params.get('name'),
|
||||
u'rawDisk': ImageRawdisk(module.params.get('raw_disk', {}), module).to_request(),
|
||||
|
@ -591,6 +633,8 @@ def response_to_hash(module, response):
|
|||
u'guestOsFeatures': ImageGuestosfeaturesArray(response.get(u'guestOsFeatures', []), module).from_response(),
|
||||
u'id': response.get(u'id'),
|
||||
u'imageEncryptionKey': ImageImageencryptionkey(response.get(u'imageEncryptionKey', {}), module).from_response(),
|
||||
u'labels': response.get(u'labels'),
|
||||
u'labelFingerprint': response.get(u'labelFingerprint'),
|
||||
u'licenses': response.get(u'licenses'),
|
||||
u'name': response.get(u'name'),
|
||||
u'rawDisk': ImageRawdisk(response.get(u'rawDisk', {}), module).from_response(),
|
||||
|
|
|
@ -129,6 +129,7 @@
|
|||
- result.has_key('kind') == False
|
||||
#---------------------------------------------------------
|
||||
# Post-test teardown
|
||||
# If errors happen, don't crash the playbook!
|
||||
- name: delete a bucket
|
||||
gcp_storage_bucket:
|
||||
name: "bucket-backendbucket"
|
||||
|
@ -137,3 +138,4 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: bucket
|
||||
ignore_errors: true
|
||||
|
|
|
@ -152,6 +152,7 @@
|
|||
- result.has_key('kind') == False
|
||||
#---------------------------------------------------------
|
||||
# Post-test teardown
|
||||
# If errors happen, don't crash the playbook!
|
||||
- name: delete a http health check
|
||||
gcp_compute_http_health_check:
|
||||
name: "httphealthcheck-backendservice"
|
||||
|
@ -164,6 +165,7 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: healthcheck
|
||||
ignore_errors: true
|
||||
- name: delete a instance group
|
||||
gcp_compute_instance_group:
|
||||
name: "instancegroup-backendservice"
|
||||
|
@ -173,3 +175,4 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: instancegroup
|
||||
ignore_errors: true
|
||||
|
|
|
@ -151,6 +151,7 @@
|
|||
- result.has_key('kind') == False
|
||||
#---------------------------------------------------------
|
||||
# Post-test teardown
|
||||
# If errors happen, don't crash the playbook!
|
||||
- name: delete a target pool
|
||||
gcp_compute_target_pool:
|
||||
name: "targetpool-forwardingrule"
|
||||
|
@ -160,6 +161,7 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: targetpool
|
||||
ignore_errors: true
|
||||
- name: delete a address
|
||||
gcp_compute_address:
|
||||
name: "address-forwardingrule"
|
||||
|
@ -169,3 +171,4 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: address
|
||||
ignore_errors: true
|
||||
|
|
|
@ -186,6 +186,7 @@
|
|||
- result.has_key('kind') == False
|
||||
#---------------------------------------------------------
|
||||
# Post-test teardown
|
||||
# If errors happen, don't crash the playbook!
|
||||
- name: delete a target http proxy
|
||||
gcp_compute_target_http_proxy:
|
||||
name: "targethttpproxy-globalforwardingrule"
|
||||
|
@ -195,6 +196,7 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: httpproxy
|
||||
ignore_errors: true
|
||||
- name: delete a url map
|
||||
gcp_compute_url_map:
|
||||
name: "urlmap-globalforwardingrule"
|
||||
|
@ -204,6 +206,7 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: urlmap
|
||||
ignore_errors: true
|
||||
- name: delete a backend service
|
||||
gcp_compute_backend_service:
|
||||
name: "backendservice-globalforwardingrule"
|
||||
|
@ -217,6 +220,7 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: backendservice
|
||||
ignore_errors: true
|
||||
- name: delete a http health check
|
||||
gcp_compute_http_health_check:
|
||||
name: "httphealthcheck-globalforwardingrule"
|
||||
|
@ -229,6 +233,7 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: healthcheck
|
||||
ignore_errors: true
|
||||
- name: delete a instance group
|
||||
gcp_compute_instance_group:
|
||||
name: "instancegroup-globalforwardingrule"
|
||||
|
@ -238,6 +243,7 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: instancegroup
|
||||
ignore_errors: true
|
||||
- name: delete a global address
|
||||
gcp_compute_global_address:
|
||||
name: "globaladdress-globalforwardingrule"
|
||||
|
@ -246,3 +252,4 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: globaladdress
|
||||
ignore_errors: true
|
||||
|
|
|
@ -120,6 +120,7 @@
|
|||
- result.has_key('kind') == False
|
||||
#---------------------------------------------------------
|
||||
# Post-test teardown
|
||||
# If errors happen, don't crash the playbook!
|
||||
- name: delete a disk
|
||||
gcp_compute_disk:
|
||||
name: "disk-image"
|
||||
|
@ -129,3 +130,4 @@
|
|||
service_account_file: "{{ gcp_cred_file }}"
|
||||
state: absent
|
||||
register: disk
|
||||
ignore_errors: true
|
||||
|
|
Loading…
Reference in a new issue