diff --git a/google/cloud/dataproc_v1/services/autoscaling_policy_service/async_client.py b/google/cloud/dataproc_v1/services/autoscaling_policy_service/async_client.py index 76e7ff5c..7f99f540 100644 --- a/google/cloud/dataproc_v1/services/autoscaling_policy_service/async_client.py +++ b/google/cloud/dataproc_v1/services/autoscaling_policy_service/async_client.py @@ -19,13 +19,15 @@ from typing import Dict, Sequence, Tuple, Type, Union import pkg_resources -import google.api_core.client_options as ClientOptions # type: ignore +from google.api_core.client_options import ClientOptions # type: ignore from google.api_core import exceptions as core_exceptions # type: ignore from google.api_core import gapic_v1 # type: ignore from google.api_core import retry as retries # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore +OptionalRetry = Union[retries.Retry, object] + from google.cloud.dataproc_v1.services.autoscaling_policy_service import pagers from google.cloud.dataproc_v1.types import autoscaling_policies from .transports.base import AutoscalingPolicyServiceTransport, DEFAULT_CLIENT_INFO @@ -174,18 +176,20 @@ def __init__( async def create_autoscaling_policy( self, - request: autoscaling_policies.CreateAutoscalingPolicyRequest = None, + request: Union[ + autoscaling_policies.CreateAutoscalingPolicyRequest, dict + ] = None, *, parent: str = None, policy: autoscaling_policies.AutoscalingPolicy = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> autoscaling_policies.AutoscalingPolicy: r"""Creates new autoscaling policy. Args: - request (:class:`google.cloud.dataproc_v1.types.CreateAutoscalingPolicyRequest`): + request (Union[google.cloud.dataproc_v1.types.CreateAutoscalingPolicyRequest, dict]): The request object. A request to create an autoscaling policy. parent (:class:`str`): @@ -266,10 +270,12 @@ async def create_autoscaling_policy( async def update_autoscaling_policy( self, - request: autoscaling_policies.UpdateAutoscalingPolicyRequest = None, + request: Union[ + autoscaling_policies.UpdateAutoscalingPolicyRequest, dict + ] = None, *, policy: autoscaling_policies.AutoscalingPolicy = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> autoscaling_policies.AutoscalingPolicy: @@ -279,7 +285,7 @@ async def update_autoscaling_policy( replacements. Args: - request (:class:`google.cloud.dataproc_v1.types.UpdateAutoscalingPolicyRequest`): + request (Union[google.cloud.dataproc_v1.types.UpdateAutoscalingPolicyRequest, dict]): The request object. A request to update an autoscaling policy. policy (:class:`google.cloud.dataproc_v1.types.AutoscalingPolicy`): @@ -352,17 +358,17 @@ async def update_autoscaling_policy( async def get_autoscaling_policy( self, - request: autoscaling_policies.GetAutoscalingPolicyRequest = None, + request: Union[autoscaling_policies.GetAutoscalingPolicyRequest, dict] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> autoscaling_policies.AutoscalingPolicy: r"""Retrieves autoscaling policy. Args: - request (:class:`google.cloud.dataproc_v1.types.GetAutoscalingPolicyRequest`): + request (Union[google.cloud.dataproc_v1.types.GetAutoscalingPolicyRequest, dict]): The request object. A request to fetch an autoscaling policy. name (:class:`str`): @@ -443,17 +449,19 @@ async def get_autoscaling_policy( async def list_autoscaling_policies( self, - request: autoscaling_policies.ListAutoscalingPoliciesRequest = None, + request: Union[ + autoscaling_policies.ListAutoscalingPoliciesRequest, dict + ] = None, *, parent: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListAutoscalingPoliciesAsyncPager: r"""Lists autoscaling policies in the project. Args: - request (:class:`google.cloud.dataproc_v1.types.ListAutoscalingPoliciesRequest`): + request (Union[google.cloud.dataproc_v1.types.ListAutoscalingPoliciesRequest, dict]): The request object. A request to list autoscaling policies in a project. parent (:class:`str`): @@ -543,10 +551,12 @@ async def list_autoscaling_policies( async def delete_autoscaling_policy( self, - request: autoscaling_policies.DeleteAutoscalingPolicyRequest = None, + request: Union[ + autoscaling_policies.DeleteAutoscalingPolicyRequest, dict + ] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: @@ -555,7 +565,7 @@ async def delete_autoscaling_policy( more clusters. Args: - request (:class:`google.cloud.dataproc_v1.types.DeleteAutoscalingPolicyRequest`): + request (Union[google.cloud.dataproc_v1.types.DeleteAutoscalingPolicyRequest, dict]): The request object. A request to delete an autoscaling policy. Autoscaling policies in use by one or more clusters will diff --git a/google/cloud/dataproc_v1/services/autoscaling_policy_service/client.py b/google/cloud/dataproc_v1/services/autoscaling_policy_service/client.py index 43a042b8..b189eab4 100644 --- a/google/cloud/dataproc_v1/services/autoscaling_policy_service/client.py +++ b/google/cloud/dataproc_v1/services/autoscaling_policy_service/client.py @@ -30,6 +30,8 @@ from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.oauth2 import service_account # type: ignore +OptionalRetry = Union[retries.Retry, object] + from google.cloud.dataproc_v1.services.autoscaling_policy_service import pagers from google.cloud.dataproc_v1.types import autoscaling_policies from .transports.base import AutoscalingPolicyServiceTransport, DEFAULT_CLIENT_INFO @@ -361,7 +363,7 @@ def create_autoscaling_policy( *, parent: str = None, policy: autoscaling_policies.AutoscalingPolicy = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> autoscaling_policies.AutoscalingPolicy: @@ -456,7 +458,7 @@ def update_autoscaling_policy( ] = None, *, policy: autoscaling_policies.AutoscalingPolicy = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> autoscaling_policies.AutoscalingPolicy: @@ -534,7 +536,7 @@ def get_autoscaling_policy( request: Union[autoscaling_policies.GetAutoscalingPolicyRequest, dict] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> autoscaling_policies.AutoscalingPolicy: @@ -617,7 +619,7 @@ def list_autoscaling_policies( ] = None, *, parent: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListAutoscalingPoliciesPager: @@ -711,7 +713,7 @@ def delete_autoscaling_policy( ] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: diff --git a/google/cloud/dataproc_v1/services/autoscaling_policy_service/transports/base.py b/google/cloud/dataproc_v1/services/autoscaling_policy_service/transports/base.py index bcaddf6c..1b89a691 100644 --- a/google/cloud/dataproc_v1/services/autoscaling_policy_service/transports/base.py +++ b/google/cloud/dataproc_v1/services/autoscaling_policy_service/transports/base.py @@ -15,7 +15,6 @@ # import abc from typing import Awaitable, Callable, Dict, Optional, Sequence, Union -import packaging.version import pkg_resources import google.auth # type: ignore @@ -36,15 +35,6 @@ except pkg_resources.DistributionNotFound: DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() -try: - # google.auth.__version__ was added in 1.26.0 - _GOOGLE_AUTH_VERSION = google.auth.__version__ -except AttributeError: - try: # try pkg_resources if it is available - _GOOGLE_AUTH_VERSION = pkg_resources.get_distribution("google-auth").version - except pkg_resources.DistributionNotFound: # pragma: NO COVER - _GOOGLE_AUTH_VERSION = None - class AutoscalingPolicyServiceTransport(abc.ABC): """Abstract transport class for AutoscalingPolicyService.""" @@ -94,7 +84,7 @@ def __init__( host += ":443" self._host = host - scopes_kwargs = self._get_scopes_kwargs(self._host, scopes) + scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} # Save the scopes. self._scopes = scopes @@ -127,29 +117,6 @@ def __init__( # Save the credentials. self._credentials = credentials - # TODO(busunkim): This method is in the base transport - # to avoid duplicating code across the transport classes. These functions - # should be deleted once the minimum required versions of google-auth is increased. - - # TODO: Remove this function once google-auth >= 1.25.0 is required - @classmethod - def _get_scopes_kwargs( - cls, host: str, scopes: Optional[Sequence[str]] - ) -> Dict[str, Optional[Sequence[str]]]: - """Returns scopes kwargs to pass to google-auth methods depending on the google-auth version""" - - scopes_kwargs = {} - - if _GOOGLE_AUTH_VERSION and ( - packaging.version.parse(_GOOGLE_AUTH_VERSION) - >= packaging.version.parse("1.25.0") - ): - scopes_kwargs = {"scopes": scopes, "default_scopes": cls.AUTH_SCOPES} - else: - scopes_kwargs = {"scopes": scopes or cls.AUTH_SCOPES} - - return scopes_kwargs - def _prep_wrapped_messages(self, client_info): # Precompute the wrapped methods. self._wrapped_methods = { diff --git a/google/cloud/dataproc_v1/services/autoscaling_policy_service/transports/grpc_asyncio.py b/google/cloud/dataproc_v1/services/autoscaling_policy_service/transports/grpc_asyncio.py index 07c82123..baa7dba8 100644 --- a/google/cloud/dataproc_v1/services/autoscaling_policy_service/transports/grpc_asyncio.py +++ b/google/cloud/dataproc_v1/services/autoscaling_policy_service/transports/grpc_asyncio.py @@ -20,7 +20,6 @@ from google.api_core import grpc_helpers_async # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore -import packaging.version import grpc # type: ignore from grpc.experimental import aio # type: ignore diff --git a/google/cloud/dataproc_v1/services/batch_controller/async_client.py b/google/cloud/dataproc_v1/services/batch_controller/async_client.py index d4bcbe43..62744335 100644 --- a/google/cloud/dataproc_v1/services/batch_controller/async_client.py +++ b/google/cloud/dataproc_v1/services/batch_controller/async_client.py @@ -19,13 +19,15 @@ from typing import Dict, Sequence, Tuple, Type, Union import pkg_resources -import google.api_core.client_options as ClientOptions # type: ignore +from google.api_core.client_options import ClientOptions # type: ignore from google.api_core import exceptions as core_exceptions # type: ignore from google.api_core import gapic_v1 # type: ignore from google.api_core import retry as retries # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore +OptionalRetry = Union[retries.Retry, object] + from google.api_core import operation # type: ignore from google.api_core import operation_async # type: ignore from google.cloud.dataproc_v1.services.batch_controller import pagers @@ -170,12 +172,12 @@ def __init__( async def create_batch( self, - request: batches.CreateBatchRequest = None, + request: Union[batches.CreateBatchRequest, dict] = None, *, parent: str = None, batch: batches.Batch = None, batch_id: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: @@ -183,7 +185,7 @@ async def create_batch( asynchronously. Args: - request (:class:`google.cloud.dataproc_v1.types.CreateBatchRequest`): + request (Union[google.cloud.dataproc_v1.types.CreateBatchRequest, dict]): The request object. A request to create a batch workload. parent (:class:`str`): @@ -274,17 +276,17 @@ async def create_batch( async def get_batch( self, - request: batches.GetBatchRequest = None, + request: Union[batches.GetBatchRequest, dict] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> batches.Batch: r"""Gets the batch workload resource representation. Args: - request (:class:`google.cloud.dataproc_v1.types.GetBatchRequest`): + request (Union[google.cloud.dataproc_v1.types.GetBatchRequest, dict]): The request object. A request to get the resource representation for a batch workload. name (:class:`str`): @@ -345,17 +347,17 @@ async def get_batch( async def list_batches( self, - request: batches.ListBatchesRequest = None, + request: Union[batches.ListBatchesRequest, dict] = None, *, parent: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListBatchesAsyncPager: r"""Lists batch workloads. Args: - request (:class:`google.cloud.dataproc_v1.types.ListBatchesRequest`): + request (Union[google.cloud.dataproc_v1.types.ListBatchesRequest, dict]): The request object. A request to list batch workloads in a project. parent (:class:`str`): @@ -424,10 +426,10 @@ async def list_batches( async def delete_batch( self, - request: batches.DeleteBatchRequest = None, + request: Union[batches.DeleteBatchRequest, dict] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: @@ -436,7 +438,7 @@ async def delete_batch( ``FAILED_PRECONDITION``. Args: - request (:class:`google.cloud.dataproc_v1.types.DeleteBatchRequest`): + request (Union[google.cloud.dataproc_v1.types.DeleteBatchRequest, dict]): The request object. A request to delete a batch workload. name (:class:`str`): diff --git a/google/cloud/dataproc_v1/services/batch_controller/client.py b/google/cloud/dataproc_v1/services/batch_controller/client.py index 6556c4a8..d9ce3d90 100644 --- a/google/cloud/dataproc_v1/services/batch_controller/client.py +++ b/google/cloud/dataproc_v1/services/batch_controller/client.py @@ -30,6 +30,8 @@ from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.oauth2 import service_account # type: ignore +OptionalRetry = Union[retries.Retry, object] + from google.api_core import operation # type: ignore from google.api_core import operation_async # type: ignore from google.cloud.dataproc_v1.services.batch_controller import pagers @@ -361,7 +363,7 @@ def create_batch( parent: str = None, batch: batches.Batch = None, batch_id: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: @@ -463,7 +465,7 @@ def get_batch( request: Union[batches.GetBatchRequest, dict] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> batches.Batch: @@ -534,7 +536,7 @@ def list_batches( request: Union[batches.ListBatchesRequest, dict] = None, *, parent: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListBatchesPager: @@ -613,7 +615,7 @@ def delete_batch( request: Union[batches.DeleteBatchRequest, dict] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: diff --git a/google/cloud/dataproc_v1/services/batch_controller/transports/base.py b/google/cloud/dataproc_v1/services/batch_controller/transports/base.py index e3368260..e30b5f75 100644 --- a/google/cloud/dataproc_v1/services/batch_controller/transports/base.py +++ b/google/cloud/dataproc_v1/services/batch_controller/transports/base.py @@ -15,7 +15,6 @@ # import abc from typing import Awaitable, Callable, Dict, Optional, Sequence, Union -import packaging.version import pkg_resources import google.auth # type: ignore @@ -38,15 +37,6 @@ except pkg_resources.DistributionNotFound: DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() -try: - # google.auth.__version__ was added in 1.26.0 - _GOOGLE_AUTH_VERSION = google.auth.__version__ -except AttributeError: - try: # try pkg_resources if it is available - _GOOGLE_AUTH_VERSION = pkg_resources.get_distribution("google-auth").version - except pkg_resources.DistributionNotFound: # pragma: NO COVER - _GOOGLE_AUTH_VERSION = None - class BatchControllerTransport(abc.ABC): """Abstract transport class for BatchController.""" @@ -96,7 +86,7 @@ def __init__( host += ":443" self._host = host - scopes_kwargs = self._get_scopes_kwargs(self._host, scopes) + scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} # Save the scopes. self._scopes = scopes @@ -129,29 +119,6 @@ def __init__( # Save the credentials. self._credentials = credentials - # TODO(busunkim): This method is in the base transport - # to avoid duplicating code across the transport classes. These functions - # should be deleted once the minimum required versions of google-auth is increased. - - # TODO: Remove this function once google-auth >= 1.25.0 is required - @classmethod - def _get_scopes_kwargs( - cls, host: str, scopes: Optional[Sequence[str]] - ) -> Dict[str, Optional[Sequence[str]]]: - """Returns scopes kwargs to pass to google-auth methods depending on the google-auth version""" - - scopes_kwargs = {} - - if _GOOGLE_AUTH_VERSION and ( - packaging.version.parse(_GOOGLE_AUTH_VERSION) - >= packaging.version.parse("1.25.0") - ): - scopes_kwargs = {"scopes": scopes, "default_scopes": cls.AUTH_SCOPES} - else: - scopes_kwargs = {"scopes": scopes or cls.AUTH_SCOPES} - - return scopes_kwargs - def _prep_wrapped_messages(self, client_info): # Precompute the wrapped methods. self._wrapped_methods = { @@ -179,7 +146,7 @@ def close(self): raise NotImplementedError() @property - def operations_client(self) -> operations_v1.OperationsClient: + def operations_client(self): """Return the client designed to process long-running operations.""" raise NotImplementedError() diff --git a/google/cloud/dataproc_v1/services/batch_controller/transports/grpc.py b/google/cloud/dataproc_v1/services/batch_controller/transports/grpc.py index 3fe81565..e47ba06a 100644 --- a/google/cloud/dataproc_v1/services/batch_controller/transports/grpc.py +++ b/google/cloud/dataproc_v1/services/batch_controller/transports/grpc.py @@ -114,7 +114,7 @@ def __init__( self._grpc_channel = None self._ssl_channel_credentials = ssl_channel_credentials self._stubs: Dict[str, Callable] = {} - self._operations_client = None + self._operations_client: Optional[operations_v1.OperationsClient] = None if api_mtls_endpoint: warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) diff --git a/google/cloud/dataproc_v1/services/batch_controller/transports/grpc_asyncio.py b/google/cloud/dataproc_v1/services/batch_controller/transports/grpc_asyncio.py index d531aca6..ec125b60 100644 --- a/google/cloud/dataproc_v1/services/batch_controller/transports/grpc_asyncio.py +++ b/google/cloud/dataproc_v1/services/batch_controller/transports/grpc_asyncio.py @@ -21,7 +21,6 @@ from google.api_core import operations_v1 # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore -import packaging.version import grpc # type: ignore from grpc.experimental import aio # type: ignore @@ -161,7 +160,7 @@ def __init__( self._grpc_channel = None self._ssl_channel_credentials = ssl_channel_credentials self._stubs: Dict[str, Callable] = {} - self._operations_client = None + self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None if api_mtls_endpoint: warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) diff --git a/google/cloud/dataproc_v1/services/cluster_controller/async_client.py b/google/cloud/dataproc_v1/services/cluster_controller/async_client.py index 36ab734a..e21cd14e 100644 --- a/google/cloud/dataproc_v1/services/cluster_controller/async_client.py +++ b/google/cloud/dataproc_v1/services/cluster_controller/async_client.py @@ -19,13 +19,15 @@ from typing import Dict, Sequence, Tuple, Type, Union import pkg_resources -import google.api_core.client_options as ClientOptions # type: ignore +from google.api_core.client_options import ClientOptions # type: ignore from google.api_core import exceptions as core_exceptions # type: ignore from google.api_core import gapic_v1 # type: ignore from google.api_core import retry as retries # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore +OptionalRetry = Union[retries.Retry, object] + from google.api_core import operation # type: ignore from google.api_core import operation_async # type: ignore from google.cloud.dataproc_v1.services.cluster_controller import pagers @@ -172,12 +174,12 @@ def __init__( async def create_cluster( self, - request: clusters.CreateClusterRequest = None, + request: Union[clusters.CreateClusterRequest, dict] = None, *, project_id: str = None, region: str = None, cluster: clusters.Cluster = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: @@ -187,7 +189,7 @@ async def create_cluster( `ClusterOperationMetadata `__. Args: - request (:class:`google.cloud.dataproc_v1.types.CreateClusterRequest`): + request (Union[google.cloud.dataproc_v1.types.CreateClusterRequest, dict]): The request object. A request to create a cluster. project_id (:class:`str`): Required. The ID of the Google Cloud @@ -277,14 +279,14 @@ async def create_cluster( async def update_cluster( self, - request: clusters.UpdateClusterRequest = None, + request: Union[clusters.UpdateClusterRequest, dict] = None, *, project_id: str = None, region: str = None, cluster_name: str = None, cluster: clusters.Cluster = None, update_mask: field_mask_pb2.FieldMask = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: @@ -297,7 +299,7 @@ async def update_cluster( state or an error is returned. Args: - request (:class:`google.cloud.dataproc_v1.types.UpdateClusterRequest`): + request (Union[google.cloud.dataproc_v1.types.UpdateClusterRequest, dict]): The request object. A request to update a cluster. project_id (:class:`str`): Required. The ID of the Google Cloud @@ -464,16 +466,16 @@ async def update_cluster( async def stop_cluster( self, - request: clusters.StopClusterRequest = None, + request: Union[clusters.StopClusterRequest, dict] = None, *, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: r"""Stops a cluster in a project. Args: - request (:class:`google.cloud.dataproc_v1.types.StopClusterRequest`): + request (Union[google.cloud.dataproc_v1.types.StopClusterRequest, dict]): The request object. A request to stop a cluster. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. @@ -516,16 +518,16 @@ async def stop_cluster( async def start_cluster( self, - request: clusters.StartClusterRequest = None, + request: Union[clusters.StartClusterRequest, dict] = None, *, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: r"""Starts a cluster in a project. Args: - request (:class:`google.cloud.dataproc_v1.types.StartClusterRequest`): + request (Union[google.cloud.dataproc_v1.types.StartClusterRequest, dict]): The request object. A request to start a cluster. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. @@ -568,12 +570,12 @@ async def start_cluster( async def delete_cluster( self, - request: clusters.DeleteClusterRequest = None, + request: Union[clusters.DeleteClusterRequest, dict] = None, *, project_id: str = None, region: str = None, cluster_name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: @@ -583,7 +585,7 @@ async def delete_cluster( `ClusterOperationMetadata `__. Args: - request (:class:`google.cloud.dataproc_v1.types.DeleteClusterRequest`): + request (Union[google.cloud.dataproc_v1.types.DeleteClusterRequest, dict]): The request object. A request to delete a cluster. project_id (:class:`str`): Required. The ID of the Google Cloud @@ -684,12 +686,12 @@ async def delete_cluster( async def get_cluster( self, - request: clusters.GetClusterRequest = None, + request: Union[clusters.GetClusterRequest, dict] = None, *, project_id: str = None, region: str = None, cluster_name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> clusters.Cluster: @@ -697,7 +699,7 @@ async def get_cluster( project. Args: - request (:class:`google.cloud.dataproc_v1.types.GetClusterRequest`): + request (Union[google.cloud.dataproc_v1.types.GetClusterRequest, dict]): The request object. Request to get the resource representation for a cluster in a project. project_id (:class:`str`): @@ -781,12 +783,12 @@ async def get_cluster( async def list_clusters( self, - request: clusters.ListClustersRequest = None, + request: Union[clusters.ListClustersRequest, dict] = None, *, project_id: str = None, region: str = None, filter: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListClustersAsyncPager: @@ -794,7 +796,7 @@ async def list_clusters( alphabetically. Args: - request (:class:`google.cloud.dataproc_v1.types.ListClustersRequest`): + request (Union[google.cloud.dataproc_v1.types.ListClustersRequest, dict]): The request object. A request to list the clusters in a project. project_id (:class:`str`): @@ -909,12 +911,12 @@ async def list_clusters( async def diagnose_cluster( self, - request: clusters.DiagnoseClusterRequest = None, + request: Union[clusters.DiagnoseClusterRequest, dict] = None, *, project_id: str = None, region: str = None, cluster_name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: @@ -928,7 +930,7 @@ async def diagnose_cluster( `DiagnoseClusterResults `__. Args: - request (:class:`google.cloud.dataproc_v1.types.DiagnoseClusterRequest`): + request (Union[google.cloud.dataproc_v1.types.DiagnoseClusterRequest, dict]): The request object. A request to collect cluster diagnostic information. project_id (:class:`str`): diff --git a/google/cloud/dataproc_v1/services/cluster_controller/client.py b/google/cloud/dataproc_v1/services/cluster_controller/client.py index adc835bb..140d0f20 100644 --- a/google/cloud/dataproc_v1/services/cluster_controller/client.py +++ b/google/cloud/dataproc_v1/services/cluster_controller/client.py @@ -30,6 +30,8 @@ from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.oauth2 import service_account # type: ignore +OptionalRetry = Union[retries.Retry, object] + from google.api_core import operation # type: ignore from google.api_core import operation_async # type: ignore from google.cloud.dataproc_v1.services.cluster_controller import pagers @@ -379,7 +381,7 @@ def create_cluster( project_id: str = None, region: str = None, cluster: clusters.Cluster = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: @@ -477,7 +479,7 @@ def update_cluster( cluster_name: str = None, cluster: clusters.Cluster = None, update_mask: field_mask_pb2.FieldMask = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: @@ -650,7 +652,7 @@ def stop_cluster( self, request: Union[clusters.StopClusterRequest, dict] = None, *, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: @@ -703,7 +705,7 @@ def start_cluster( self, request: Union[clusters.StartClusterRequest, dict] = None, *, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: @@ -759,7 +761,7 @@ def delete_cluster( project_id: str = None, region: str = None, cluster_name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: @@ -866,7 +868,7 @@ def get_cluster( project_id: str = None, region: str = None, cluster_name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> clusters.Cluster: @@ -952,7 +954,7 @@ def list_clusters( project_id: str = None, region: str = None, filter: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListClustersPager: @@ -1069,7 +1071,7 @@ def diagnose_cluster( project_id: str = None, region: str = None, cluster_name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: diff --git a/google/cloud/dataproc_v1/services/cluster_controller/transports/base.py b/google/cloud/dataproc_v1/services/cluster_controller/transports/base.py index 880dc1db..7e78b0cb 100644 --- a/google/cloud/dataproc_v1/services/cluster_controller/transports/base.py +++ b/google/cloud/dataproc_v1/services/cluster_controller/transports/base.py @@ -15,7 +15,6 @@ # import abc from typing import Awaitable, Callable, Dict, Optional, Sequence, Union -import packaging.version import pkg_resources import google.auth # type: ignore @@ -37,15 +36,6 @@ except pkg_resources.DistributionNotFound: DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() -try: - # google.auth.__version__ was added in 1.26.0 - _GOOGLE_AUTH_VERSION = google.auth.__version__ -except AttributeError: - try: # try pkg_resources if it is available - _GOOGLE_AUTH_VERSION = pkg_resources.get_distribution("google-auth").version - except pkg_resources.DistributionNotFound: # pragma: NO COVER - _GOOGLE_AUTH_VERSION = None - class ClusterControllerTransport(abc.ABC): """Abstract transport class for ClusterController.""" @@ -95,7 +85,7 @@ def __init__( host += ":443" self._host = host - scopes_kwargs = self._get_scopes_kwargs(self._host, scopes) + scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} # Save the scopes. self._scopes = scopes @@ -128,29 +118,6 @@ def __init__( # Save the credentials. self._credentials = credentials - # TODO(busunkim): This method is in the base transport - # to avoid duplicating code across the transport classes. These functions - # should be deleted once the minimum required versions of google-auth is increased. - - # TODO: Remove this function once google-auth >= 1.25.0 is required - @classmethod - def _get_scopes_kwargs( - cls, host: str, scopes: Optional[Sequence[str]] - ) -> Dict[str, Optional[Sequence[str]]]: - """Returns scopes kwargs to pass to google-auth methods depending on the google-auth version""" - - scopes_kwargs = {} - - if _GOOGLE_AUTH_VERSION and ( - packaging.version.parse(_GOOGLE_AUTH_VERSION) - >= packaging.version.parse("1.25.0") - ): - scopes_kwargs = {"scopes": scopes, "default_scopes": cls.AUTH_SCOPES} - else: - scopes_kwargs = {"scopes": scopes or cls.AUTH_SCOPES} - - return scopes_kwargs - def _prep_wrapped_messages(self, client_info): # Precompute the wrapped methods. self._wrapped_methods = { @@ -260,7 +227,7 @@ def close(self): raise NotImplementedError() @property - def operations_client(self) -> operations_v1.OperationsClient: + def operations_client(self): """Return the client designed to process long-running operations.""" raise NotImplementedError() diff --git a/google/cloud/dataproc_v1/services/cluster_controller/transports/grpc.py b/google/cloud/dataproc_v1/services/cluster_controller/transports/grpc.py index 9c6f2b9a..69360855 100644 --- a/google/cloud/dataproc_v1/services/cluster_controller/transports/grpc.py +++ b/google/cloud/dataproc_v1/services/cluster_controller/transports/grpc.py @@ -113,7 +113,7 @@ def __init__( self._grpc_channel = None self._ssl_channel_credentials = ssl_channel_credentials self._stubs: Dict[str, Callable] = {} - self._operations_client = None + self._operations_client: Optional[operations_v1.OperationsClient] = None if api_mtls_endpoint: warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) diff --git a/google/cloud/dataproc_v1/services/cluster_controller/transports/grpc_asyncio.py b/google/cloud/dataproc_v1/services/cluster_controller/transports/grpc_asyncio.py index 555486fc..e035c45a 100644 --- a/google/cloud/dataproc_v1/services/cluster_controller/transports/grpc_asyncio.py +++ b/google/cloud/dataproc_v1/services/cluster_controller/transports/grpc_asyncio.py @@ -21,7 +21,6 @@ from google.api_core import operations_v1 # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore -import packaging.version import grpc # type: ignore from grpc.experimental import aio # type: ignore @@ -160,7 +159,7 @@ def __init__( self._grpc_channel = None self._ssl_channel_credentials = ssl_channel_credentials self._stubs: Dict[str, Callable] = {} - self._operations_client = None + self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None if api_mtls_endpoint: warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) diff --git a/google/cloud/dataproc_v1/services/job_controller/async_client.py b/google/cloud/dataproc_v1/services/job_controller/async_client.py index cb82f02e..916881e6 100644 --- a/google/cloud/dataproc_v1/services/job_controller/async_client.py +++ b/google/cloud/dataproc_v1/services/job_controller/async_client.py @@ -19,13 +19,15 @@ from typing import Dict, Sequence, Tuple, Type, Union import pkg_resources -import google.api_core.client_options as ClientOptions # type: ignore +from google.api_core.client_options import ClientOptions # type: ignore from google.api_core import exceptions as core_exceptions # type: ignore from google.api_core import gapic_v1 # type: ignore from google.api_core import retry as retries # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore +OptionalRetry = Union[retries.Retry, object] + from google.api_core import operation # type: ignore from google.api_core import operation_async # type: ignore from google.cloud.dataproc_v1.services.job_controller import pagers @@ -163,19 +165,19 @@ def __init__( async def submit_job( self, - request: jobs.SubmitJobRequest = None, + request: Union[jobs.SubmitJobRequest, dict] = None, *, project_id: str = None, region: str = None, job: jobs.Job = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> jobs.Job: r"""Submits a job to a cluster. Args: - request (:class:`google.cloud.dataproc_v1.types.SubmitJobRequest`): + request (Union[google.cloud.dataproc_v1.types.SubmitJobRequest, dict]): The request object. A request to submit a job. project_id (:class:`str`): Required. The ID of the Google Cloud @@ -253,19 +255,19 @@ async def submit_job( async def submit_job_as_operation( self, - request: jobs.SubmitJobRequest = None, + request: Union[jobs.SubmitJobRequest, dict] = None, *, project_id: str = None, region: str = None, job: jobs.Job = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: r"""Submits job to a cluster. Args: - request (:class:`google.cloud.dataproc_v1.types.SubmitJobRequest`): + request (Union[google.cloud.dataproc_v1.types.SubmitJobRequest, dict]): The request object. A request to submit a job. project_id (:class:`str`): Required. The ID of the Google Cloud @@ -356,12 +358,12 @@ async def submit_job_as_operation( async def get_job( self, - request: jobs.GetJobRequest = None, + request: Union[jobs.GetJobRequest, dict] = None, *, project_id: str = None, region: str = None, job_id: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> jobs.Job: @@ -369,7 +371,7 @@ async def get_job( project. Args: - request (:class:`google.cloud.dataproc_v1.types.GetJobRequest`): + request (Union[google.cloud.dataproc_v1.types.GetJobRequest, dict]): The request object. A request to get the resource representation for a job in a project. project_id (:class:`str`): @@ -450,19 +452,19 @@ async def get_job( async def list_jobs( self, - request: jobs.ListJobsRequest = None, + request: Union[jobs.ListJobsRequest, dict] = None, *, project_id: str = None, region: str = None, filter: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListJobsAsyncPager: r"""Lists regions/{region}/jobs in a project. Args: - request (:class:`google.cloud.dataproc_v1.types.ListJobsRequest`): + request (Union[google.cloud.dataproc_v1.types.ListJobsRequest, dict]): The request object. A request to list jobs in a project. project_id (:class:`str`): Required. The ID of the Google Cloud @@ -569,16 +571,16 @@ async def list_jobs( async def update_job( self, - request: jobs.UpdateJobRequest = None, + request: Union[jobs.UpdateJobRequest, dict] = None, *, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> jobs.Job: r"""Updates a job in a project. Args: - request (:class:`google.cloud.dataproc_v1.types.UpdateJobRequest`): + request (Union[google.cloud.dataproc_v1.types.UpdateJobRequest, dict]): The request object. A request to update a job. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. @@ -618,12 +620,12 @@ async def update_job( async def cancel_job( self, - request: jobs.CancelJobRequest = None, + request: Union[jobs.CancelJobRequest, dict] = None, *, project_id: str = None, region: str = None, job_id: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> jobs.Job: @@ -634,7 +636,7 @@ async def cancel_job( `regions/{region}/jobs.get `__. Args: - request (:class:`google.cloud.dataproc_v1.types.CancelJobRequest`): + request (Union[google.cloud.dataproc_v1.types.CancelJobRequest, dict]): The request object. A request to cancel a job. project_id (:class:`str`): Required. The ID of the Google Cloud @@ -714,12 +716,12 @@ async def cancel_job( async def delete_job( self, - request: jobs.DeleteJobRequest = None, + request: Union[jobs.DeleteJobRequest, dict] = None, *, project_id: str = None, region: str = None, job_id: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: @@ -727,7 +729,7 @@ async def delete_job( delete fails, and the response returns ``FAILED_PRECONDITION``. Args: - request (:class:`google.cloud.dataproc_v1.types.DeleteJobRequest`): + request (Union[google.cloud.dataproc_v1.types.DeleteJobRequest, dict]): The request object. A request to delete a job. project_id (:class:`str`): Required. The ID of the Google Cloud diff --git a/google/cloud/dataproc_v1/services/job_controller/client.py b/google/cloud/dataproc_v1/services/job_controller/client.py index e02935e6..3e9a47ee 100644 --- a/google/cloud/dataproc_v1/services/job_controller/client.py +++ b/google/cloud/dataproc_v1/services/job_controller/client.py @@ -30,6 +30,8 @@ from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.oauth2 import service_account # type: ignore +OptionalRetry = Union[retries.Retry, object] + from google.api_core import operation # type: ignore from google.api_core import operation_async # type: ignore from google.cloud.dataproc_v1.services.job_controller import pagers @@ -338,7 +340,7 @@ def submit_job( project_id: str = None, region: str = None, job: jobs.Job = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> jobs.Job: @@ -419,7 +421,7 @@ def submit_job_as_operation( project_id: str = None, region: str = None, job: jobs.Job = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: @@ -513,7 +515,7 @@ def get_job( project_id: str = None, region: str = None, job_id: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> jobs.Job: @@ -596,7 +598,7 @@ def list_jobs( project_id: str = None, region: str = None, filter: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListJobsPager: @@ -701,7 +703,7 @@ def update_job( self, request: Union[jobs.UpdateJobRequest, dict] = None, *, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> jobs.Job: @@ -745,7 +747,7 @@ def cancel_job( project_id: str = None, region: str = None, job_id: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> jobs.Job: @@ -830,7 +832,7 @@ def delete_job( project_id: str = None, region: str = None, job_id: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: diff --git a/google/cloud/dataproc_v1/services/job_controller/transports/base.py b/google/cloud/dataproc_v1/services/job_controller/transports/base.py index 60fe2244..9bd8fb9a 100644 --- a/google/cloud/dataproc_v1/services/job_controller/transports/base.py +++ b/google/cloud/dataproc_v1/services/job_controller/transports/base.py @@ -15,7 +15,6 @@ # import abc from typing import Awaitable, Callable, Dict, Optional, Sequence, Union -import packaging.version import pkg_resources import google.auth # type: ignore @@ -38,15 +37,6 @@ except pkg_resources.DistributionNotFound: DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() -try: - # google.auth.__version__ was added in 1.26.0 - _GOOGLE_AUTH_VERSION = google.auth.__version__ -except AttributeError: - try: # try pkg_resources if it is available - _GOOGLE_AUTH_VERSION = pkg_resources.get_distribution("google-auth").version - except pkg_resources.DistributionNotFound: # pragma: NO COVER - _GOOGLE_AUTH_VERSION = None - class JobControllerTransport(abc.ABC): """Abstract transport class for JobController.""" @@ -96,7 +86,7 @@ def __init__( host += ":443" self._host = host - scopes_kwargs = self._get_scopes_kwargs(self._host, scopes) + scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} # Save the scopes. self._scopes = scopes @@ -129,29 +119,6 @@ def __init__( # Save the credentials. self._credentials = credentials - # TODO(busunkim): This method is in the base transport - # to avoid duplicating code across the transport classes. These functions - # should be deleted once the minimum required versions of google-auth is increased. - - # TODO: Remove this function once google-auth >= 1.25.0 is required - @classmethod - def _get_scopes_kwargs( - cls, host: str, scopes: Optional[Sequence[str]] - ) -> Dict[str, Optional[Sequence[str]]]: - """Returns scopes kwargs to pass to google-auth methods depending on the google-auth version""" - - scopes_kwargs = {} - - if _GOOGLE_AUTH_VERSION and ( - packaging.version.parse(_GOOGLE_AUTH_VERSION) - >= packaging.version.parse("1.25.0") - ): - scopes_kwargs = {"scopes": scopes, "default_scopes": cls.AUTH_SCOPES} - else: - scopes_kwargs = {"scopes": scopes or cls.AUTH_SCOPES} - - return scopes_kwargs - def _prep_wrapped_messages(self, client_info): # Precompute the wrapped methods. self._wrapped_methods = { @@ -271,7 +238,7 @@ def close(self): raise NotImplementedError() @property - def operations_client(self) -> operations_v1.OperationsClient: + def operations_client(self): """Return the client designed to process long-running operations.""" raise NotImplementedError() diff --git a/google/cloud/dataproc_v1/services/job_controller/transports/grpc.py b/google/cloud/dataproc_v1/services/job_controller/transports/grpc.py index b69f64b4..c5a8218f 100644 --- a/google/cloud/dataproc_v1/services/job_controller/transports/grpc.py +++ b/google/cloud/dataproc_v1/services/job_controller/transports/grpc.py @@ -113,7 +113,7 @@ def __init__( self._grpc_channel = None self._ssl_channel_credentials = ssl_channel_credentials self._stubs: Dict[str, Callable] = {} - self._operations_client = None + self._operations_client: Optional[operations_v1.OperationsClient] = None if api_mtls_endpoint: warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) diff --git a/google/cloud/dataproc_v1/services/job_controller/transports/grpc_asyncio.py b/google/cloud/dataproc_v1/services/job_controller/transports/grpc_asyncio.py index 4c9f9d3a..645d1a8c 100644 --- a/google/cloud/dataproc_v1/services/job_controller/transports/grpc_asyncio.py +++ b/google/cloud/dataproc_v1/services/job_controller/transports/grpc_asyncio.py @@ -21,7 +21,6 @@ from google.api_core import operations_v1 # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore -import packaging.version import grpc # type: ignore from grpc.experimental import aio # type: ignore @@ -160,7 +159,7 @@ def __init__( self._grpc_channel = None self._ssl_channel_credentials = ssl_channel_credentials self._stubs: Dict[str, Callable] = {} - self._operations_client = None + self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None if api_mtls_endpoint: warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) diff --git a/google/cloud/dataproc_v1/services/workflow_template_service/async_client.py b/google/cloud/dataproc_v1/services/workflow_template_service/async_client.py index 294b27eb..4d58508b 100644 --- a/google/cloud/dataproc_v1/services/workflow_template_service/async_client.py +++ b/google/cloud/dataproc_v1/services/workflow_template_service/async_client.py @@ -19,13 +19,15 @@ from typing import Dict, Sequence, Tuple, Type, Union import pkg_resources -import google.api_core.client_options as ClientOptions # type: ignore +from google.api_core.client_options import ClientOptions # type: ignore from google.api_core import exceptions as core_exceptions # type: ignore from google.api_core import gapic_v1 # type: ignore from google.api_core import retry as retries # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore +OptionalRetry = Union[retries.Retry, object] + from google.api_core import operation # type: ignore from google.api_core import operation_async # type: ignore from google.cloud.dataproc_v1.services.workflow_template_service import pagers @@ -183,18 +185,18 @@ def __init__( async def create_workflow_template( self, - request: workflow_templates.CreateWorkflowTemplateRequest = None, + request: Union[workflow_templates.CreateWorkflowTemplateRequest, dict] = None, *, parent: str = None, template: workflow_templates.WorkflowTemplate = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> workflow_templates.WorkflowTemplate: r"""Creates new workflow template. Args: - request (:class:`google.cloud.dataproc_v1.types.CreateWorkflowTemplateRequest`): + request (Union[google.cloud.dataproc_v1.types.CreateWorkflowTemplateRequest, dict]): The request object. A request to create a workflow template. parent (:class:`str`): @@ -283,10 +285,10 @@ async def create_workflow_template( async def get_workflow_template( self, - request: workflow_templates.GetWorkflowTemplateRequest = None, + request: Union[workflow_templates.GetWorkflowTemplateRequest, dict] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> workflow_templates.WorkflowTemplate: @@ -295,7 +297,7 @@ async def get_workflow_template( specifying optional version parameter. Args: - request (:class:`google.cloud.dataproc_v1.types.GetWorkflowTemplateRequest`): + request (Union[google.cloud.dataproc_v1.types.GetWorkflowTemplateRequest, dict]): The request object. A request to fetch a workflow template. name (:class:`str`): @@ -378,13 +380,15 @@ async def get_workflow_template( async def instantiate_workflow_template( self, - request: workflow_templates.InstantiateWorkflowTemplateRequest = None, + request: Union[ + workflow_templates.InstantiateWorkflowTemplateRequest, dict + ] = None, *, name: str = None, parameters: Sequence[ workflow_templates.InstantiateWorkflowTemplateRequest.ParametersEntry ] = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: @@ -411,7 +415,7 @@ async def instantiate_workflow_template( be [Empty][google.protobuf.Empty]. Args: - request (:class:`google.cloud.dataproc_v1.types.InstantiateWorkflowTemplateRequest`): + request (Union[google.cloud.dataproc_v1.types.InstantiateWorkflowTemplateRequest, dict]): The request object. A request to instantiate a workflow template. name (:class:`str`): @@ -527,11 +531,13 @@ async def instantiate_workflow_template( async def instantiate_inline_workflow_template( self, - request: workflow_templates.InstantiateInlineWorkflowTemplateRequest = None, + request: Union[ + workflow_templates.InstantiateInlineWorkflowTemplateRequest, dict + ] = None, *, parent: str = None, template: workflow_templates.WorkflowTemplate = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: @@ -563,7 +569,7 @@ async def instantiate_inline_workflow_template( be [Empty][google.protobuf.Empty]. Args: - request (:class:`google.cloud.dataproc_v1.types.InstantiateInlineWorkflowTemplateRequest`): + request (Union[google.cloud.dataproc_v1.types.InstantiateInlineWorkflowTemplateRequest, dict]): The request object. A request to instantiate an inline workflow template. parent (:class:`str`): @@ -675,10 +681,10 @@ async def instantiate_inline_workflow_template( async def update_workflow_template( self, - request: workflow_templates.UpdateWorkflowTemplateRequest = None, + request: Union[workflow_templates.UpdateWorkflowTemplateRequest, dict] = None, *, template: workflow_templates.WorkflowTemplate = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> workflow_templates.WorkflowTemplate: @@ -687,7 +693,7 @@ async def update_workflow_template( server version. Args: - request (:class:`google.cloud.dataproc_v1.types.UpdateWorkflowTemplateRequest`): + request (Union[google.cloud.dataproc_v1.types.UpdateWorkflowTemplateRequest, dict]): The request object. A request to update a workflow template. template (:class:`google.cloud.dataproc_v1.types.WorkflowTemplate`): @@ -761,10 +767,10 @@ async def update_workflow_template( async def list_workflow_templates( self, - request: workflow_templates.ListWorkflowTemplatesRequest = None, + request: Union[workflow_templates.ListWorkflowTemplatesRequest, dict] = None, *, parent: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListWorkflowTemplatesAsyncPager: @@ -772,7 +778,7 @@ async def list_workflow_templates( the request. Args: - request (:class:`google.cloud.dataproc_v1.types.ListWorkflowTemplatesRequest`): + request (Union[google.cloud.dataproc_v1.types.ListWorkflowTemplatesRequest, dict]): The request object. A request to list workflow templates in a project. parent (:class:`str`): @@ -863,10 +869,10 @@ async def list_workflow_templates( async def delete_workflow_template( self, - request: workflow_templates.DeleteWorkflowTemplateRequest = None, + request: Union[workflow_templates.DeleteWorkflowTemplateRequest, dict] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: @@ -874,7 +880,7 @@ async def delete_workflow_template( rogress workflows. Args: - request (:class:`google.cloud.dataproc_v1.types.DeleteWorkflowTemplateRequest`): + request (Union[google.cloud.dataproc_v1.types.DeleteWorkflowTemplateRequest, dict]): The request object. A request to delete a workflow template. Currently started workflows will remain running. diff --git a/google/cloud/dataproc_v1/services/workflow_template_service/client.py b/google/cloud/dataproc_v1/services/workflow_template_service/client.py index c11b5499..7c645c64 100644 --- a/google/cloud/dataproc_v1/services/workflow_template_service/client.py +++ b/google/cloud/dataproc_v1/services/workflow_template_service/client.py @@ -30,6 +30,8 @@ from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.oauth2 import service_account # type: ignore +OptionalRetry = Union[retries.Retry, object] + from google.api_core import operation # type: ignore from google.api_core import operation_async # type: ignore from google.cloud.dataproc_v1.services.workflow_template_service import pagers @@ -396,7 +398,7 @@ def create_workflow_template( *, parent: str = None, template: workflow_templates.WorkflowTemplate = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> workflow_templates.WorkflowTemplate: @@ -486,7 +488,7 @@ def get_workflow_template( request: Union[workflow_templates.GetWorkflowTemplateRequest, dict] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> workflow_templates.WorkflowTemplate: @@ -575,7 +577,7 @@ def instantiate_workflow_template( parameters: Sequence[ workflow_templates.InstantiateWorkflowTemplateRequest.ParametersEntry ] = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: @@ -718,7 +720,7 @@ def instantiate_inline_workflow_template( *, parent: str = None, template: workflow_templates.WorkflowTemplate = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: @@ -862,7 +864,7 @@ def update_workflow_template( request: Union[workflow_templates.UpdateWorkflowTemplateRequest, dict] = None, *, template: workflow_templates.WorkflowTemplate = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> workflow_templates.WorkflowTemplate: @@ -939,7 +941,7 @@ def list_workflow_templates( request: Union[workflow_templates.ListWorkflowTemplatesRequest, dict] = None, *, parent: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListWorkflowTemplatesPager: @@ -1030,7 +1032,7 @@ def delete_workflow_template( request: Union[workflow_templates.DeleteWorkflowTemplateRequest, dict] = None, *, name: str = None, - retry: retries.Retry = gapic_v1.method.DEFAULT, + retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: diff --git a/google/cloud/dataproc_v1/services/workflow_template_service/transports/base.py b/google/cloud/dataproc_v1/services/workflow_template_service/transports/base.py index 343b96c2..cf059b67 100644 --- a/google/cloud/dataproc_v1/services/workflow_template_service/transports/base.py +++ b/google/cloud/dataproc_v1/services/workflow_template_service/transports/base.py @@ -15,7 +15,6 @@ # import abc from typing import Awaitable, Callable, Dict, Optional, Sequence, Union -import packaging.version import pkg_resources import google.auth # type: ignore @@ -38,15 +37,6 @@ except pkg_resources.DistributionNotFound: DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() -try: - # google.auth.__version__ was added in 1.26.0 - _GOOGLE_AUTH_VERSION = google.auth.__version__ -except AttributeError: - try: # try pkg_resources if it is available - _GOOGLE_AUTH_VERSION = pkg_resources.get_distribution("google-auth").version - except pkg_resources.DistributionNotFound: # pragma: NO COVER - _GOOGLE_AUTH_VERSION = None - class WorkflowTemplateServiceTransport(abc.ABC): """Abstract transport class for WorkflowTemplateService.""" @@ -96,7 +86,7 @@ def __init__( host += ":443" self._host = host - scopes_kwargs = self._get_scopes_kwargs(self._host, scopes) + scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} # Save the scopes. self._scopes = scopes @@ -129,29 +119,6 @@ def __init__( # Save the credentials. self._credentials = credentials - # TODO(busunkim): This method is in the base transport - # to avoid duplicating code across the transport classes. These functions - # should be deleted once the minimum required versions of google-auth is increased. - - # TODO: Remove this function once google-auth >= 1.25.0 is required - @classmethod - def _get_scopes_kwargs( - cls, host: str, scopes: Optional[Sequence[str]] - ) -> Dict[str, Optional[Sequence[str]]]: - """Returns scopes kwargs to pass to google-auth methods depending on the google-auth version""" - - scopes_kwargs = {} - - if _GOOGLE_AUTH_VERSION and ( - packaging.version.parse(_GOOGLE_AUTH_VERSION) - >= packaging.version.parse("1.25.0") - ): - scopes_kwargs = {"scopes": scopes, "default_scopes": cls.AUTH_SCOPES} - else: - scopes_kwargs = {"scopes": scopes or cls.AUTH_SCOPES} - - return scopes_kwargs - def _prep_wrapped_messages(self, client_info): # Precompute the wrapped methods. self._wrapped_methods = { @@ -269,7 +236,7 @@ def close(self): raise NotImplementedError() @property - def operations_client(self) -> operations_v1.OperationsClient: + def operations_client(self): """Return the client designed to process long-running operations.""" raise NotImplementedError() diff --git a/google/cloud/dataproc_v1/services/workflow_template_service/transports/grpc.py b/google/cloud/dataproc_v1/services/workflow_template_service/transports/grpc.py index fd20ffed..4140dead 100644 --- a/google/cloud/dataproc_v1/services/workflow_template_service/transports/grpc.py +++ b/google/cloud/dataproc_v1/services/workflow_template_service/transports/grpc.py @@ -114,7 +114,7 @@ def __init__( self._grpc_channel = None self._ssl_channel_credentials = ssl_channel_credentials self._stubs: Dict[str, Callable] = {} - self._operations_client = None + self._operations_client: Optional[operations_v1.OperationsClient] = None if api_mtls_endpoint: warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) diff --git a/google/cloud/dataproc_v1/services/workflow_template_service/transports/grpc_asyncio.py b/google/cloud/dataproc_v1/services/workflow_template_service/transports/grpc_asyncio.py index 729d8f41..b71c7b0d 100644 --- a/google/cloud/dataproc_v1/services/workflow_template_service/transports/grpc_asyncio.py +++ b/google/cloud/dataproc_v1/services/workflow_template_service/transports/grpc_asyncio.py @@ -21,7 +21,6 @@ from google.api_core import operations_v1 # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore -import packaging.version import grpc # type: ignore from grpc.experimental import aio # type: ignore @@ -161,7 +160,7 @@ def __init__( self._grpc_channel = None self._ssl_channel_credentials = ssl_channel_credentials self._stubs: Dict[str, Callable] = {} - self._operations_client = None + self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None if api_mtls_endpoint: warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) diff --git a/google/cloud/dataproc_v1/types/autoscaling_policies.py b/google/cloud/dataproc_v1/types/autoscaling_policies.py index 0b590fe1..31776305 100644 --- a/google/cloud/dataproc_v1/types/autoscaling_policies.py +++ b/google/cloud/dataproc_v1/types/autoscaling_policies.py @@ -39,6 +39,9 @@ class AutoscalingPolicy(proto.Message): r"""Describes an autoscaling policy for Dataproc cluster autoscaler. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: id (str): Required. The policy id. @@ -61,6 +64,7 @@ class AutoscalingPolicy(proto.Message): ``projects/{project_id}/locations/{location}/autoscalingPolicies/{policy_id}`` basic_algorithm (google.cloud.dataproc_v1.types.BasicAutoscalingAlgorithm): + This field is a member of `oneof`_ ``algorithm``. worker_config (google.cloud.dataproc_v1.types.InstanceGroupAutoscalingPolicyConfig): Required. Describes how the autoscaler will operate for primary workers. diff --git a/google/cloud/dataproc_v1/types/batches.py b/google/cloud/dataproc_v1/types/batches.py index 1a6cef8b..165a1076 100644 --- a/google/cloud/dataproc_v1/types/batches.py +++ b/google/cloud/dataproc_v1/types/batches.py @@ -143,6 +143,13 @@ class DeleteBatchRequest(proto.Message): class Batch(proto.Message): r"""A representation of a batch workload in the service. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: name (str): Output only. The resource name of the batch. @@ -155,12 +162,16 @@ class Batch(proto.Message): created. pyspark_batch (google.cloud.dataproc_v1.types.PySparkBatch): Optional. PySpark batch config. + This field is a member of `oneof`_ ``batch_config``. spark_batch (google.cloud.dataproc_v1.types.SparkBatch): Optional. Spark batch config. + This field is a member of `oneof`_ ``batch_config``. spark_r_batch (google.cloud.dataproc_v1.types.SparkRBatch): Optional. SparkR batch config. + This field is a member of `oneof`_ ``batch_config``. spark_sql_batch (google.cloud.dataproc_v1.types.SparkSqlBatch): Optional. SparkSql batch config. + This field is a member of `oneof`_ ``batch_config``. runtime_info (google.cloud.dataproc_v1.types.RuntimeInfo): Output only. Runtime information about batch execution. @@ -302,14 +313,23 @@ class SparkBatch(proto.Message): r"""A configuration for running an `Apache Spark `__ batch workload. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: main_jar_file_uri (str): Optional. The HCFS URI of the jar file that contains the main class. + This field is a member of `oneof`_ ``driver``. main_class (str): Optional. The name of the driver main class. The jar file that contains the class must be in the classpath or specified in ``jar_file_uris``. + This field is a member of `oneof`_ ``driver``. args (Sequence[str]): Optional. The arguments to pass to the driver. Do not include arguments that can be set as batch properties, such diff --git a/google/cloud/dataproc_v1/types/clusters.py b/google/cloud/dataproc_v1/types/clusters.py index a1634912..ce82e9d5 100644 --- a/google/cloud/dataproc_v1/types/clusters.py +++ b/google/cloud/dataproc_v1/types/clusters.py @@ -927,6 +927,13 @@ class SoftwareConfig(proto.Message): class LifecycleConfig(proto.Message): r"""Specifies the cluster auto-delete schedule configuration. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: idle_delete_ttl (google.protobuf.duration_pb2.Duration): Optional. The duration to keep the cluster alive while @@ -939,12 +946,14 @@ class LifecycleConfig(proto.Message): Optional. The time when cluster will be auto-deleted (see JSON representation of `Timestamp `__). + This field is a member of `oneof`_ ``ttl``. auto_delete_ttl (google.protobuf.duration_pb2.Duration): Optional. The lifetime duration of cluster. The cluster will be auto-deleted at the end of this period. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of `Duration `__). + This field is a member of `oneof`_ ``ttl``. idle_start_time (google.protobuf.timestamp_pb2.Timestamp): Output only. The time when cluster became idle (most recent job finished) and became eligible for deletion due to diff --git a/google/cloud/dataproc_v1/types/jobs.py b/google/cloud/dataproc_v1/types/jobs.py index 0acc8554..332ac310 100644 --- a/google/cloud/dataproc_v1/types/jobs.py +++ b/google/cloud/dataproc_v1/types/jobs.py @@ -86,6 +86,13 @@ class HadoopJob(proto.Message): jobs on `Apache Hadoop YARN `__. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: main_jar_file_uri (str): The HCFS URI of the jar file containing the @@ -95,10 +102,12 @@ class HadoopJob(proto.Message): samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop- mapreduce-examples.jar' + This field is a member of `oneof`_ ``driver``. main_class (str): The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in ``jar_file_uris``. + This field is a member of `oneof`_ ``driver``. args (Sequence[str]): Optional. The arguments to pass to the driver. Do not include arguments, such as ``-libjars`` or ``-Dfoo=bar``, @@ -142,14 +151,23 @@ class SparkJob(proto.Message): r"""A Dataproc job for running `Apache Spark `__ applications on YARN. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: main_jar_file_uri (str): The HCFS URI of the jar file that contains the main class. + This field is a member of `oneof`_ ``driver``. main_class (str): The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in ``jar_file_uris``. + This field is a member of `oneof`_ ``driver``. args (Sequence[str]): Optional. The arguments to pass to the driver. Do not include arguments, such as ``--conf``, that can be set as @@ -273,12 +291,21 @@ class HiveJob(proto.Message): r"""A Dataproc job for running `Apache Hive `__ queries on YARN. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: query_file_uri (str): The HCFS URI of the script that contains Hive queries. + This field is a member of `oneof`_ ``queries``. query_list (google.cloud.dataproc_v1.types.QueryList): A list of queries. + This field is a member of `oneof`_ ``queries``. continue_on_failure (bool): Optional. Whether to continue executing queries if a query fails. The default value is ``false``. Setting to ``true`` @@ -313,12 +340,21 @@ class SparkSqlJob(proto.Message): r"""A Dataproc job for running `Apache Spark SQL `__ queries. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: query_file_uri (str): The HCFS URI of the script that contains SQL queries. + This field is a member of `oneof`_ ``queries``. query_list (google.cloud.dataproc_v1.types.QueryList): A list of queries. + This field is a member of `oneof`_ ``queries``. script_variables (Sequence[google.cloud.dataproc_v1.types.SparkSqlJob.ScriptVariablesEntry]): Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET @@ -350,12 +386,21 @@ class PigJob(proto.Message): r"""A Dataproc job for running `Apache Pig `__ queries on YARN. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: query_file_uri (str): The HCFS URI of the script that contains the Pig queries. + This field is a member of `oneof`_ ``queries``. query_list (google.cloud.dataproc_v1.types.QueryList): A list of queries. + This field is a member of `oneof`_ ``queries``. continue_on_failure (bool): Optional. Whether to continue executing queries if a query fails. The default value is ``false``. Setting to ``true`` @@ -440,12 +485,21 @@ class PrestoJob(proto.Message): must be enabled when the cluster is created to submit a Presto job to the cluster. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: query_file_uri (str): The HCFS URI of the script that contains SQL queries. + This field is a member of `oneof`_ ``queries``. query_list (google.cloud.dataproc_v1.types.QueryList): A list of queries. + This field is a member of `oneof`_ ``queries``. continue_on_failure (bool): Optional. Whether to continue executing queries if a query fails. The default value is ``false``. Setting to ``true`` @@ -617,6 +671,13 @@ class State(proto.Enum): class Job(proto.Message): r"""A Dataproc job resource. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: reference (google.cloud.dataproc_v1.types.JobReference): Optional. The fully qualified reference to the job, which @@ -628,20 +689,28 @@ class Job(proto.Message): when, and where to run the job. hadoop_job (google.cloud.dataproc_v1.types.HadoopJob): Optional. Job is a Hadoop job. + This field is a member of `oneof`_ ``type_job``. spark_job (google.cloud.dataproc_v1.types.SparkJob): Optional. Job is a Spark job. + This field is a member of `oneof`_ ``type_job``. pyspark_job (google.cloud.dataproc_v1.types.PySparkJob): Optional. Job is a PySpark job. + This field is a member of `oneof`_ ``type_job``. hive_job (google.cloud.dataproc_v1.types.HiveJob): Optional. Job is a Hive job. + This field is a member of `oneof`_ ``type_job``. pig_job (google.cloud.dataproc_v1.types.PigJob): Optional. Job is a Pig job. + This field is a member of `oneof`_ ``type_job``. spark_r_job (google.cloud.dataproc_v1.types.SparkRJob): Optional. Job is a SparkR job. + This field is a member of `oneof`_ ``type_job``. spark_sql_job (google.cloud.dataproc_v1.types.SparkSqlJob): Optional. Job is a SparkSql job. + This field is a member of `oneof`_ ``type_job``. presto_job (google.cloud.dataproc_v1.types.PrestoJob): Optional. Job is a Presto job. + This field is a member of `oneof`_ ``type_job``. status (google.cloud.dataproc_v1.types.JobStatus): Output only. The job status. Additional application-specific status information may be contained in the type_job and diff --git a/google/cloud/dataproc_v1/types/shared.py b/google/cloud/dataproc_v1/types/shared.py index d4d4b616..62df63e2 100644 --- a/google/cloud/dataproc_v1/types/shared.py +++ b/google/cloud/dataproc_v1/types/shared.py @@ -91,15 +91,24 @@ class EnvironmentConfig(proto.Message): class ExecutionConfig(proto.Message): r"""Execution configuration for a workload. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: service_account (str): Optional. Service account that used to execute workload. network_uri (str): Optional. Network URI to connect workload to. + This field is a member of `oneof`_ ``network``. subnetwork_uri (str): Optional. Subnetwork URI to connect workload to. + This field is a member of `oneof`_ ``network``. network_tags (Sequence[str]): Optional. Tags used for network traffic control. diff --git a/google/cloud/dataproc_v1/types/workflow_templates.py b/google/cloud/dataproc_v1/types/workflow_templates.py index 24556467..3f35da74 100644 --- a/google/cloud/dataproc_v1/types/workflow_templates.py +++ b/google/cloud/dataproc_v1/types/workflow_templates.py @@ -144,15 +144,24 @@ class WorkflowTemplatePlacement(proto.Message): Either ``managed_cluster`` or ``cluster_selector`` is required. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: managed_cluster (google.cloud.dataproc_v1.types.ManagedCluster): A cluster that is managed by the workflow. + This field is a member of `oneof`_ ``placement``. cluster_selector (google.cloud.dataproc_v1.types.ClusterSelector): Optional. A selector that chooses target cluster for jobs based on metadata. The selector is evaluated at the time each job is submitted. + This field is a member of `oneof`_ ``placement``. """ managed_cluster = proto.Field( @@ -221,6 +230,13 @@ class ClusterSelector(proto.Message): class OrderedJob(proto.Message): r"""A job executed by the workflow. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: step_id (str): Required. The step id. The id must be unique among all jobs @@ -237,20 +253,28 @@ class OrderedJob(proto.Message): characters. hadoop_job (google.cloud.dataproc_v1.types.HadoopJob): Optional. Job is a Hadoop job. + This field is a member of `oneof`_ ``job_type``. spark_job (google.cloud.dataproc_v1.types.SparkJob): Optional. Job is a Spark job. + This field is a member of `oneof`_ ``job_type``. pyspark_job (google.cloud.dataproc_v1.types.PySparkJob): Optional. Job is a PySpark job. + This field is a member of `oneof`_ ``job_type``. hive_job (google.cloud.dataproc_v1.types.HiveJob): Optional. Job is a Hive job. + This field is a member of `oneof`_ ``job_type``. pig_job (google.cloud.dataproc_v1.types.PigJob): Optional. Job is a Pig job. + This field is a member of `oneof`_ ``job_type``. spark_r_job (google.cloud.dataproc_v1.types.SparkRJob): Optional. Job is a SparkR job. + This field is a member of `oneof`_ ``job_type``. spark_sql_job (google.cloud.dataproc_v1.types.SparkSqlJob): Optional. Job is a SparkSql job. + This field is a member of `oneof`_ ``job_type``. presto_job (google.cloud.dataproc_v1.types.PrestoJob): Optional. Job is a Presto job. + This field is a member of `oneof`_ ``job_type``. labels (Sequence[google.cloud.dataproc_v1.types.OrderedJob.LabelsEntry]): Optional. The labels to associate with this job. @@ -389,11 +413,20 @@ class TemplateParameter(proto.Message): class ParameterValidation(proto.Message): r"""Configuration for parameter validation. + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + Attributes: regex (google.cloud.dataproc_v1.types.RegexValidation): Validation based on regular expressions. + This field is a member of `oneof`_ ``validation_type``. values (google.cloud.dataproc_v1.types.ValueValidation): Validation based on a list of allowed values. + This field is a member of `oneof`_ ``validation_type``. """ regex = proto.Field( diff --git a/setup.py b/setup.py index e5ab9495..a957238b 100644 --- a/setup.py +++ b/setup.py @@ -32,9 +32,8 @@ # NOTE: Maintainers, please do not require google-api-core>=2.x.x # Until this issue is closed # https://github.com/googleapis/google-cloud-python/issues/10566 - "google-api-core[grpc] >= 1.26.0, <3.0.0dev", + "google-api-core[grpc] >= 1.28.0, <3.0.0dev", "proto-plus >= 1.4.0", - "packaging >= 14.3", ] extras = {"libcst": "libcst >= 0.2.5"} diff --git a/testing/constraints-3.6.txt b/testing/constraints-3.6.txt index e27015a2..96d36040 100644 --- a/testing/constraints-3.6.txt +++ b/testing/constraints-3.6.txt @@ -5,8 +5,6 @@ # # e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev", # Then this file should have foo==1.14.0 -google-api-core==1.26.0 +google-api-core==1.28.0 libcst==0.2.5 proto-plus==1.4.0 -packaging==14.3 -google-auth==1.24.0 # TODO: remove after google-auth>=1.25.0 is transitively required through google-api-core diff --git a/tests/unit/gapic/dataproc_v1/test_autoscaling_policy_service.py b/tests/unit/gapic/dataproc_v1/test_autoscaling_policy_service.py index 880f0c4a..1ee09b40 100644 --- a/tests/unit/gapic/dataproc_v1/test_autoscaling_policy_service.py +++ b/tests/unit/gapic/dataproc_v1/test_autoscaling_policy_service.py @@ -15,7 +15,6 @@ # import os import mock -import packaging.version import grpc from grpc.experimental import aio @@ -40,29 +39,12 @@ ) from google.cloud.dataproc_v1.services.autoscaling_policy_service import pagers from google.cloud.dataproc_v1.services.autoscaling_policy_service import transports -from google.cloud.dataproc_v1.services.autoscaling_policy_service.transports.base import ( - _GOOGLE_AUTH_VERSION, -) from google.cloud.dataproc_v1.types import autoscaling_policies from google.oauth2 import service_account from google.protobuf import duration_pb2 # type: ignore import google.auth -# TODO(busunkim): Once google-auth >= 1.25.0 is required transitively -# through google-api-core: -# - Delete the auth "less than" test cases -# - Delete these pytest markers (Make the "greater than or equal to" tests the default). -requires_google_auth_lt_1_25_0 = pytest.mark.skipif( - packaging.version.parse(_GOOGLE_AUTH_VERSION) >= packaging.version.parse("1.25.0"), - reason="This test requires google-auth < 1.25.0", -) -requires_google_auth_gte_1_25_0 = pytest.mark.skipif( - packaging.version.parse(_GOOGLE_AUTH_VERSION) < packaging.version.parse("1.25.0"), - reason="This test requires google-auth >= 1.25.0", -) - - def client_cert_source_callback(): return b"cert bytes", b"key bytes" @@ -230,7 +212,7 @@ def test_autoscaling_policy_service_client_client_options( options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -247,7 +229,7 @@ def test_autoscaling_policy_service_client_client_options( with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -264,7 +246,7 @@ def test_autoscaling_policy_service_client_client_options( with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -293,7 +275,7 @@ def test_autoscaling_policy_service_client_client_options( options = client_options.ClientOptions(quota_project_id="octopus") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -362,7 +344,7 @@ def test_autoscaling_policy_service_client_mtls_env_auto( ) with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) if use_client_cert_env == "false": expected_client_cert_source = None @@ -404,7 +386,7 @@ def test_autoscaling_policy_service_client_mtls_env_auto( expected_client_cert_source = client_cert_source_callback patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -426,7 +408,7 @@ def test_autoscaling_policy_service_client_mtls_env_auto( return_value=False, ): patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -461,7 +443,7 @@ def test_autoscaling_policy_service_client_client_options_scopes( options = client_options.ClientOptions(scopes=["1", "2"],) with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -496,7 +478,7 @@ def test_autoscaling_policy_service_client_client_options_credentials_file( options = client_options.ClientOptions(credentials_file="credentials.json") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file="credentials.json", @@ -1992,7 +1974,6 @@ def test_autoscaling_policy_service_base_transport(): transport.close() -@requires_google_auth_gte_1_25_0 def test_autoscaling_policy_service_base_transport_with_credentials_file(): # Instantiate the base transport with a credentials file with mock.patch.object( @@ -2013,26 +1994,6 @@ def test_autoscaling_policy_service_base_transport_with_credentials_file(): ) -@requires_google_auth_lt_1_25_0 -def test_autoscaling_policy_service_base_transport_with_credentials_file_old_google_auth(): - # Instantiate the base transport with a credentials file - with mock.patch.object( - google.auth, "load_credentials_from_file", autospec=True - ) as load_creds, mock.patch( - "google.cloud.dataproc_v1.services.autoscaling_policy_service.transports.AutoscalingPolicyServiceTransport._prep_wrapped_messages" - ) as Transport: - Transport.return_value = None - load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.AutoscalingPolicyServiceTransport( - credentials_file="credentials.json", quota_project_id="octopus", - ) - load_creds.assert_called_once_with( - "credentials.json", - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id="octopus", - ) - - def test_autoscaling_policy_service_base_transport_with_adc(): # Test the default credentials are used if credentials and credentials_file are None. with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch( @@ -2044,7 +2005,6 @@ def test_autoscaling_policy_service_base_transport_with_adc(): adc.assert_called_once() -@requires_google_auth_gte_1_25_0 def test_autoscaling_policy_service_auth_adc(): # If no credentials are provided, we should use ADC credentials. with mock.patch.object(google.auth, "default", autospec=True) as adc: @@ -2057,18 +2017,6 @@ def test_autoscaling_policy_service_auth_adc(): ) -@requires_google_auth_lt_1_25_0 -def test_autoscaling_policy_service_auth_adc_old_google_auth(): - # If no credentials are provided, we should use ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - AutoscalingPolicyServiceClient() - adc.assert_called_once_with( - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id=None, - ) - - @pytest.mark.parametrize( "transport_class", [ @@ -2076,7 +2024,6 @@ def test_autoscaling_policy_service_auth_adc_old_google_auth(): transports.AutoscalingPolicyServiceGrpcAsyncIOTransport, ], ) -@requires_google_auth_gte_1_25_0 def test_autoscaling_policy_service_transport_auth_adc(transport_class): # If credentials and host are not provided, the transport class should use # ADC credentials. @@ -2090,26 +2037,6 @@ def test_autoscaling_policy_service_transport_auth_adc(transport_class): ) -@pytest.mark.parametrize( - "transport_class", - [ - transports.AutoscalingPolicyServiceGrpcTransport, - transports.AutoscalingPolicyServiceGrpcAsyncIOTransport, - ], -) -@requires_google_auth_lt_1_25_0 -def test_autoscaling_policy_service_transport_auth_adc_old_google_auth(transport_class): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport_class(quota_project_id="octopus") - adc.assert_called_once_with( - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id="octopus", - ) - - @pytest.mark.parametrize( "transport_class,grpc_helpers", [ diff --git a/tests/unit/gapic/dataproc_v1/test_batch_controller.py b/tests/unit/gapic/dataproc_v1/test_batch_controller.py index 39eb1ab0..b0053cb3 100644 --- a/tests/unit/gapic/dataproc_v1/test_batch_controller.py +++ b/tests/unit/gapic/dataproc_v1/test_batch_controller.py @@ -15,7 +15,6 @@ # import os import mock -import packaging.version import grpc from grpc.experimental import aio @@ -41,9 +40,6 @@ from google.cloud.dataproc_v1.services.batch_controller import BatchControllerClient from google.cloud.dataproc_v1.services.batch_controller import pagers from google.cloud.dataproc_v1.services.batch_controller import transports -from google.cloud.dataproc_v1.services.batch_controller.transports.base import ( - _GOOGLE_AUTH_VERSION, -) from google.cloud.dataproc_v1.types import batches from google.cloud.dataproc_v1.types import operations from google.cloud.dataproc_v1.types import shared @@ -53,20 +49,6 @@ import google.auth -# TODO(busunkim): Once google-auth >= 1.25.0 is required transitively -# through google-api-core: -# - Delete the auth "less than" test cases -# - Delete these pytest markers (Make the "greater than or equal to" tests the default). -requires_google_auth_lt_1_25_0 = pytest.mark.skipif( - packaging.version.parse(_GOOGLE_AUTH_VERSION) >= packaging.version.parse("1.25.0"), - reason="This test requires google-auth < 1.25.0", -) -requires_google_auth_gte_1_25_0 = pytest.mark.skipif( - packaging.version.parse(_GOOGLE_AUTH_VERSION) < packaging.version.parse("1.25.0"), - reason="This test requires google-auth >= 1.25.0", -) - - def client_cert_source_callback(): return b"cert bytes", b"key bytes" @@ -223,7 +205,7 @@ def test_batch_controller_client_client_options( options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -240,7 +222,7 @@ def test_batch_controller_client_client_options( with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -257,7 +239,7 @@ def test_batch_controller_client_client_options( with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -286,7 +268,7 @@ def test_batch_controller_client_client_options( options = client_options.ClientOptions(quota_project_id="octopus") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -355,7 +337,7 @@ def test_batch_controller_client_mtls_env_auto( ) with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) if use_client_cert_env == "false": expected_client_cert_source = None @@ -397,7 +379,7 @@ def test_batch_controller_client_mtls_env_auto( expected_client_cert_source = client_cert_source_callback patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -419,7 +401,7 @@ def test_batch_controller_client_mtls_env_auto( return_value=False, ): patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -450,7 +432,7 @@ def test_batch_controller_client_client_options_scopes( options = client_options.ClientOptions(scopes=["1", "2"],) with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -481,7 +463,7 @@ def test_batch_controller_client_client_options_credentials_file( options = client_options.ClientOptions(credentials_file="credentials.json") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file="credentials.json", @@ -1580,7 +1562,6 @@ def test_batch_controller_base_transport(): transport.operations_client -@requires_google_auth_gte_1_25_0 def test_batch_controller_base_transport_with_credentials_file(): # Instantiate the base transport with a credentials file with mock.patch.object( @@ -1601,26 +1582,6 @@ def test_batch_controller_base_transport_with_credentials_file(): ) -@requires_google_auth_lt_1_25_0 -def test_batch_controller_base_transport_with_credentials_file_old_google_auth(): - # Instantiate the base transport with a credentials file - with mock.patch.object( - google.auth, "load_credentials_from_file", autospec=True - ) as load_creds, mock.patch( - "google.cloud.dataproc_v1.services.batch_controller.transports.BatchControllerTransport._prep_wrapped_messages" - ) as Transport: - Transport.return_value = None - load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.BatchControllerTransport( - credentials_file="credentials.json", quota_project_id="octopus", - ) - load_creds.assert_called_once_with( - "credentials.json", - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id="octopus", - ) - - def test_batch_controller_base_transport_with_adc(): # Test the default credentials are used if credentials and credentials_file are None. with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch( @@ -1632,7 +1593,6 @@ def test_batch_controller_base_transport_with_adc(): adc.assert_called_once() -@requires_google_auth_gte_1_25_0 def test_batch_controller_auth_adc(): # If no credentials are provided, we should use ADC credentials. with mock.patch.object(google.auth, "default", autospec=True) as adc: @@ -1645,18 +1605,6 @@ def test_batch_controller_auth_adc(): ) -@requires_google_auth_lt_1_25_0 -def test_batch_controller_auth_adc_old_google_auth(): - # If no credentials are provided, we should use ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - BatchControllerClient() - adc.assert_called_once_with( - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id=None, - ) - - @pytest.mark.parametrize( "transport_class", [ @@ -1664,7 +1612,6 @@ def test_batch_controller_auth_adc_old_google_auth(): transports.BatchControllerGrpcAsyncIOTransport, ], ) -@requires_google_auth_gte_1_25_0 def test_batch_controller_transport_auth_adc(transport_class): # If credentials and host are not provided, the transport class should use # ADC credentials. @@ -1678,26 +1625,6 @@ def test_batch_controller_transport_auth_adc(transport_class): ) -@pytest.mark.parametrize( - "transport_class", - [ - transports.BatchControllerGrpcTransport, - transports.BatchControllerGrpcAsyncIOTransport, - ], -) -@requires_google_auth_lt_1_25_0 -def test_batch_controller_transport_auth_adc_old_google_auth(transport_class): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport_class(quota_project_id="octopus") - adc.assert_called_once_with( - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id="octopus", - ) - - @pytest.mark.parametrize( "transport_class,grpc_helpers", [ diff --git a/tests/unit/gapic/dataproc_v1/test_cluster_controller.py b/tests/unit/gapic/dataproc_v1/test_cluster_controller.py index 5fae118e..12b1ccce 100644 --- a/tests/unit/gapic/dataproc_v1/test_cluster_controller.py +++ b/tests/unit/gapic/dataproc_v1/test_cluster_controller.py @@ -15,7 +15,6 @@ # import os import mock -import packaging.version import grpc from grpc.experimental import aio @@ -41,9 +40,6 @@ from google.cloud.dataproc_v1.services.cluster_controller import ClusterControllerClient from google.cloud.dataproc_v1.services.cluster_controller import pagers from google.cloud.dataproc_v1.services.cluster_controller import transports -from google.cloud.dataproc_v1.services.cluster_controller.transports.base import ( - _GOOGLE_AUTH_VERSION, -) from google.cloud.dataproc_v1.types import clusters from google.cloud.dataproc_v1.types import operations from google.cloud.dataproc_v1.types import shared @@ -55,20 +51,6 @@ import google.auth -# TODO(busunkim): Once google-auth >= 1.25.0 is required transitively -# through google-api-core: -# - Delete the auth "less than" test cases -# - Delete these pytest markers (Make the "greater than or equal to" tests the default). -requires_google_auth_lt_1_25_0 = pytest.mark.skipif( - packaging.version.parse(_GOOGLE_AUTH_VERSION) >= packaging.version.parse("1.25.0"), - reason="This test requires google-auth < 1.25.0", -) -requires_google_auth_gte_1_25_0 = pytest.mark.skipif( - packaging.version.parse(_GOOGLE_AUTH_VERSION) < packaging.version.parse("1.25.0"), - reason="This test requires google-auth >= 1.25.0", -) - - def client_cert_source_callback(): return b"cert bytes", b"key bytes" @@ -226,7 +208,7 @@ def test_cluster_controller_client_client_options( options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -243,7 +225,7 @@ def test_cluster_controller_client_client_options( with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -260,7 +242,7 @@ def test_cluster_controller_client_client_options( with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -289,7 +271,7 @@ def test_cluster_controller_client_client_options( options = client_options.ClientOptions(quota_project_id="octopus") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -358,7 +340,7 @@ def test_cluster_controller_client_mtls_env_auto( ) with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) if use_client_cert_env == "false": expected_client_cert_source = None @@ -400,7 +382,7 @@ def test_cluster_controller_client_mtls_env_auto( expected_client_cert_source = client_cert_source_callback patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -422,7 +404,7 @@ def test_cluster_controller_client_mtls_env_auto( return_value=False, ): patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -453,7 +435,7 @@ def test_cluster_controller_client_client_options_scopes( options = client_options.ClientOptions(scopes=["1", "2"],) with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -484,7 +466,7 @@ def test_cluster_controller_client_client_options_credentials_file( options = client_options.ClientOptions(credentials_file="credentials.json") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file="credentials.json", @@ -1929,7 +1911,6 @@ def test_cluster_controller_base_transport(): transport.operations_client -@requires_google_auth_gte_1_25_0 def test_cluster_controller_base_transport_with_credentials_file(): # Instantiate the base transport with a credentials file with mock.patch.object( @@ -1950,26 +1931,6 @@ def test_cluster_controller_base_transport_with_credentials_file(): ) -@requires_google_auth_lt_1_25_0 -def test_cluster_controller_base_transport_with_credentials_file_old_google_auth(): - # Instantiate the base transport with a credentials file - with mock.patch.object( - google.auth, "load_credentials_from_file", autospec=True - ) as load_creds, mock.patch( - "google.cloud.dataproc_v1.services.cluster_controller.transports.ClusterControllerTransport._prep_wrapped_messages" - ) as Transport: - Transport.return_value = None - load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.ClusterControllerTransport( - credentials_file="credentials.json", quota_project_id="octopus", - ) - load_creds.assert_called_once_with( - "credentials.json", - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id="octopus", - ) - - def test_cluster_controller_base_transport_with_adc(): # Test the default credentials are used if credentials and credentials_file are None. with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch( @@ -1981,7 +1942,6 @@ def test_cluster_controller_base_transport_with_adc(): adc.assert_called_once() -@requires_google_auth_gte_1_25_0 def test_cluster_controller_auth_adc(): # If no credentials are provided, we should use ADC credentials. with mock.patch.object(google.auth, "default", autospec=True) as adc: @@ -1994,18 +1954,6 @@ def test_cluster_controller_auth_adc(): ) -@requires_google_auth_lt_1_25_0 -def test_cluster_controller_auth_adc_old_google_auth(): - # If no credentials are provided, we should use ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - ClusterControllerClient() - adc.assert_called_once_with( - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id=None, - ) - - @pytest.mark.parametrize( "transport_class", [ @@ -2013,7 +1961,6 @@ def test_cluster_controller_auth_adc_old_google_auth(): transports.ClusterControllerGrpcAsyncIOTransport, ], ) -@requires_google_auth_gte_1_25_0 def test_cluster_controller_transport_auth_adc(transport_class): # If credentials and host are not provided, the transport class should use # ADC credentials. @@ -2027,26 +1974,6 @@ def test_cluster_controller_transport_auth_adc(transport_class): ) -@pytest.mark.parametrize( - "transport_class", - [ - transports.ClusterControllerGrpcTransport, - transports.ClusterControllerGrpcAsyncIOTransport, - ], -) -@requires_google_auth_lt_1_25_0 -def test_cluster_controller_transport_auth_adc_old_google_auth(transport_class): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport_class(quota_project_id="octopus") - adc.assert_called_once_with( - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id="octopus", - ) - - @pytest.mark.parametrize( "transport_class,grpc_helpers", [ diff --git a/tests/unit/gapic/dataproc_v1/test_job_controller.py b/tests/unit/gapic/dataproc_v1/test_job_controller.py index 05fcd58b..7202d50e 100644 --- a/tests/unit/gapic/dataproc_v1/test_job_controller.py +++ b/tests/unit/gapic/dataproc_v1/test_job_controller.py @@ -15,7 +15,6 @@ # import os import mock -import packaging.version import grpc from grpc.experimental import aio @@ -39,9 +38,6 @@ from google.cloud.dataproc_v1.services.job_controller import JobControllerClient from google.cloud.dataproc_v1.services.job_controller import pagers from google.cloud.dataproc_v1.services.job_controller import transports -from google.cloud.dataproc_v1.services.job_controller.transports.base import ( - _GOOGLE_AUTH_VERSION, -) from google.cloud.dataproc_v1.types import jobs from google.longrunning import operations_pb2 from google.oauth2 import service_account @@ -50,20 +46,6 @@ import google.auth -# TODO(busunkim): Once google-auth >= 1.25.0 is required transitively -# through google-api-core: -# - Delete the auth "less than" test cases -# - Delete these pytest markers (Make the "greater than or equal to" tests the default). -requires_google_auth_lt_1_25_0 = pytest.mark.skipif( - packaging.version.parse(_GOOGLE_AUTH_VERSION) >= packaging.version.parse("1.25.0"), - reason="This test requires google-auth < 1.25.0", -) -requires_google_auth_gte_1_25_0 = pytest.mark.skipif( - packaging.version.parse(_GOOGLE_AUTH_VERSION) < packaging.version.parse("1.25.0"), - reason="This test requires google-auth >= 1.25.0", -) - - def client_cert_source_callback(): return b"cert bytes", b"key bytes" @@ -220,7 +202,7 @@ def test_job_controller_client_client_options( options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -237,7 +219,7 @@ def test_job_controller_client_client_options( with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -254,7 +236,7 @@ def test_job_controller_client_client_options( with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -283,7 +265,7 @@ def test_job_controller_client_client_options( options = client_options.ClientOptions(quota_project_id="octopus") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -342,7 +324,7 @@ def test_job_controller_client_mtls_env_auto( ) with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) if use_client_cert_env == "false": expected_client_cert_source = None @@ -384,7 +366,7 @@ def test_job_controller_client_mtls_env_auto( expected_client_cert_source = client_cert_source_callback patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -406,7 +388,7 @@ def test_job_controller_client_mtls_env_auto( return_value=False, ): patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -437,7 +419,7 @@ def test_job_controller_client_client_options_scopes( options = client_options.ClientOptions(scopes=["1", "2"],) with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -468,7 +450,7 @@ def test_job_controller_client_client_options_credentials_file( options = client_options.ClientOptions(credentials_file="credentials.json") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file="credentials.json", @@ -1847,7 +1829,6 @@ def test_job_controller_base_transport(): transport.operations_client -@requires_google_auth_gte_1_25_0 def test_job_controller_base_transport_with_credentials_file(): # Instantiate the base transport with a credentials file with mock.patch.object( @@ -1868,26 +1849,6 @@ def test_job_controller_base_transport_with_credentials_file(): ) -@requires_google_auth_lt_1_25_0 -def test_job_controller_base_transport_with_credentials_file_old_google_auth(): - # Instantiate the base transport with a credentials file - with mock.patch.object( - google.auth, "load_credentials_from_file", autospec=True - ) as load_creds, mock.patch( - "google.cloud.dataproc_v1.services.job_controller.transports.JobControllerTransport._prep_wrapped_messages" - ) as Transport: - Transport.return_value = None - load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.JobControllerTransport( - credentials_file="credentials.json", quota_project_id="octopus", - ) - load_creds.assert_called_once_with( - "credentials.json", - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id="octopus", - ) - - def test_job_controller_base_transport_with_adc(): # Test the default credentials are used if credentials and credentials_file are None. with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch( @@ -1899,7 +1860,6 @@ def test_job_controller_base_transport_with_adc(): adc.assert_called_once() -@requires_google_auth_gte_1_25_0 def test_job_controller_auth_adc(): # If no credentials are provided, we should use ADC credentials. with mock.patch.object(google.auth, "default", autospec=True) as adc: @@ -1912,18 +1872,6 @@ def test_job_controller_auth_adc(): ) -@requires_google_auth_lt_1_25_0 -def test_job_controller_auth_adc_old_google_auth(): - # If no credentials are provided, we should use ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - JobControllerClient() - adc.assert_called_once_with( - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id=None, - ) - - @pytest.mark.parametrize( "transport_class", [ @@ -1931,7 +1879,6 @@ def test_job_controller_auth_adc_old_google_auth(): transports.JobControllerGrpcAsyncIOTransport, ], ) -@requires_google_auth_gte_1_25_0 def test_job_controller_transport_auth_adc(transport_class): # If credentials and host are not provided, the transport class should use # ADC credentials. @@ -1945,26 +1892,6 @@ def test_job_controller_transport_auth_adc(transport_class): ) -@pytest.mark.parametrize( - "transport_class", - [ - transports.JobControllerGrpcTransport, - transports.JobControllerGrpcAsyncIOTransport, - ], -) -@requires_google_auth_lt_1_25_0 -def test_job_controller_transport_auth_adc_old_google_auth(transport_class): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport_class(quota_project_id="octopus") - adc.assert_called_once_with( - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id="octopus", - ) - - @pytest.mark.parametrize( "transport_class,grpc_helpers", [ diff --git a/tests/unit/gapic/dataproc_v1/test_workflow_template_service.py b/tests/unit/gapic/dataproc_v1/test_workflow_template_service.py index 3e220b7a..c5355e43 100644 --- a/tests/unit/gapic/dataproc_v1/test_workflow_template_service.py +++ b/tests/unit/gapic/dataproc_v1/test_workflow_template_service.py @@ -15,7 +15,6 @@ # import os import mock -import packaging.version import grpc from grpc.experimental import aio @@ -43,9 +42,6 @@ ) from google.cloud.dataproc_v1.services.workflow_template_service import pagers from google.cloud.dataproc_v1.services.workflow_template_service import transports -from google.cloud.dataproc_v1.services.workflow_template_service.transports.base import ( - _GOOGLE_AUTH_VERSION, -) from google.cloud.dataproc_v1.types import clusters from google.cloud.dataproc_v1.types import jobs from google.cloud.dataproc_v1.types import shared @@ -57,20 +53,6 @@ import google.auth -# TODO(busunkim): Once google-auth >= 1.25.0 is required transitively -# through google-api-core: -# - Delete the auth "less than" test cases -# - Delete these pytest markers (Make the "greater than or equal to" tests the default). -requires_google_auth_lt_1_25_0 = pytest.mark.skipif( - packaging.version.parse(_GOOGLE_AUTH_VERSION) >= packaging.version.parse("1.25.0"), - reason="This test requires google-auth < 1.25.0", -) -requires_google_auth_gte_1_25_0 = pytest.mark.skipif( - packaging.version.parse(_GOOGLE_AUTH_VERSION) < packaging.version.parse("1.25.0"), - reason="This test requires google-auth >= 1.25.0", -) - - def client_cert_source_callback(): return b"cert bytes", b"key bytes" @@ -232,7 +214,7 @@ def test_workflow_template_service_client_client_options( options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -249,7 +231,7 @@ def test_workflow_template_service_client_client_options( with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -266,7 +248,7 @@ def test_workflow_template_service_client_client_options( with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -295,7 +277,7 @@ def test_workflow_template_service_client_client_options( options = client_options.ClientOptions(quota_project_id="octopus") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -364,7 +346,7 @@ def test_workflow_template_service_client_mtls_env_auto( ) with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) if use_client_cert_env == "false": expected_client_cert_source = None @@ -406,7 +388,7 @@ def test_workflow_template_service_client_mtls_env_auto( expected_client_cert_source = client_cert_source_callback patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -428,7 +410,7 @@ def test_workflow_template_service_client_mtls_env_auto( return_value=False, ): patched.return_value = None - client = client_class() + client = client_class(transport=transport_name) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -463,7 +445,7 @@ def test_workflow_template_service_client_client_options_scopes( options = client_options.ClientOptions(scopes=["1", "2"],) with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file=None, @@ -498,7 +480,7 @@ def test_workflow_template_service_client_client_options_credentials_file( options = client_options.ClientOptions(credentials_file="credentials.json") with mock.patch.object(transport_class, "__init__") as patched: patched.return_value = None - client = client_class(client_options=options) + client = client_class(transport=transport_name, client_options=options) patched.assert_called_once_with( credentials=None, credentials_file="credentials.json", @@ -2460,7 +2442,6 @@ def test_workflow_template_service_base_transport(): transport.operations_client -@requires_google_auth_gte_1_25_0 def test_workflow_template_service_base_transport_with_credentials_file(): # Instantiate the base transport with a credentials file with mock.patch.object( @@ -2481,26 +2462,6 @@ def test_workflow_template_service_base_transport_with_credentials_file(): ) -@requires_google_auth_lt_1_25_0 -def test_workflow_template_service_base_transport_with_credentials_file_old_google_auth(): - # Instantiate the base transport with a credentials file - with mock.patch.object( - google.auth, "load_credentials_from_file", autospec=True - ) as load_creds, mock.patch( - "google.cloud.dataproc_v1.services.workflow_template_service.transports.WorkflowTemplateServiceTransport._prep_wrapped_messages" - ) as Transport: - Transport.return_value = None - load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.WorkflowTemplateServiceTransport( - credentials_file="credentials.json", quota_project_id="octopus", - ) - load_creds.assert_called_once_with( - "credentials.json", - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id="octopus", - ) - - def test_workflow_template_service_base_transport_with_adc(): # Test the default credentials are used if credentials and credentials_file are None. with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch( @@ -2512,7 +2473,6 @@ def test_workflow_template_service_base_transport_with_adc(): adc.assert_called_once() -@requires_google_auth_gte_1_25_0 def test_workflow_template_service_auth_adc(): # If no credentials are provided, we should use ADC credentials. with mock.patch.object(google.auth, "default", autospec=True) as adc: @@ -2525,18 +2485,6 @@ def test_workflow_template_service_auth_adc(): ) -@requires_google_auth_lt_1_25_0 -def test_workflow_template_service_auth_adc_old_google_auth(): - # If no credentials are provided, we should use ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - WorkflowTemplateServiceClient() - adc.assert_called_once_with( - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id=None, - ) - - @pytest.mark.parametrize( "transport_class", [ @@ -2544,7 +2492,6 @@ def test_workflow_template_service_auth_adc_old_google_auth(): transports.WorkflowTemplateServiceGrpcAsyncIOTransport, ], ) -@requires_google_auth_gte_1_25_0 def test_workflow_template_service_transport_auth_adc(transport_class): # If credentials and host are not provided, the transport class should use # ADC credentials. @@ -2558,26 +2505,6 @@ def test_workflow_template_service_transport_auth_adc(transport_class): ) -@pytest.mark.parametrize( - "transport_class", - [ - transports.WorkflowTemplateServiceGrpcTransport, - transports.WorkflowTemplateServiceGrpcAsyncIOTransport, - ], -) -@requires_google_auth_lt_1_25_0 -def test_workflow_template_service_transport_auth_adc_old_google_auth(transport_class): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport_class(quota_project_id="octopus") - adc.assert_called_once_with( - scopes=("https://www.googleapis.com/auth/cloud-platform",), - quota_project_id="octopus", - ) - - @pytest.mark.parametrize( "transport_class,grpc_helpers", [