airflow.providers.google.cloud.operators.compute

This module contains Google Compute Engine operators.

Module Contents

Classes

ComputeEngineBaseOperator

Abstract base operator for Google Compute Engine operators to inherit from.

ComputeEngineStartInstanceOperator

Starts an instance in Google Compute Engine.

ComputeEngineStopInstanceOperator

Stops an instance in Google Compute Engine.

ComputeEngineSetMachineTypeOperator

Changes the machine type for a stopped instance to the machine type specified in

ComputeEngineCopyInstanceTemplateOperator

Copies the instance template, applying specified changes.

ComputeEngineInstanceGroupUpdateManagerTemplateOperator

Patches the Instance Group Manager, replacing source template URL with the

Attributes

SET_MACHINE_TYPE_VALIDATION_SPECIFICATION

GCE_INSTANCE_TEMPLATE_VALIDATION_PATCH_SPECIFICATION

GCE_INSTANCE_TEMPLATE_FIELDS_TO_SANITIZE

class airflow.providers.google.cloud.operators.compute.ComputeEngineBaseOperator(*, zone, resource_id, project_id=None, gcp_conn_id='google_cloud_default', api_version='v1', impersonation_chain=None, **kwargs)[source]

Bases: airflow.models.BaseOperator

Abstract base operator for Google Compute Engine operators to inherit from.

execute(self, context)[source]

This is the main method to derive when creating an operator. Context is the same dictionary used as when rendering jinja templates.

Refer to get_template_context for more context.

class airflow.providers.google.cloud.operators.compute.ComputeEngineStartInstanceOperator(*, zone, resource_id, project_id=None, gcp_conn_id='google_cloud_default', api_version='v1', impersonation_chain=None, **kwargs)[source]

Bases: ComputeEngineBaseOperator

Starts an instance in Google Compute Engine.

See also

For more information on how to use this operator, take a look at the guide: ComputeEngineStartInstanceOperator

Parameters
  • zone (str) -- Google Cloud zone where the instance exists.

  • resource_id (str) -- Name of the Compute Engine instance resource.

  • project_id (Optional[str]) -- Optional, Google Cloud Project ID where the Compute Engine Instance exists. If set to None or missing, the default project_id from the Google Cloud connection is used.

  • gcp_conn_id (str) -- Optional, The connection ID used to connect to Google Cloud. Defaults to 'google_cloud_default'.

  • api_version (str) -- Optional, API version used (for example v1 - or beta). Defaults to v1.

  • impersonation_chain (Optional[Union[str, Sequence[str]]]) -- Optional service account to impersonate using short-term credentials, or chained list of accounts required to get the access_token of the last account in the list, which will be impersonated in the request. If set as a string, the account must grant the originating account the Service Account Token Creator IAM role. If set as a sequence, the identities from the list must grant Service Account Token Creator IAM role to the directly preceding identity, with first account from the list granting this role to the originating account (templated).

template_fields :Sequence[str] = ['project_id', 'zone', 'resource_id', 'gcp_conn_id', 'api_version', 'impersonation_chain'][source]
execute(self, context)[source]

This is the main method to derive when creating an operator. Context is the same dictionary used as when rendering jinja templates.

Refer to get_template_context for more context.

class airflow.providers.google.cloud.operators.compute.ComputeEngineStopInstanceOperator(*, zone, resource_id, project_id=None, gcp_conn_id='google_cloud_default', api_version='v1', impersonation_chain=None, **kwargs)[source]

Bases: ComputeEngineBaseOperator

Stops an instance in Google Compute Engine.

See also

For more information on how to use this operator, take a look at the guide: ComputeEngineStopInstanceOperator

Parameters
  • zone (str) -- Google Cloud zone where the instance exists.

  • resource_id (str) -- Name of the Compute Engine instance resource.

  • project_id (Optional[str]) -- Optional, Google Cloud Project ID where the Compute Engine Instance exists. If set to None or missing, the default project_id from the Google Cloud connection is used.

  • gcp_conn_id (str) -- Optional, The connection ID used to connect to Google Cloud. Defaults to 'google_cloud_default'.

  • api_version (str) -- Optional, API version used (for example v1 - or beta). Defaults to v1.

  • impersonation_chain (Optional[Union[str, Sequence[str]]]) -- Optional service account to impersonate using short-term credentials, or chained list of accounts required to get the access_token of the last account in the list, which will be impersonated in the request. If set as a string, the account must grant the originating account the Service Account Token Creator IAM role. If set as a sequence, the identities from the list must grant Service Account Token Creator IAM role to the directly preceding identity, with first account from the list granting this role to the originating account (templated).

template_fields :Sequence[str] = ['project_id', 'zone', 'resource_id', 'gcp_conn_id', 'api_version', 'impersonation_chain'][source]
execute(self, context)[source]

This is the main method to derive when creating an operator. Context is the same dictionary used as when rendering jinja templates.

Refer to get_template_context for more context.

airflow.providers.google.cloud.operators.compute.SET_MACHINE_TYPE_VALIDATION_SPECIFICATION[source]
class airflow.providers.google.cloud.operators.compute.ComputeEngineSetMachineTypeOperator(*, zone, resource_id, body, project_id=None, gcp_conn_id='google_cloud_default', api_version='v1', validate_body=True, impersonation_chain=None, **kwargs)[source]

Bases: ComputeEngineBaseOperator

Changes the machine type for a stopped instance to the machine type specified in

the request.

See also

For more information on how to use this operator, take a look at the guide: ComputeEngineSetMachineTypeOperator

Parameters
  • zone (str) -- Google Cloud zone where the instance exists.

  • resource_id (str) -- Name of the Compute Engine instance resource.

  • body (dict) -- Body required by the Compute Engine setMachineType API, as described in https://cloud.google.com/compute/docs/reference/rest/v1/instances/setMachineType#request-body

  • project_id (Optional[str]) -- Optional, Google Cloud Project ID where the Compute Engine Instance exists. If set to None or missing, the default project_id from the Google Cloud connection is used.

  • gcp_conn_id (str) -- Optional, The connection ID used to connect to Google Cloud. Defaults to 'google_cloud_default'.

  • api_version (str) -- Optional, API version used (for example v1 - or beta). Defaults to v1.

  • validate_body (bool) -- Optional, If set to False, body validation is not performed. Defaults to False.

  • impersonation_chain (Optional[Union[str, Sequence[str]]]) -- Optional service account to impersonate using short-term credentials, or chained list of accounts required to get the access_token of the last account in the list, which will be impersonated in the request. If set as a string, the account must grant the originating account the Service Account Token Creator IAM role. If set as a sequence, the identities from the list must grant Service Account Token Creator IAM role to the directly preceding identity, with first account from the list granting this role to the originating account (templated).

template_fields :Sequence[str] = ['project_id', 'zone', 'resource_id', 'body', 'gcp_conn_id', 'api_version', 'impersonation_chain'][source]
execute(self, context)[source]

This is the main method to derive when creating an operator. Context is the same dictionary used as when rendering jinja templates.

Refer to get_template_context for more context.

airflow.providers.google.cloud.operators.compute.GCE_INSTANCE_TEMPLATE_VALIDATION_PATCH_SPECIFICATION :List[Dict[str, Any]][source]
airflow.providers.google.cloud.operators.compute.GCE_INSTANCE_TEMPLATE_FIELDS_TO_SANITIZE = ['kind', 'id', 'name', 'creationTimestamp', 'properties.disks.sha256', 'properties.disks.kind',...[source]
class airflow.providers.google.cloud.operators.compute.ComputeEngineCopyInstanceTemplateOperator(*, resource_id, body_patch, project_id=None, request_id=None, gcp_conn_id='google_cloud_default', api_version='v1', validate_body=True, impersonation_chain=None, **kwargs)[source]

Bases: ComputeEngineBaseOperator

Copies the instance template, applying specified changes.

See also

For more information on how to use this operator, take a look at the guide: ComputeEngineCopyInstanceTemplateOperator

Parameters
  • resource_id (str) -- Name of the Instance Template

  • body_patch (dict) -- 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.

  • project_id (Optional[str]) -- Optional, Google Cloud Project ID where the Compute Engine Instance exists. If set to None or missing, the default project_id from the Google Cloud connection is used.

  • request_id (Optional[str]) -- 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.

  • gcp_conn_id (str) -- Optional, The connection ID used to connect to Google Cloud. Defaults to 'google_cloud_default'.

  • api_version (str) -- Optional, API version used (for example v1 - or beta). Defaults to v1.

  • validate_body (bool) -- Optional, If set to False, body validation is not performed. Defaults to False.

  • impersonation_chain (Optional[Union[str, Sequence[str]]]) -- Optional service account to impersonate using short-term credentials, or chained list of accounts required to get the access_token of the last account in the list, which will be impersonated in the request. If set as a string, the account must grant the originating account the Service Account Token Creator IAM role. If set as a sequence, the identities from the list must grant Service Account Token Creator IAM role to the directly preceding identity, with first account from the list granting this role to the originating account (templated).

template_fields :Sequence[str] = ['project_id', 'resource_id', 'request_id', 'gcp_conn_id', 'api_version', 'impersonation_chain'][source]
execute(self, context)[source]

This is the main method to derive when creating an operator. Context is the same dictionary used as when rendering jinja templates.

Refer to get_template_context for more context.

class airflow.providers.google.cloud.operators.compute.ComputeEngineInstanceGroupUpdateManagerTemplateOperator(*, 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', impersonation_chain=None, **kwargs)[source]

Bases: ComputeEngineBaseOperator

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.

See also

For more information on how to use this operator, take a look at the guide: ComputeEngineInstanceGroupUpdateManagerTemplateOperator

Parameters
  • resource_id (str) -- Name of the Instance Group Manager

  • zone (str) -- Google Cloud zone where the Instance Group Manager exists.

  • source_template (str) -- URL of the template to replace.

  • destination_template (str) -- URL of the target template.

  • project_id (Optional[str]) -- Optional, Google Cloud Project ID where the Compute Engine Instance exists. If set to None or missing, the default project_id from the Google Cloud connection is used.

  • request_id (Optional[str]) -- 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.

  • gcp_conn_id (str) -- Optional, The connection ID used to connect to Google Cloud. Defaults to 'google_cloud_default'.

  • api_version -- Optional, API version used (for example v1 - or beta). Defaults to v1.

  • impersonation_chain (Optional[Union[str, Sequence[str]]]) -- Optional service account to impersonate using short-term credentials, or chained list of accounts required to get the access_token of the last account in the list, which will be impersonated in the request. If set as a string, the account must grant the originating account the Service Account Token Creator IAM role. If set as a sequence, the identities from the list must grant Service Account Token Creator IAM role to the directly preceding identity, with first account from the list granting this role to the originating account (templated).

template_fields :Sequence[str] = ['project_id', 'resource_id', 'zone', 'request_id', 'source_template', 'destination_template',...[source]
execute(self, context)[source]

This is the main method to derive when creating an operator. Context is the same dictionary used as when rendering jinja templates.

Refer to get_template_context for more context.

Was this entry helpful?