| :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) |
| |
| |
| |
| |