def test_instantiate_workflow_template(self): # Setup Expected Response expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( name='operations/test_instantiate_workflow_template', done=True) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) client = dataproc_v1beta2.WorkflowTemplateServiceClient( channel=channel) # Setup Request name = client.workflow_template_path('[PROJECT]', '[REGION]', '[WORKFLOW_TEMPLATE]') response = client.instantiate_workflow_template(name) result = response.result() assert expected_response == result assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.InstantiateWorkflowTemplateRequest( name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request
def test_instantiate_workflow_template(self): # Setup Expected Response expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( name="operations/test_instantiate_workflow_template", done=True) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup Request name = client.workflow_template_path("[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]") response = client.instantiate_workflow_template(name) result = response.result() assert expected_response == result assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.InstantiateWorkflowTemplateRequest( name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request
def instantiate_workflow_template( self, name, version=None, instance_id=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None): """ Instantiates a template and begins execution. The returned Operation can be used to track execution of workflow by polling ``operations.get``. The Operation will complete when entire workflow is finished. The running workflow can be aborted via ``operations.cancel``. This will cause any inflight jobs to be cancelled and workflow-owned clusters to be deleted. The ``Operation.metadata`` will be ``WorkflowMetadata``. On successful completion, ``Operation.response`` will be ``Empty``. Example: >>> from google.cloud import dataproc_v1beta2 >>> >>> client = dataproc_v1beta2.WorkflowTemplateServiceClient() >>> >>> name = client.workflow_template_path('[PROJECT]', '[REGION]', '[WORKFLOW_TEMPLATE]') >>> >>> response = client.instantiate_workflow_template(name) >>> >>> def callback(operation_future): ... # Handle result. ... result = operation_future.result() >>> >>> response.add_done_callback(callback) >>> >>> # Handle metadata. >>> metadata = response.metadata() Args: name (str): Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form ``projects/{project_id}/regions/{region}/workflowTemplates/{template_id}`` version (int): Optional. The version of workflow template to instantiate. If specified, the workflow will be instantiated only if the current version of the workflow template has the supplied version. This option cannot be used to instantiate a previous version of workflow template. instance_id (str): Optional. A tag that prevents multiple concurrent workflow instances with the same tag from running. This mitigates risk of concurrent instances started due to retries. It is recommended to always set this value to a `UUID <https://en.wikipedia.org/wiki/Universally_unique_identifier>`_. The tag must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will not be retried. timeout (Optional[float]): The amount of time, in seconds, to wait for the request to complete. Note that if ``retry`` is specified, the timeout applies to each individual attempt. metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. Returns: A :class:`~google.cloud.dataproc_v1beta2.types._OperationFuture` instance. Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. google.api_core.exceptions.RetryError: If the request failed due to a retryable error and retry attempts failed. ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. if 'instantiate_workflow_template' not in self._inner_api_calls: self._inner_api_calls[ 'instantiate_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( self.transport.instantiate_workflow_template, default_retry=self. _method_configs['InstantiateWorkflowTemplate'].retry, default_timeout=self. _method_configs['InstantiateWorkflowTemplate'].timeout, client_info=self._client_info, ) request = workflow_templates_pb2.InstantiateWorkflowTemplateRequest( name=name, version=version, instance_id=instance_id, ) operation = self._inner_api_calls['instantiate_workflow_template']( request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, empty_pb2.Empty, metadata_type=workflow_templates_pb2.WorkflowMetadata, )