mirror of
				https://github.com/ansible-collections/google.cloud.git
				synced 2025-10-26 13:56:17 -07:00 
			
		
		
		
	Bug fixes for GCP modules (as of 2019-01-09T15:35:45-08:00) (#50783)
This commit is contained in:
		
					parent
					
						
							
								87d1c171c5
							
						
					
				
			
			
				commit
				
					
						fea1568acd
					
				
			
		
					 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…
	
	Add table
		Add a link
		
	
		Reference in a new issue