| :mod:`airflow.contrib.hooks.gcp_compute_hook` |
| ============================================= |
| |
| .. py:module:: airflow.contrib.hooks.gcp_compute_hook |
| |
| .. autoapi-nested-parse:: |
| |
| This module contains a Google Compute Engine Hook. |
| |
| |
| |
| Module Contents |
| --------------- |
| |
| .. data:: TIME_TO_SLEEP_IN_SECONDS |
| :annotation: = 1 |
| |
| |
| |
| .. py:class:: GceOperationStatus |
| |
| Class with GCE operations statuses. |
| |
| .. attribute:: PENDING |
| :annotation: = PENDING |
| |
| |
| |
| .. attribute:: RUNNING |
| :annotation: = RUNNING |
| |
| |
| |
| .. attribute:: DONE |
| :annotation: = DONE |
| |
| |
| |
| |
| .. py:class:: GceHook(api_version='v1', gcp_conn_id='google_cloud_default', delegate_to=None) |
| |
| Bases: :class:`airflow.contrib.hooks.gcp_api_base_hook.GoogleCloudBaseHook` |
| |
| 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. |
| |
| .. attribute:: _conn |
| |
| |
| |
| |
| |
| .. method:: get_conn(self) |
| |
| Retrieves connection to Google Compute Engine. |
| |
| :return: Google Compute Engine services object |
| :rtype: dict |
| |
| |
| |
| |
| .. method:: start_instance(self, zone, resource_id, project_id=None) |
| |
| Starts an existing instance defined by project_id, zone and resource_id. |
| Must be called with keyword arguments rather than positional. |
| |
| :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 |
| :return: None |
| |
| |
| |
| |
| .. method:: stop_instance(self, zone, resource_id, project_id=None) |
| |
| Stops an instance defined by project_id, zone and resource_id |
| Must be called with keyword arguments rather than positional. |
| |
| :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 |
| :return: None |
| |
| |
| |
| |
| .. method:: set_machine_type(self, zone, resource_id, body, project_id=None) |
| |
| Sets machine type of an instance defined by project_id, zone and resource_id. |
| Must be called with keyword arguments rather than positional. |
| |
| :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 |
| :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 |
| :return: None |
| |
| |
| |
| |
| .. method:: _execute_set_machine_type(self, zone, resource_id, body, project_id) |
| |
| |
| |
| |
| .. method:: get_instance_template(self, resource_id, project_id=None) |
| |
| Retrieves instance template by project_id and resource_id. |
| Must be called with keyword arguments rather than positional. |
| |
| :param resource_id: Name of the instance template |
| :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 |
| :return: Instance template representation as object according to |
| https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates |
| :rtype: dict |
| |
| |
| |
| |
| .. method:: insert_instance_template(self, body, request_id=None, project_id=None) |
| |
| Inserts instance template using body specified |
| Must be called with keyword arguments rather than positional. |
| |
| :param body: Instance template representation as object according to |
| https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates |
| :type body: dict |
| :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 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 |
| :return: None |
| |
| |
| |
| |
| .. method:: get_instance_group_manager(self, zone, resource_id, project_id=None) |
| |
| Retrieves Instance Group Manager by project_id, zone and resource_id. |
| Must be called with keyword arguments rather than positional. |
| |
| :param zone: Google Cloud Platform zone where the Instance Group Manager exists |
| :type zone: str |
| :param resource_id: Name of the Instance Group Manager |
| :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 |
| :return: Instance group manager representation as object according to |
| https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers |
| :rtype: dict |
| |
| |
| |
| |
| .. method:: patch_instance_group_manager(self, zone, resource_id, body, request_id=None, project_id=None) |
| |
| Patches Instance Group Manager with the specified body. |
| Must be called with keyword arguments rather than positional. |
| |
| :param zone: Google Cloud Platform zone where the Instance Group Manager exists |
| :type zone: str |
| :param resource_id: Name of the Instance Group Manager |
| :type resource_id: str |
| :param body: Instance Group Manager representation as json-merge-patch object |
| according to |
| https://cloud.google.com/compute/docs/reference/rest/beta/instanceTemplates/patch |
| :type body: dict |
| :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 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 |
| :return: None |
| |
| |
| |
| |
| .. method:: _wait_for_operation_to_complete(self, project_id, operation_name, zone=None) |
| |
| Waits for the named operation to complete - checks status of the async call. |
| |
| :param operation_name: name of the operation |
| :type operation_name: str |
| :param zone: optional region of the request (might be None for global operations) |
| :type zone: str |
| :return: None |
| |
| |
| |
| |
| .. staticmethod:: _check_zone_operation_status(service, operation_name, project_id, zone, num_retries) |
| |
| |
| |
| |
| .. staticmethod:: _check_global_operation_status(service, operation_name, project_id, num_retries) |
| |
| |
| |
| |