add RegionDiskType

This commit is contained in:
Dana Hoffman 2018-08-16 18:18:40 +00:00 committed by Alex Stephen
commit 3382f7f7b2

View file

@ -89,6 +89,15 @@ options:
of sizeGb must not be less than the size of the sourceImage or the size of the of sizeGb must not be less than the size of the sourceImage or the size of the
snapshot. snapshot.
required: false required: false
physical_block_size_bytes:
description:
- Physical block size of the persistent disk, in bytes. If not present in a request,
a default value is used. Currently supported sizes are 4096 and 16384, other
sizes may be added in the future.
- If an unsupported value is requested, the error message will list the supported
values for the caller's project.
required: false
version_added: 2.8
type: type:
description: description:
- URL of the disk type resource describing which disk type to use to create the - URL of the disk type resource describing which disk type to use to create the
@ -124,11 +133,6 @@ options:
- Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648
base64 to either encrypt or decrypt this resource. base64 to either encrypt or decrypt this resource.
required: false required: false
sha256:
description:
- The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption
key that protects this resource.
required: false
kms_key_name: kms_key_name:
description: description:
- The name of the encryption key that is stored in Google Cloud KMS. - The name of the encryption key that is stored in Google Cloud KMS.
@ -150,11 +154,6 @@ options:
- Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648
base64 to either encrypt or decrypt this resource. base64 to either encrypt or decrypt this resource.
required: false required: false
sha256:
description:
- The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption
key that protects this resource.
required: false
kms_key_name: kms_key_name:
description: description:
- The name of the encryption key that is stored in Google Cloud KMS. - The name of the encryption key that is stored in Google Cloud KMS.
@ -164,9 +163,10 @@ options:
- The source snapshot used to create this disk. You can provide this as a partial - The source snapshot used to create this disk. You can provide this as a partial
or full URL to the resource. or full URL to the resource.
- 'This field represents a link to a Snapshot resource in GCP. It can be specified - 'This field represents a link to a Snapshot resource in GCP. It can be specified
in two ways. First, you can place in the selfLink of the resource here as a in two ways. First, you can place a dictionary with key ''selfLink'' and value
string Alternatively, you can add `register: name-of-resource` to a gcp_compute_snapshot of your resource''s selfLink Alternatively, you can add `register: name-of-resource`
task and then set this source_snapshot field to "{{ name-of-resource }}"' to a gcp_compute_snapshot task and then set this source_snapshot field to "{{
name-of-resource }}"'
required: false required: false
source_snapshot_encryption_key: source_snapshot_encryption_key:
description: description:
@ -183,226 +183,201 @@ options:
description: description:
- The name of the encryption key that is stored in Google Cloud KMS. - The name of the encryption key that is stored in Google Cloud KMS.
required: false required: false
sha256:
description:
- The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption
key that protects this resource.
required: false
extends_documentation_fragment: gcp extends_documentation_fragment: gcp
notes: notes:
- 'API Reference: U(https://cloud.google.com/compute/docs/reference/latest/disks)' - 'API Reference: U(https://cloud.google.com/compute/docs/reference/v1/disks)'
- 'Adding a persistent disk: U(https://cloud.google.com/compute/docs/disks/add-persistent-disk)' - 'Adding a persistent disk: U(https://cloud.google.com/compute/docs/disks/add-persistent-disk)'
''' '''
EXAMPLES = ''' EXAMPLES = '''
- name: create a disk - name: create a disk
gcp_compute_disk: gcp_compute_disk:
name: "test_object" name: test_object
size_gb: 50 size_gb: 50
disk_encryption_key: disk_encryption_key:
raw_key: SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0= raw_key: SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=
zone: us-central1-a zone: us-central1-a
project: "test_project" project: test_project
auth_kind: "serviceaccount" auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem" service_account_file: "/tmp/auth.pem"
state: present state: present
''' '''
RETURN = ''' RETURN = '''
labelFingerprint: creation_timestamp:
description:
- The fingerprint used for optimistic locking of this resource. Used internally
during updates.
returned: success
type: str
creationTimestamp:
description: description:
- Creation timestamp in RFC3339 text format. - Creation timestamp in RFC3339 text format.
returned: success returned: success
type: str type: str
description: description:
description: description:
- An optional description of this resource. Provide this property when you create - An optional description of this resource. Provide this property when you create
the resource. the resource.
returned: success returned: success
type: str type: str
id: id:
description: description:
- The unique identifier for the resource. - The unique identifier for the resource.
returned: success returned: success
type: int type: int
lastAttachTimestamp: last_attach_timestamp:
description: description:
- Last attach timestamp in RFC3339 text format. - Last attach timestamp in RFC3339 text format.
returned: success returned: success
type: str type: str
lastDetachTimestamp: last_detach_timestamp:
description: description:
- Last dettach timestamp in RFC3339 text format. - Last dettach timestamp in RFC3339 text format.
returned: success returned: success
type: str type: str
labels: labels:
description: description:
- Labels to apply to this disk. A list of key->value pairs. - Labels to apply to this disk. A list of key->value pairs.
returned: success returned: success
type: dict type: dict
licenses: licenses:
description: description:
- Any applicable publicly visible licenses. - Any applicable publicly visible licenses.
returned: success returned: success
type: list type: list
name: name:
description: description:
- Name of the resource. Provided by the client when the resource is created. The - Name of the resource. Provided by the client when the resource is created. The name
name must be 1-63 characters long, and comply with RFC1035. Specifically, the must be 1-63 characters long, and comply with RFC1035. Specifically, the name must
name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
which means the first character must be a lowercase letter, and all following which means the first character must be a lowercase letter, and all following characters
characters must be a dash, lowercase letter, or digit, except the last character, must be a dash, lowercase letter, or digit, except the last character, which cannot
which cannot be a dash. be a dash.
returned: success returned: success
type: str type: str
sizeGb: size_gb:
description: description:
- Size of the persistent disk, specified in GB. You can specify this field when - Size of the persistent disk, specified in GB. You can specify this field when creating
creating a persistent disk using the sourceImage or sourceSnapshot parameter, a persistent disk using the sourceImage or sourceSnapshot parameter, or specify
or specify it alone to create an empty persistent disk. it alone to create an empty persistent disk.
- If you specify this field along with sourceImage or sourceSnapshot, the value - If you specify this field along with sourceImage or sourceSnapshot, the value of
of sizeGb must not be less than the size of the sourceImage or the size of the sizeGb must not be less than the size of the sourceImage or the size of the snapshot.
snapshot.
returned: success returned: success
type: int type: int
users: users:
description: description:
- 'Links to the users of the disk (attached instances) in form: project/zones/zone/instances/instance - 'Links to the users of the disk (attached instances) in form: project/zones/zone/instances/instance
.' .'
returned: success returned: success
type: list type: list
type: type:
description: description:
- URL of the disk type resource describing which disk type to use to create the - URL of the disk type resource describing which disk type to use to create the disk.
disk. Provide this when creating the disk. Provide this when creating the disk.
returned: success returned: success
type: str type: str
sourceImage: source_image:
description: description:
- The source image used to create this disk. If the source image is deleted, this - The source image used to create this disk. If the source image is deleted, this
field will not be set. field will not be set.
- 'To create a disk with one of the public operating system images, specify the - 'To create a disk with one of the public operating system images, specify the image
image by its family name. For example, specify family/debian-8 to use the latest by its family name. For example, specify family/debian-8 to use the latest Debian
Debian 8 image: projects/debian-cloud/global/images/family/debian-8 Alternatively, 8 image: projects/debian-cloud/global/images/family/debian-8 Alternatively, use
use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD a specific version of a public operating system image: projects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD To
To create a disk with a private image that you created, specify the image name create a disk with a private image that you created, specify the image name in the
in the following format: global/images/my-private-image You can also specify a following format: global/images/my-private-image You can also specify a private
private image by its image family, which returns the latest version of the image image by its image family, which returns the latest version of the image in that
in that family. Replace the image name with family/family-name: global/images/family/my-private-family family. Replace the image name with family/family-name: global/images/family/my-private-family
.' .'
returned: success returned: success
type: str type: str
zone: zone:
description: description:
- A reference to the zone where the disk resides. - A reference to the zone where the disk resides.
returned: success returned: success
type: str type: str
sourceImageEncryptionKey: source_image_encryption_key:
description: description:
- The customer-supplied encryption key of the source image. Required if the source - The customer-supplied encryption key of the source image. Required if the source
image is protected by a customer-supplied encryption key. image is protected by a customer-supplied encryption key.
returned: success returned: success
type: complex type: complex
contains: contains:
rawKey: raw_key:
description: description:
- Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64
base64 to either encrypt or decrypt this resource. to either encrypt or decrypt this resource.
returned: success returned: success
type: str type: str
sha256: sha256:
description: description:
- The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key
key that protects this resource. that protects this resource.
returned: success returned: success
type: str type: str
kmsKeyName: source_image_id:
description: description:
- The name of the encryption key that is stored in Google Cloud KMS. - The ID value of the image used to create this disk. This value identifies the exact
image that was used to create this persistent disk. For example, if you created
the persistent disk from an image that was later deleted and recreated under the
same name, the source image ID would identify the exact version of the image that
was used.
returned: success returned: success
type: str type: str
sourceImageId: disk_encryption_key:
description:
- The ID value of the image used to create this disk. This value identifies the
exact image that was used to create this persistent disk. For example, if you
created the persistent disk from an image that was later deleted and recreated
under the same name, the source image ID would identify the exact version of the
image that was used.
returned: success
type: str
diskEncryptionKey:
description: description:
- Encrypts the disk using a customer-supplied encryption key. - Encrypts the disk using a customer-supplied encryption key.
- After you encrypt a disk with a customer-supplied key, you must provide the same - After you encrypt a disk with a customer-supplied key, you must provide the same
key if you use the disk later (e.g. to create a disk snapshot or an image, or key if you use the disk later (e.g. to create a disk snapshot or an image, or to
to attach the disk to a virtual machine). attach the disk to a virtual machine).
- Customer-supplied encryption keys do not protect access to metadata of the disk. - Customer-supplied encryption keys do not protect access to metadata of the disk.
- If you do not provide an encryption key when creating the disk, then the disk - If you do not provide an encryption key when creating the disk, then the disk will
will be encrypted using an automatically generated key and you do not need to be encrypted using an automatically generated key and you do not need to provide
provide a key to use the disk later. a key to use the disk later.
returned: success returned: success
type: complex type: complex
contains: contains:
rawKey: raw_key:
description: description:
- Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64
base64 to either encrypt or decrypt this resource. to either encrypt or decrypt this resource.
returned: success returned: success
type: str type: str
sha256: sha256:
description: description:
- The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key
key that protects this resource. that protects this resource.
returned: success returned: success
type: str type: str
kmsKeyName: source_snapshot:
description: description:
- The name of the encryption key that is stored in Google Cloud KMS. - 'The source snapshot used to create this disk. You can provide this as a partial or
full URL to the resource. For example, the following are valid values: *
`U(https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot`)
* `projects/project/global/snapshots/snapshot` * `global/snapshots/snapshot` .'
returned: success returned: success
type: str type: dict
sourceSnapshot: source_snapshot_encryption_key:
description:
- The source snapshot used to create this disk. You can provide this as a partial
or full URL to the resource.
returned: success
type: str
sourceSnapshotEncryptionKey:
description: description:
- The customer-supplied encryption key of the source snapshot. Required if the source - The customer-supplied encryption key of the source snapshot. Required if the source
snapshot is protected by a customer-supplied encryption key. snapshot is protected by a customer-supplied encryption key.
returned: success returned: success
type: complex type: complex
contains: contains:
rawKey: raw_key:
description: description:
- Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64
base64 to either encrypt or decrypt this resource. to either encrypt or decrypt this resource.
returned: success
type: str
kmsKeyName:
description:
- The name of the encryption key that is stored in Google Cloud KMS.
returned: success returned: success
type: str type: str
sha256: sha256:
description: description:
- The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key
key that protects this resource. that protects this resource.
returned: success returned: success
type: str type: str
sourceSnapshotId: source_snapshot_id:
description: description:
- The unique ID of the snapshot used to create this disk. This value identifies - The unique ID of the snapshot used to create this disk. This value identifies the
the exact snapshot that was used to create this persistent disk. For example, exact snapshot that was used to create this persistent disk. For example, if you
if you created the persistent disk from a snapshot that was later deleted and created the persistent disk from a snapshot that was later deleted and recreated
recreated under the same name, the source snapshot ID would identify the exact under the same name, the source snapshot ID would identify the exact version of
version of the snapshot that was used. the snapshot that was used.
returned: success returned: success
type: str type: str
''' '''
@ -432,13 +407,14 @@ def main():
licenses=dict(type='list', elements='str'), licenses=dict(type='list', elements='str'),
name=dict(required=True, type='str'), name=dict(required=True, type='str'),
size_gb=dict(type='int'), size_gb=dict(type='int'),
physical_block_size_bytes=dict(type='int'),
type=dict(type='str'), type=dict(type='str'),
source_image=dict(type='str'), source_image=dict(type='str'),
zone=dict(required=True, type='str'), zone=dict(required=True, type='str'),
source_image_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'), sha256=dict(type='str'), kms_key_name=dict(type='str'))), source_image_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'), kms_key_name=dict(type='str'))),
disk_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'), sha256=dict(type='str'), kms_key_name=dict(type='str'))), disk_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'), kms_key_name=dict(type='str'))),
source_snapshot=dict(), source_snapshot=dict(type='dict'),
source_snapshot_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'), kms_key_name=dict(type='str'), sha256=dict(type='str'))), source_snapshot_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'), kms_key_name=dict(type='str'))),
) )
) )
@ -522,6 +498,7 @@ def resource_to_request(module):
u'licenses': module.params.get('licenses'), u'licenses': module.params.get('licenses'),
u'name': module.params.get('name'), u'name': module.params.get('name'),
u'sizeGb': module.params.get('size_gb'), u'sizeGb': module.params.get('size_gb'),
u'physicalBlockSizeBytes': module.params.get('physical_block_size_bytes'),
u'type': disk_type_selflink(module.params.get('type'), module.params), u'type': disk_type_selflink(module.params.get('type'), module.params),
u'sourceImage': module.params.get('source_image'), u'sourceImage': module.params.get('source_image'),
} }
@ -601,7 +578,7 @@ def response_to_hash(module, response):
u'sizeGb': response.get(u'sizeGb'), u'sizeGb': response.get(u'sizeGb'),
u'users': response.get(u'users'), u'users': response.get(u'users'),
u'type': response.get(u'type'), u'type': response.get(u'type'),
u'sourceImage': module.params.get('source_image'), u'sourceImage': module.params.get('source_image')
} }
@ -658,14 +635,10 @@ class DiskSourceimageencryptionkey(object):
self.request = {} self.request = {}
def to_request(self): def to_request(self):
return remove_nones_from_dict( return remove_nones_from_dict({u'rawKey': self.request.get('raw_key'), u'kmsKeyName': self.request.get('kms_key_name')})
{u'rawKey': self.request.get('raw_key'), u'sha256': self.request.get('sha256'), u'kmsKeyName': self.request.get('kms_key_name')}
)
def from_response(self): def from_response(self):
return remove_nones_from_dict( return remove_nones_from_dict({u'rawKey': self.request.get(u'rawKey'), u'kmsKeyName': self.request.get(u'kmsKeyName')})
{u'rawKey': self.request.get(u'rawKey'), u'sha256': self.request.get(u'sha256'), u'kmsKeyName': self.request.get(u'kmsKeyName')}
)
class DiskDiskencryptionkey(object): class DiskDiskencryptionkey(object):
@ -677,14 +650,10 @@ class DiskDiskencryptionkey(object):
self.request = {} self.request = {}
def to_request(self): def to_request(self):
return remove_nones_from_dict( return remove_nones_from_dict({u'rawKey': self.request.get('raw_key'), u'kmsKeyName': self.request.get('kms_key_name')})
{u'rawKey': self.request.get('raw_key'), u'sha256': self.request.get('sha256'), u'kmsKeyName': self.request.get('kms_key_name')}
)
def from_response(self): def from_response(self):
return remove_nones_from_dict( return remove_nones_from_dict({u'rawKey': self.request.get(u'rawKey'), u'kmsKeyName': self.request.get(u'kmsKeyName')})
{u'rawKey': self.request.get(u'rawKey'), u'sha256': self.request.get(u'sha256'), u'kmsKeyName': self.request.get(u'kmsKeyName')}
)
class DiskSourcesnapshotencryptionkey(object): class DiskSourcesnapshotencryptionkey(object):
@ -696,14 +665,10 @@ class DiskSourcesnapshotencryptionkey(object):
self.request = {} self.request = {}
def to_request(self): def to_request(self):
return remove_nones_from_dict( return remove_nones_from_dict({u'rawKey': self.request.get('raw_key'), u'kmsKeyName': self.request.get('kms_key_name')})
{u'rawKey': self.request.get('raw_key'), u'kmsKeyName': self.request.get('kms_key_name'), u'sha256': self.request.get('sha256')}
)
def from_response(self): def from_response(self):
return remove_nones_from_dict( return remove_nones_from_dict({u'rawKey': self.request.get(u'rawKey'), u'kmsKeyName': self.request.get(u'kmsKeyName')})
{u'rawKey': self.request.get(u'rawKey'), u'kmsKeyName': self.request.get(u'kmsKeyName'), u'sha256': self.request.get(u'sha256')}
)
if __name__ == '__main__': if __name__ == '__main__':