blob: fb5768a7cafb7bb1443a09367142fd8faad8455c [file] [log] [blame]
:mod:`airflow.contrib.operators.gcp_compute_operator`
=====================================================
.. py:module:: airflow.contrib.operators.gcp_compute_operator
Module Contents
---------------
.. py:class:: GceBaseOperator(zone, resource_id, project_id=None, gcp_conn_id='google_cloud_default', api_version='v1', *args, **kwargs)
Bases: :class:`airflow.models.BaseOperator`
Abstract base operator for Google Compute Engine operators to inherit from.
.. method:: _validate_inputs(self)
.. method:: execute(self, context)
.. py:class:: GceInstanceStartOperator(zone, resource_id, project_id=None, gcp_conn_id='google_cloud_default', api_version='v1', *args, **kwargs)
Bases: :class:`airflow.contrib.operators.gcp_compute_operator.GceBaseOperator`
Starts an instance in Google Compute Engine.
.. seealso::
For more information on how to use this operator, take a look at the guide:
:ref:`howto/operator:GceInstanceStartOperator`
:param zone: Google Cloud Platform zone where the instance exists.
:type zone: str
:param resource_id: Name of the Compute Engine instance resource.
:type resource_id: str
:param project_id: Optional, Google Cloud Platform Project ID where the Compute
Engine Instance exists. If set to None or missing, the default project_id from the GCP connection is
used.
:type project_id: str
:param gcp_conn_id: Optional, The connection ID used to connect to Google Cloud
Platform. Defaults to 'google_cloud_default'.
:type gcp_conn_id: str
:param api_version: Optional, API version used (for example v1 - or beta). Defaults
to v1.
:type api_version: str
:param validate_body: Optional, If set to False, body validation is not performed.
Defaults to False.
.. attribute:: template_fields
:annotation: = ['project_id', 'zone', 'resource_id', 'gcp_conn_id', 'api_version']
.. method:: execute(self, context)
.. py:class:: GceInstanceStopOperator(zone, resource_id, project_id=None, gcp_conn_id='google_cloud_default', api_version='v1', *args, **kwargs)
Bases: :class:`airflow.contrib.operators.gcp_compute_operator.GceBaseOperator`
Stops an instance in Google Compute Engine.
.. seealso::
For more information on how to use this operator, take a look at the guide:
:ref:`howto/operator:GceInstanceStopOperator`
:param zone: Google Cloud Platform zone where the instance exists.
:type zone: str
:param resource_id: Name of the Compute Engine instance resource.
:type resource_id: str
:param project_id: Optional, Google Cloud Platform Project ID where the Compute
Engine Instance exists. If set to None or missing, the default project_id from the GCP connection is
used.
:type project_id: str
:param gcp_conn_id: Optional, The connection ID used to connect to Google Cloud
Platform. Defaults to 'google_cloud_default'.
:type gcp_conn_id: str
:param api_version: Optional, API version used (for example v1 - or beta). Defaults
to v1.
:type api_version: str
:param validate_body: Optional, If set to False, body validation is not performed.
Defaults to False.
.. attribute:: template_fields
:annotation: = ['project_id', 'zone', 'resource_id', 'gcp_conn_id', 'api_version']
.. method:: execute(self, context)
.. data:: SET_MACHINE_TYPE_VALIDATION_SPECIFICATION
.. py:class:: GceSetMachineTypeOperator(zone, resource_id, body, project_id=None, gcp_conn_id='google_cloud_default', api_version='v1', validate_body=True, *args, **kwargs)
Bases: :class:`airflow.contrib.operators.gcp_compute_operator.GceBaseOperator`
Changes the machine type for a stopped instance to the machine type specified in
the request.
.. seealso::
For more information on how to use this operator, take a look at the guide:
:ref:`howto/operator:GceSetMachineTypeOperator`
:param zone: Google Cloud Platform zone where the instance exists.
:type zone: str
:param resource_id: Name of the Compute Engine instance resource.
:type resource_id: str
:param body: Body required by the Compute Engine setMachineType API, as described in
https://cloud.google.com/compute/docs/reference/rest/v1/instances/setMachineType#request-body
:type body: dict
:param project_id: Optional, Google Cloud Platform Project ID where the Compute
Engine Instance exists. If set to None or missing, the default project_id from the GCP connection
is used.
:type project_id: str
:param gcp_conn_id: Optional, The connection ID used to connect to Google Cloud
Platform. Defaults to 'google_cloud_default'.
:type gcp_conn_id: str
:param api_version: Optional, API version used (for example v1 - or beta). Defaults
to v1.
:type api_version: str
:param validate_body: Optional, If set to False, body validation is not performed.
Defaults to False.
:type validate_body: bool
.. attribute:: template_fields
:annotation: = ['project_id', 'zone', 'resource_id', 'gcp_conn_id', 'api_version']
.. method:: _validate_all_body_fields(self)
.. method:: execute(self, context)
.. data:: GCE_INSTANCE_TEMPLATE_VALIDATION_PATCH_SPECIFICATION
.. data:: GCE_INSTANCE_TEMPLATE_FIELDS_TO_SANITIZE
:annotation: = ['kind', 'id', 'name', 'creationTimestamp', 'properties.disks.sha256', 'properties.disks.kind', 'properties.disks.sourceImageEncryptionKey.sha256', 'properties.disks.index', 'properties.disks.licenses', 'properties.networkInterfaces.kind', 'properties.networkInterfaces.accessConfigs.kind', 'properties.networkInterfaces.name', 'properties.metadata.kind', 'selfLink']
.. py:class:: GceInstanceTemplateCopyOperator(resource_id, body_patch, project_id=None, request_id=None, gcp_conn_id='google_cloud_default', api_version='v1', validate_body=True, *args, **kwargs)
Bases: :class:`airflow.contrib.operators.gcp_compute_operator.GceBaseOperator`
Copies the instance template, applying specified changes.
.. seealso::
For more information on how to use this operator, take a look at the guide:
:ref:`howto/operator:GceInstanceTemplateCopyOperator`
:param resource_id: Name of the Instance Template
:type resource_id: str
:param body_patch: Patch to the body of instanceTemplates object following rfc7386
PATCH semantics. The body_patch content follows
https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates
Name field is required as we need to rename the template,
all the other fields are optional. It is important to follow PATCH semantics
- arrays are replaced fully, so if you need to update an array you should
provide the whole target array as patch element.
:type body_patch: dict
:param project_id: Optional, Google Cloud Platform Project ID where the Compute
Engine Instance exists. If set to None or missing, the default project_id from the GCP connection
is used.
:type project_id: str
:param request_id: Optional, unique request_id that you might add to achieve
full idempotence (for example when client call times out repeating the request
with the same request id will not create a new instance template again).
It should be in UUID format as defined in RFC 4122.
:type request_id: str
:param gcp_conn_id: Optional, The connection ID used to connect to Google Cloud
Platform. Defaults to 'google_cloud_default'.
:type gcp_conn_id: str
:param api_version: Optional, API version used (for example v1 - or beta). Defaults
to v1.
:type api_version: str
:param validate_body: Optional, If set to False, body validation is not performed.
Defaults to False.
:type validate_body: bool
.. attribute:: template_fields
:annotation: = ['project_id', 'resource_id', 'request_id', 'gcp_conn_id', 'api_version']
.. method:: _validate_all_body_fields(self)
.. method:: execute(self, context)
.. py:class:: GceInstanceGroupManagerUpdateTemplateOperator(resource_id, zone, source_template, destination_template, project_id=None, update_policy=None, request_id=None, gcp_conn_id='google_cloud_default', api_version='beta', *args, **kwargs)
Bases: :class:`airflow.contrib.operators.gcp_compute_operator.GceBaseOperator`
Patches the Instance Group Manager, replacing source template URL with the
destination one. API V1 does not have update/patch operations for Instance
Group Manager, so you must use beta or newer API version. Beta is the default.
.. seealso::
For more information on how to use this operator, take a look at the guide:
:ref:`howto/operator:GceInstanceGroupManagerUpdateTemplateOperator`
:param resource_id: Name of the Instance Group Manager
:type resource_id: str
:param zone: Google Cloud Platform zone where the Instance Group Manager exists.
:type zone: str
:param source_template: URL of the template to replace.
:type source_template: str
:param destination_template: URL of the target template.
:type destination_template: str
:param project_id: Optional, Google Cloud Platform Project ID where the Compute
Engine Instance exists. If set to None or missing, the default project_id from the GCP connection is
used.
:type project_id: str
:param request_id: Optional, unique request_id that you might add to achieve
full idempotence (for example when client call times out repeating the request
with the same request id will not create a new instance template again).
It should be in UUID format as defined in RFC 4122.
:type request_id: str
:param gcp_conn_id: Optional, The connection ID used to connect to Google Cloud
Platform. Defaults to 'google_cloud_default'.
:type gcp_conn_id: str
:param api_version: Optional, API version used (for example v1 - or beta). Defaults
to v1.
:type api_version: str
:param validate_body: Optional, If set to False, body validation is not performed.
Defaults to False.
:type validate_body: bool
.. attribute:: template_fields
:annotation: = ['project_id', 'resource_id', 'zone', 'request_id', 'source_template', 'destination_template', 'gcp_conn_id', 'api_version']
.. method:: _possibly_replace_template(self, dictionary)
.. method:: execute(self, context)