airflow.providers.google.cloud.hooks.compute

This module contains a Google Compute Engine Hook.

Module Contents

Classes

GceOperationStatus

Class with GCE operations statuses.

ComputeEngineHook

Hook for Google Compute Engine APIs.

Attributes

TIME_TO_SLEEP_IN_SECONDS

airflow.providers.google.cloud.hooks.compute.TIME_TO_SLEEP_IN_SECONDS = 1[source]
class airflow.providers.google.cloud.hooks.compute.GceOperationStatus[source]

Class with GCE operations statuses.

PENDING = PENDING[source]
RUNNING = RUNNING[source]
DONE = DONE[source]
class airflow.providers.google.cloud.hooks.compute.ComputeEngineHook(api_version='v1', gcp_conn_id='google_cloud_default', delegate_to=None, impersonation_chain=None)[source]

Bases: airflow.providers.google.common.hooks.base_google.GoogleBaseHook

Hook for Google Compute Engine APIs.

All the methods in the hook where project_id is used must be called with keyword arguments rather than positional.

get_conn(self)[source]

Retrieves connection to Google Compute Engine. :return: Google Compute Engine services object :rtype: dict

start_instance(self, zone, resource_id, project_id)[source]

Starts an existing instance defined by project_id, zone and resource_id. Must be called with keyword arguments rather than positional.

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

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

  • project_id (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.

Returns

None

Return type

None

stop_instance(self, zone, resource_id, project_id)[source]

Stops an instance defined by project_id, zone and resource_id Must be called with keyword arguments rather than positional.

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

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

  • project_id (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.

Returns

None

Return type

None

set_machine_type(self, zone, resource_id, body, project_id)[source]

Sets machine type of an instance defined by project_id, zone and resource_id. Must be called with keyword arguments rather than positional.

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

  • project_id (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.

Returns

None

Return type

None

get_instance_template(self, resource_id, project_id)[source]

Retrieves instance template by project_id and resource_id. Must be called with keyword arguments rather than positional.

Parameters
  • resource_id (str) -- Name of the instance template

  • project_id (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.

Returns

Instance template representation as object according to https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates

Return type

dict

insert_instance_template(self, body, project_id=PROVIDE_PROJECT_ID, request_id=None)[source]

Inserts instance template using body specified Must be called with keyword arguments rather than positional.

Parameters
  • body (dict) -- Instance template representation as object according to https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates

  • 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

  • project_id (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.

Returns

None

Return type

None

get_instance_group_manager(self, zone, resource_id, project_id=PROVIDE_PROJECT_ID)[source]

Retrieves Instance Group Manager by project_id, zone and resource_id. Must be called with keyword arguments rather than positional.

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

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

  • project_id (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.

Returns

Instance group manager representation as object according to https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers

Return type

dict

patch_instance_group_manager(self, zone, resource_id, body, project_id, request_id=None)[source]

Patches Instance Group Manager with the specified body. Must be called with keyword arguments rather than positional.

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

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

  • body (dict) -- Instance Group Manager representation as json-merge-patch object according to https://cloud.google.com/compute/docs/reference/rest/beta/instanceTemplates/patch

  • 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

  • project_id (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.

Returns

None

Return type

None

get_instance_info(self, zone, resource_id, project_id)[source]

Gets instance information.

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

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

  • project_id (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.

get_instance_address(self, zone, resource_id, project_id=PROVIDE_PROJECT_ID, use_internal_ip=False)[source]

Return network address associated to instance.

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

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

  • project_id (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.

  • use_internal_ip (bool) -- If true, return private IP address.

set_instance_metadata(self, zone, resource_id, metadata, project_id)[source]

Set instance metadata.

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

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

  • metadata (Dict[str, str]) -- The new instance metadata.

  • project_id (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.

Was this entry helpful?