diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index bb21147..fccaa8e 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:3abfa0f1886adaf0b83f07cb117b24a639ea1cb9cffe56d43280b977033563eb + digest: sha256:3bf87e47c2173d7eed42714589dc4da2c07c3268610f1e47f8e1a30decbfc7f1 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 9c1b9be..05dc467 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -20,9 +20,9 @@ cachetools==5.2.0 \ --hash=sha256:6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757 \ --hash=sha256:f9f17d2aec496a9aa6b76f53e3b614c965223c061982d434d160f930c698a9db # via google-auth -certifi==2022.9.24 \ - --hash=sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14 \ - --hash=sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382 +certifi==2022.12.7 \ + --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \ + --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18 # via requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 46d2371..5405cc8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -25,7 +25,7 @@ repos: rev: 22.3.0 hooks: - id: black -- repo: https://gitlab.com/pycqa/flake8 +- repo: https://github.com/pycqa/flake8 rev: 3.9.2 hooks: - id: flake8 diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f1c1e58..bcd0522 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.5.0" + ".": "0.6.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index b8c5580..0d894e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [0.6.0](https://github.com/googleapis/python-batch/compare/v0.5.0...v0.6.0) (2022-12-15) + + +### Features + +* Add InstancePolicy.boot_disk ([7e275de](https://github.com/googleapis/python-batch/commit/7e275de7ad29f3f410439469a83969a0b94716b0)) + + +### Bug Fixes + +* Removed unused endpoints for IAM methods ([7e275de](https://github.com/googleapis/python-batch/commit/7e275de7ad29f3f410439469a83969a0b94716b0)) +* **rest:** Remove unsupported HTTP bindings for IAMPolicy RPCs ([7e275de](https://github.com/googleapis/python-batch/commit/7e275de7ad29f3f410439469a83969a0b94716b0)) +* ServiceAccount.scopes is no longer deprecated ([7e275de](https://github.com/googleapis/python-batch/commit/7e275de7ad29f3f410439469a83969a0b94716b0)) + ## [0.5.0](https://github.com/googleapis/python-batch/compare/v0.4.1...v0.5.0) (2022-12-07) diff --git a/google/cloud/batch/gapic_version.py b/google/cloud/batch/gapic_version.py index 371eb6b..06b4a76 100644 --- a/google/cloud/batch/gapic_version.py +++ b/google/cloud/batch/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "0.5.0" # {x-release-please-version} +__version__ = "0.6.0" # {x-release-please-version} diff --git a/google/cloud/batch_v1/gapic_version.py b/google/cloud/batch_v1/gapic_version.py index 371eb6b..06b4a76 100644 --- a/google/cloud/batch_v1/gapic_version.py +++ b/google/cloud/batch_v1/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "0.5.0" # {x-release-please-version} +__version__ = "0.6.0" # {x-release-please-version} diff --git a/google/cloud/batch_v1/services/batch_service/transports/rest.py b/google/cloud/batch_v1/services/batch_service/transports/rest.py index d904994..142dd4e 100644 --- a/google/cloud/batch_v1/services/batch_service/transports/rest.py +++ b/google/cloud/batch_v1/services/batch_service/transports/rest.py @@ -62,10 +62,6 @@ rest_version=requests_version, ) -# TODO (numeric enums): This file was generated with the option to -# request that the server respond with enums JSON-encoded as -# numbers. The code below does not implement that functionality yet. - class BatchServiceRestInterceptor: """Interceptor for BatchService. @@ -82,47 +78,53 @@ class BatchServiceRestInterceptor: .. code-block:: python class MyCustomBatchServiceInterceptor(BatchServiceRestInterceptor): - def pre_create_job(request, metadata): + def pre_create_job(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_create_job(response): + def post_create_job(self, response): logging.log(f"Received response: {response}") + return response - def pre_delete_job(request, metadata): + def pre_delete_job(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_delete_job(response): + def post_delete_job(self, response): logging.log(f"Received response: {response}") + return response - def pre_get_job(request, metadata): + def pre_get_job(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_get_job(response): + def post_get_job(self, response): logging.log(f"Received response: {response}") + return response - def pre_get_task(request, metadata): + def pre_get_task(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_get_task(response): + def post_get_task(self, response): logging.log(f"Received response: {response}") + return response - def pre_list_jobs(request, metadata): + def pre_list_jobs(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_list_jobs(response): + def post_list_jobs(self, response): logging.log(f"Received response: {response}") + return response - def pre_list_tasks(request, metadata): + def pre_list_tasks(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_list_tasks(response): + def post_list_tasks(self, response): logging.log(f"Received response: {response}") + return response transport = BatchServiceRestTransport(interceptor=MyCustomBatchServiceInterceptor()) client = BatchServiceClient(transport=transport) @@ -1320,14 +1322,6 @@ def __call__( "method": "get", "uri": "/v1/{resource=projects/*/locations/*/jobs/*}:getIamPolicy", }, - { - "method": "get", - "uri": "/v1/{resource=projects/*/locations/*/tasks/*}:getIamPolicy", - }, - { - "method": "get", - "uri": "/v1/{resource=projects/*/locations/*/nodes/*}:getIamPolicy", - }, ] request, metadata = self._interceptor.pre_get_iam_policy(request, metadata) @@ -1396,16 +1390,6 @@ def __call__( "uri": "/v1/{resource=projects/*/locations/*/jobs/*}:setIamPolicy", "body": "*", }, - { - "method": "post", - "uri": "/v1/{resource=projects/*/locations/*/tasks/*}:setIamPolicy", - "body": "*", - }, - { - "method": "post", - "uri": "/v1/{resource=projects/*/locations/*/nodes/*}:setIamPolicy", - "body": "*", - }, ] request, metadata = self._interceptor.pre_set_iam_policy(request, metadata) @@ -1476,16 +1460,6 @@ def __call__( "uri": "/v1/{resource=projects/*/locations/*/jobs/*}:testIamPermissions", "body": "*", }, - { - "method": "post", - "uri": "/v1/{resource=projects/*/locations/*/tasks/*}:testIamPermissions", - "body": "*", - }, - { - "method": "post", - "uri": "/v1/{resource=projects/*/locations/*/nodes/*}:testIamPermissions", - "body": "*", - }, ] request, metadata = self._interceptor.pre_test_iam_permissions( diff --git a/google/cloud/batch_v1/types/task.py b/google/cloud/batch_v1/types/task.py index 9286f34..ec6a62c 100644 --- a/google/cloud/batch_v1/types/task.py +++ b/google/cloud/batch_v1/types/task.py @@ -397,8 +397,8 @@ class TaskSpec(proto.Message): means if the exit code is 0, exit task. If task ends with non-zero exit code, retry the task with max_retry_count. environments (MutableMapping[str, str]): - Environment variables to set before running - the Task. You can set up to 100 environments. + Deprecated: please use + environment(non-plural) instead. volumes (MutableSequence[google.cloud.batch_v1.types.Volume]): Volumes to mount before running Tasks using this TaskSpec. diff --git a/google/cloud/batch_v1alpha/gapic_version.py b/google/cloud/batch_v1alpha/gapic_version.py index 371eb6b..06b4a76 100644 --- a/google/cloud/batch_v1alpha/gapic_version.py +++ b/google/cloud/batch_v1alpha/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "0.5.0" # {x-release-please-version} +__version__ = "0.6.0" # {x-release-please-version} diff --git a/google/cloud/batch_v1alpha/services/batch_service/transports/rest.py b/google/cloud/batch_v1alpha/services/batch_service/transports/rest.py index 2771f6e..f6eb02b 100644 --- a/google/cloud/batch_v1alpha/services/batch_service/transports/rest.py +++ b/google/cloud/batch_v1alpha/services/batch_service/transports/rest.py @@ -62,10 +62,6 @@ rest_version=requests_version, ) -# TODO (numeric enums): This file was generated with the option to -# request that the server respond with enums JSON-encoded as -# numbers. The code below does not implement that functionality yet. - class BatchServiceRestInterceptor: """Interceptor for BatchService. @@ -82,47 +78,53 @@ class BatchServiceRestInterceptor: .. code-block:: python class MyCustomBatchServiceInterceptor(BatchServiceRestInterceptor): - def pre_create_job(request, metadata): + def pre_create_job(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_create_job(response): + def post_create_job(self, response): logging.log(f"Received response: {response}") + return response - def pre_delete_job(request, metadata): + def pre_delete_job(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_delete_job(response): + def post_delete_job(self, response): logging.log(f"Received response: {response}") + return response - def pre_get_job(request, metadata): + def pre_get_job(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_get_job(response): + def post_get_job(self, response): logging.log(f"Received response: {response}") + return response - def pre_get_task(request, metadata): + def pre_get_task(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_get_task(response): + def post_get_task(self, response): logging.log(f"Received response: {response}") + return response - def pre_list_jobs(request, metadata): + def pre_list_jobs(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_list_jobs(response): + def post_list_jobs(self, response): logging.log(f"Received response: {response}") + return response - def pre_list_tasks(request, metadata): + def pre_list_tasks(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_list_tasks(response): + def post_list_tasks(self, response): logging.log(f"Received response: {response}") + return response transport = BatchServiceRestTransport(interceptor=MyCustomBatchServiceInterceptor()) client = BatchServiceClient(transport=transport) @@ -1320,14 +1322,6 @@ def __call__( "method": "get", "uri": "/v1alpha/{resource=projects/*/locations/*/jobs/*}:getIamPolicy", }, - { - "method": "get", - "uri": "/v1alpha/{resource=projects/*/locations/*/tasks/*}:getIamPolicy", - }, - { - "method": "get", - "uri": "/v1alpha/{resource=projects/*/locations/*/nodes/*}:getIamPolicy", - }, ] request, metadata = self._interceptor.pre_get_iam_policy(request, metadata) @@ -1396,16 +1390,6 @@ def __call__( "uri": "/v1alpha/{resource=projects/*/locations/*/jobs/*}:setIamPolicy", "body": "*", }, - { - "method": "post", - "uri": "/v1alpha/{resource=projects/*/locations/*/tasks/*}:setIamPolicy", - "body": "*", - }, - { - "method": "post", - "uri": "/v1alpha/{resource=projects/*/locations/*/nodes/*}:setIamPolicy", - "body": "*", - }, ] request, metadata = self._interceptor.pre_set_iam_policy(request, metadata) @@ -1476,16 +1460,6 @@ def __call__( "uri": "/v1alpha/{resource=projects/*/locations/*/jobs/*}:testIamPermissions", "body": "*", }, - { - "method": "post", - "uri": "/v1alpha/{resource=projects/*/locations/*/tasks/*}:testIamPermissions", - "body": "*", - }, - { - "method": "post", - "uri": "/v1alpha/{resource=projects/*/locations/*/nodes/*}:testIamPermissions", - "body": "*", - }, ] request, metadata = self._interceptor.pre_test_iam_permissions( diff --git a/google/cloud/batch_v1alpha/types/job.py b/google/cloud/batch_v1alpha/types/job.py index e4969b9..cfca93b 100644 --- a/google/cloud/batch_v1alpha/types/job.py +++ b/google/cloud/batch_v1alpha/types/job.py @@ -612,6 +612,10 @@ class InstancePolicy(proto.Message): accelerators (MutableSequence[google.cloud.batch_v1alpha.types.AllocationPolicy.Accelerator]): The accelerators attached to each VM instance. + boot_disk (google.cloud.batch_v1alpha.types.AllocationPolicy.Disk): + Book disk to be created and attached to each + VM by this InstancePolicy. Boot disk will be + deleted when the VM is deleted. disks (MutableSequence[google.cloud.batch_v1alpha.types.AllocationPolicy.AttachedDisk]): Non-boot disks to be attached for each VM created by this InstancePolicy. New disks will @@ -645,6 +649,11 @@ class InstancePolicy(proto.Message): number=5, message="AllocationPolicy.Accelerator", ) + boot_disk: "AllocationPolicy.Disk" = proto.Field( + proto.MESSAGE, + number=8, + message="AllocationPolicy.Disk", + ) disks: MutableSequence["AllocationPolicy.AttachedDisk"] = proto.RepeatedField( proto.MESSAGE, number=6, diff --git a/google/cloud/batch_v1alpha/types/task.py b/google/cloud/batch_v1alpha/types/task.py index b6405df..93932f8 100644 --- a/google/cloud/batch_v1alpha/types/task.py +++ b/google/cloud/batch_v1alpha/types/task.py @@ -411,8 +411,8 @@ class TaskSpec(proto.Message): means if the exit code is 0, exit task. If task ends with non-zero exit code, retry the task with max_retry_count. environments (MutableMapping[str, str]): - Environment variables to set before running - the Task. You can set up to 100 environments. + Deprecated: please use + environment(non-plural) instead. volumes (MutableSequence[google.cloud.batch_v1alpha.types.Volume]): Volumes to mount before running Tasks using this TaskSpec. diff --git a/samples/generated_samples/snippet_metadata_google.cloud.batch.v1.json b/samples/generated_samples/snippet_metadata_google.cloud.batch.v1.json index 86c9432..e34bdd0 100644 --- a/samples/generated_samples/snippet_metadata_google.cloud.batch.v1.json +++ b/samples/generated_samples/snippet_metadata_google.cloud.batch.v1.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-cloud-batch", - "version": "0.5.0" + "version": "0.6.0" }, "snippets": [ { diff --git a/samples/generated_samples/snippet_metadata_google.cloud.batch.v1alpha.json b/samples/generated_samples/snippet_metadata_google.cloud.batch.v1alpha.json index 336b067..6bd2d6c 100644 --- a/samples/generated_samples/snippet_metadata_google.cloud.batch.v1alpha.json +++ b/samples/generated_samples/snippet_metadata_google.cloud.batch.v1alpha.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-cloud-batch", - "version": "0.5.0" + "version": "0.6.0" }, "snippets": [ { diff --git a/tests/unit/gapic/batch_v1alpha/test_batch_service.py b/tests/unit/gapic/batch_v1alpha/test_batch_service.py index f0256a4..2b4bf71 100644 --- a/tests/unit/gapic/batch_v1alpha/test_batch_service.py +++ b/tests/unit/gapic/batch_v1alpha/test_batch_service.py @@ -2630,15 +2630,16 @@ def test_create_job_rest(request_type): "install_gpu_drivers": True, } ], + "boot_disk": { + "image": "image_value", + "snapshot": "snapshot_value", + "type_": "type__value", + "size_gb": 739, + "disk_interface": "disk_interface_value", + }, "disks": [ { - "new_disk": { - "image": "image_value", - "snapshot": "snapshot_value", - "type_": "type__value", - "size_gb": 739, - "disk_interface": "disk_interface_value", - }, + "new_disk": {}, "existing_disk": "existing_disk_value", "device_name": "device_name_value", } @@ -3006,15 +3007,16 @@ def test_create_job_rest_bad_request( "install_gpu_drivers": True, } ], + "boot_disk": { + "image": "image_value", + "snapshot": "snapshot_value", + "type_": "type__value", + "size_gb": 739, + "disk_interface": "disk_interface_value", + }, "disks": [ { - "new_disk": { - "image": "image_value", - "snapshot": "snapshot_value", - "type_": "type__value", - "size_gb": 739, - "disk_interface": "disk_interface_value", - }, + "new_disk": {}, "existing_disk": "existing_disk_value", "device_name": "device_name_value", }