From dc1f681cc0cb34aabb8ba8b881728adaa6817035 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Jan 2023 21:53:09 +0000 Subject: [PATCH 01/23] chore(deps): update dependency google-cloud-logging to v3.5.0 (#714) --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 8258225ff..18e8ae016 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ -google-cloud-logging==3.4.0 +google-cloud-logging==3.5.0 google-cloud-bigquery==3.4.2 google-cloud-storage==2.7.0 google-cloud-pubsub==2.14.0 From e52d247b6c03bd5eb1169ee02b00ab4c183c60d6 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 16:40:31 +0000 Subject: [PATCH 02/23] chore: fix prerelease_deps nox session [autoapprove] (#717) Source-Link: https://togithub.com/googleapis/synthtool/commit/26c7505b2f76981ec1707b851e1595c8c06e90fc Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:f946c75373c2b0040e8e318c5e85d0cf46bc6e61d0a01f3ef94d8de974ac6790 --- .github/.OwlBot.lock.yaml | 2 +- noxfile.py | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 889f77dfa..f0f3b24b2 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:c43f1d918bcf817d337aa29ff833439494a158a0831508fda4ec75dc4c0d0320 + digest: sha256:f946c75373c2b0040e8e318c5e85d0cf46bc6e61d0a01f3ef94d8de974ac6790 diff --git a/noxfile.py b/noxfile.py index 820c51d00..554745bb4 100644 --- a/noxfile.py +++ b/noxfile.py @@ -197,9 +197,9 @@ def unit(session): def install_systemtest_dependencies(session, *constraints): # Use pre-release gRPC for system tests. - # Exclude version 1.49.0rc1 which has a known issue. - # See https://github.com/grpc/grpc/pull/30642 - session.install("--pre", "grpcio!=1.49.0rc1") + # Exclude version 1.52.0rc1 which has a known issue. + # See https://github.com/grpc/grpc/issues/32163 + session.install("--pre", "grpcio!=1.52.0rc1") session.install(*SYSTEM_TEST_STANDARD_DEPENDENCIES, *constraints) @@ -354,9 +354,7 @@ def prerelease_deps(session): unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES + UNIT_TEST_EXTERNAL_DEPENDENCIES session.install(*unit_deps_all) system_deps_all = ( - SYSTEM_TEST_STANDARD_DEPENDENCIES - + SYSTEM_TEST_EXTERNAL_DEPENDENCIES - + SYSTEM_TEST_EXTRAS + SYSTEM_TEST_STANDARD_DEPENDENCIES + SYSTEM_TEST_EXTERNAL_DEPENDENCIES ) session.install(*system_deps_all) @@ -386,8 +384,8 @@ def prerelease_deps(session): # dependency of grpc "six", "googleapis-common-protos", - # Exclude version 1.49.0rc1 which has a known issue. See https://github.com/grpc/grpc/pull/30642 - "grpcio!=1.49.0rc1", + # Exclude version 1.52.0rc1 which has a known issue. See https://github.com/grpc/grpc/issues/32163 + "grpcio!=1.52.0rc1", "grpcio-status", "google-api-core", "proto-plus", From dedaff95b2e2ed178a26aa9a04cfafb9b803ec60 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Wed, 1 Feb 2023 23:27:43 +0000 Subject: [PATCH 03/23] fix: properly handle None from metadata server (#718) --- .../handlers/_monitored_resources.py | 14 ++-- .../handlers/test__monitored_resources.py | 80 ++++++++++++++++++- 2 files changed, 86 insertions(+), 8 deletions(-) diff --git a/google/cloud/logging_v2/handlers/_monitored_resources.py b/google/cloud/logging_v2/handlers/_monitored_resources.py index 144258749..a5b8dfee3 100644 --- a/google/cloud/logging_v2/handlers/_monitored_resources.py +++ b/google/cloud/logging_v2/handlers/_monitored_resources.py @@ -71,8 +71,8 @@ def _create_functions_resource(): resource = Resource( type="cloud_function", labels={ - "project_id": project, - "function_name": function_name, + "project_id": project if project else "", + "function_name": function_name if function_name else "", "region": region.split("/")[-1] if region else "", }, ) @@ -91,7 +91,7 @@ def _create_kubernetes_resource(): resource = Resource( type="k8s_container", labels={ - "project_id": project, + "project_id": project if project else "", "location": zone if zone else "", "cluster_name": cluster_name if cluster_name else "", }, @@ -110,7 +110,7 @@ def _create_compute_resource(): resource = Resource( type="gce_instance", labels={ - "project_id": project, + "project_id": project if project else "", "instance_id": instance if instance else "", "zone": zone if zone else "", }, @@ -128,7 +128,7 @@ def _create_cloud_run_resource(): resource = Resource( type="cloud_run_revision", labels={ - "project_id": project, + "project_id": project if project else "", "service_name": os.environ.get(_CLOUD_RUN_SERVICE_ID, ""), "revision_name": os.environ.get(_CLOUD_RUN_REVISION_ID, ""), "location": region.split("/")[-1] if region else "", @@ -148,7 +148,7 @@ def _create_app_engine_resource(): resource = Resource( type="gae_app", labels={ - "project_id": project, + "project_id": project if project else "", "module_id": os.environ.get(_GAE_SERVICE_ENV, ""), "version_id": os.environ.get(_GAE_VERSION_ENV, ""), "zone": zone if zone else "", @@ -164,7 +164,7 @@ def _create_global_resource(project): Returns: google.cloud.logging.Resource """ - return Resource(type="global", labels={"project_id": project}) + return Resource(type="global", labels={"project_id": project if project else ""}) def detect_resource(project=""): diff --git a/tests/unit/handlers/test__monitored_resources.py b/tests/unit/handlers/test__monitored_resources.py index 5acced157..3c62cba88 100644 --- a/tests/unit/handlers/test__monitored_resources.py +++ b/tests/unit/handlers/test__monitored_resources.py @@ -16,7 +16,7 @@ import mock import os - +import functools from google.cloud.logging_v2.handlers._monitored_resources import ( _create_functions_resource, @@ -66,6 +66,20 @@ def _mock_metadata(self, endpoint): else: return None + def _mock_metadata_no_project(self, endpoint): + if ( + endpoint == _monitored_resources._ZONE_ID + or endpoint == _monitored_resources._REGION_ID + ): + return self.LOCATION + elif ( + endpoint == _monitored_resources._GKE_CLUSTER_NAME + or endpoint == _monitored_resources._GCE_INSTANCE_ID + ): + return self.NAME + else: + return None + def setUp(self): os.environ.clear() @@ -100,6 +114,23 @@ def test_create_modern_functions_resource(self): self.assertEqual(func_resource.labels["function_name"], self.NAME) self.assertEqual(func_resource.labels["region"], self.LOCATION) + def test_functions_resource_no_name(self): + """ + Simulate functions environment with function name returned as None + https://github.com/googleapis/python-logging/pull/718 + """ + patch = mock.patch( + "google.cloud.logging_v2.handlers._monitored_resources.retrieve_metadata_server", + wraps=self._mock_metadata_no_project, + ) + with patch: + func_resource = _create_functions_resource() + + self.assertIsInstance(func_resource, Resource) + self.assertEqual(func_resource.type, "cloud_function") + self.assertEqual(func_resource.labels["project_id"], "") + self.assertEqual(func_resource.labels["function_name"], "") + def test_create_kubernetes_resource(self): patch = mock.patch( @@ -169,6 +200,29 @@ def test_global_resource(self): self.assertEqual(resource.type, "global") self.assertEqual(resource.labels["project_id"], self.PROJECT) + def test_with_no_project_from_server(self): + """ + Ensure project_id uses an empty string if not known + https://github.com/googleapis/python-logging/issues/710 + """ + patch = mock.patch( + "google.cloud.logging_v2.handlers._monitored_resources.retrieve_metadata_server", + wraps=self._mock_metadata_no_project, + ) + with patch: + _global_resource_patched = functools.partial(_create_global_resource, None) + resource_fns = [ + _global_resource_patched, + _create_app_engine_resource, + _create_cloud_run_resource, + _create_compute_resource, + _create_kubernetes_resource, + _create_functions_resource, + ] + for fn in resource_fns: + resource = fn() + self.assertEqual(resource.labels["project_id"], "") + class Test_Resource_Detection(unittest.TestCase): @@ -189,6 +243,14 @@ def _mock_gce_metadata(self, endpoint): else: return None + def _mock_partial_metadata(self, endpoint): + if endpoint == _monitored_resources._ZONE_ID: + return "ZONE" + elif endpoint == _monitored_resources._GCE_INSTANCE_ID: + return "instance" + else: + return None + def setUp(self): os.environ.clear() @@ -249,3 +311,19 @@ def test_detection_unknown(self): resource = detect_resource(self.PROJECT) self.assertIsInstance(resource, Resource) self.assertEqual(resource.type, "global") + + def test_detect_partial_data(self): + """ + Test case where the metadata server returns partial data + """ + patch = mock.patch( + "google.cloud.logging_v2.handlers._monitored_resources.retrieve_metadata_server", + wraps=self._mock_partial_metadata, + ) + with patch: + resource = detect_resource(self.PROJECT) + self.assertIsInstance(resource, Resource) + self.assertEqual(resource.type, "gce_instance") + # project id not returned from metadata serve + # should be empty string + self.assertEqual(resource.labels["project_id"], "") From 1b1cb874adb2c260ae239f56d3aafd78c161217f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 2 Feb 2023 11:15:58 +0000 Subject: [PATCH 04/23] chore(deps): update dependency google-cloud-bigquery to v3.5.0 (#719) Co-authored-by: Anthonios Partheniou --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 18e8ae016..60bc7251e 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ google-cloud-logging==3.5.0 -google-cloud-bigquery==3.4.2 +google-cloud-bigquery==3.5.0 google-cloud-storage==2.7.0 google-cloud-pubsub==2.14.0 From 5d0547a08ddb52851ebc6d547558dd2f1b165663 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 16:32:17 +0000 Subject: [PATCH 05/23] build(deps): bump cryptography from 38.0.3 to 39.0.1 in /synthtool/gcp/templates/python_library/.kokoro (#723) Source-Link: https://togithub.com/googleapis/synthtool/commit/bb171351c3946d3c3c32e60f5f18cee8c464ec51 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:f62c53736eccb0c4934a3ea9316e0d57696bb49c1a7c86c726e9bb8a2f87dadf --- .github/.OwlBot.lock.yaml | 4 +++- .kokoro/requirements.txt | 49 ++++++++++++++++++--------------------- 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index f0f3b24b2..3075557d2 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,6 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:f946c75373c2b0040e8e318c5e85d0cf46bc6e61d0a01f3ef94d8de974ac6790 + digest: sha256:f62c53736eccb0c4934a3ea9316e0d57696bb49c1a7c86c726e9bb8a2f87dadf + + diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 05dc4672e..096e4800a 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -113,33 +113,28 @@ commonmark==0.9.1 \ --hash=sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60 \ --hash=sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9 # via rich -cryptography==38.0.3 \ - --hash=sha256:068147f32fa662c81aebab95c74679b401b12b57494872886eb5c1139250ec5d \ - --hash=sha256:06fc3cc7b6f6cca87bd56ec80a580c88f1da5306f505876a71c8cfa7050257dd \ - --hash=sha256:25c1d1f19729fb09d42e06b4bf9895212292cb27bb50229f5aa64d039ab29146 \ - --hash=sha256:402852a0aea73833d982cabb6d0c3bb582c15483d29fb7085ef2c42bfa7e38d7 \ - --hash=sha256:4e269dcd9b102c5a3d72be3c45d8ce20377b8076a43cbed6f660a1afe365e436 \ - --hash=sha256:5419a127426084933076132d317911e3c6eb77568a1ce23c3ac1e12d111e61e0 \ - --hash=sha256:554bec92ee7d1e9d10ded2f7e92a5d70c1f74ba9524947c0ba0c850c7b011828 \ - --hash=sha256:5e89468fbd2fcd733b5899333bc54d0d06c80e04cd23d8c6f3e0542358c6060b \ - --hash=sha256:65535bc550b70bd6271984d9863a37741352b4aad6fb1b3344a54e6950249b55 \ - --hash=sha256:6ab9516b85bebe7aa83f309bacc5f44a61eeb90d0b4ec125d2d003ce41932d36 \ - --hash=sha256:6addc3b6d593cd980989261dc1cce38263c76954d758c3c94de51f1e010c9a50 \ - --hash=sha256:728f2694fa743a996d7784a6194da430f197d5c58e2f4e278612b359f455e4a2 \ - --hash=sha256:785e4056b5a8b28f05a533fab69febf5004458e20dad7e2e13a3120d8ecec75a \ - --hash=sha256:78cf5eefac2b52c10398a42765bfa981ce2372cbc0457e6bf9658f41ec3c41d8 \ - --hash=sha256:7f836217000342d448e1c9a342e9163149e45d5b5eca76a30e84503a5a96cab0 \ - --hash=sha256:8d41a46251bf0634e21fac50ffd643216ccecfaf3701a063257fe0b2be1b6548 \ - --hash=sha256:984fe150f350a3c91e84de405fe49e688aa6092b3525f407a18b9646f6612320 \ - --hash=sha256:9b24bcff7853ed18a63cfb0c2b008936a9554af24af2fb146e16d8e1aed75748 \ - --hash=sha256:b1b35d9d3a65542ed2e9d90115dfd16bbc027b3f07ee3304fc83580f26e43249 \ - --hash=sha256:b1b52c9e5f8aa2b802d48bd693190341fae201ea51c7a167d69fc48b60e8a959 \ - --hash=sha256:bbf203f1a814007ce24bd4d51362991d5cb90ba0c177a9c08825f2cc304d871f \ - --hash=sha256:be243c7e2bfcf6cc4cb350c0d5cdf15ca6383bbcb2a8ef51d3c9411a9d4386f0 \ - --hash=sha256:bfbe6ee19615b07a98b1d2287d6a6073f734735b49ee45b11324d85efc4d5cbd \ - --hash=sha256:c46837ea467ed1efea562bbeb543994c2d1f6e800785bd5a2c98bc096f5cb220 \ - --hash=sha256:dfb4f4dd568de1b6af9f4cda334adf7d72cf5bc052516e1b2608b683375dd95c \ - --hash=sha256:ed7b00096790213e09eb11c97cc6e2b757f15f3d2f85833cd2d3ec3fe37c1722 +cryptography==39.0.1 \ + --hash=sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4 \ + --hash=sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f \ + --hash=sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502 \ + --hash=sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41 \ + --hash=sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965 \ + --hash=sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e \ + --hash=sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc \ + --hash=sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad \ + --hash=sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505 \ + --hash=sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388 \ + --hash=sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6 \ + --hash=sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2 \ + --hash=sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac \ + --hash=sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695 \ + --hash=sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6 \ + --hash=sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336 \ + --hash=sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0 \ + --hash=sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c \ + --hash=sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106 \ + --hash=sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a \ + --hash=sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8 # via # gcp-releasetool # secretstorage From f721c4d52669bf94c6de5a07b9a441d8d8c93b04 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 15 Feb 2023 22:44:00 +0000 Subject: [PATCH 06/23] chore(deps): update dependency google-cloud-pubsub to v2.14.1 (#724) --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 60bc7251e..845cb0499 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ google-cloud-logging==3.5.0 google-cloud-bigquery==3.5.0 google-cloud-storage==2.7.0 -google-cloud-pubsub==2.14.0 +google-cloud-pubsub==2.14.1 From bf742bf85613fe7b3e79bd038e0656f7308b88e6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 27 Feb 2023 17:08:51 +0000 Subject: [PATCH 07/23] chore(deps): update all dependencies (#726) --- samples/snippets/requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 845cb0499..80177c3a3 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ google-cloud-logging==3.5.0 -google-cloud-bigquery==3.5.0 +google-cloud-bigquery==3.6.0 google-cloud-storage==2.7.0 -google-cloud-pubsub==2.14.1 +google-cloud-pubsub==2.15.0 From 52384248c012e54a9ad81124b3436cc8345dd91f Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 28 Feb 2023 06:05:27 -0500 Subject: [PATCH 08/23] chore(python): upgrade gcp-releasetool in .kokoro [autoapprove] (#728) Source-Link: https://github.com/googleapis/synthtool/commit/5f2a6089f73abf06238fe4310f6a14d6f6d1eed3 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:8555f0e37e6261408f792bfd6635102d2da5ad73f8f09bcb24f25e6afb5fac97 Co-authored-by: Owl Bot Co-authored-by: Anthonios Partheniou --- .github/.OwlBot.lock.yaml | 4 +--- .kokoro/requirements.in | 2 +- .kokoro/requirements.txt | 6 +++--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 3075557d2..5fc5daa31 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,6 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:f62c53736eccb0c4934a3ea9316e0d57696bb49c1a7c86c726e9bb8a2f87dadf - - + digest: sha256:8555f0e37e6261408f792bfd6635102d2da5ad73f8f09bcb24f25e6afb5fac97 diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index cbd7e77f4..882178ce6 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -1,5 +1,5 @@ gcp-docuploader -gcp-releasetool +gcp-releasetool>=1.10.5 # required for compatibility with cryptography>=39.x importlib-metadata typing-extensions twine diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 096e4800a..fa99c1290 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -154,9 +154,9 @@ gcp-docuploader==0.6.4 \ --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf # via -r requirements.in -gcp-releasetool==1.10.0 \ - --hash=sha256:72a38ca91b59c24f7e699e9227c90cbe4dd71b789383cb0164b088abae294c83 \ - --hash=sha256:8c7c99320208383d4bb2b808c6880eb7a81424afe7cdba3c8d84b25f4f0e097d +gcp-releasetool==1.10.5 \ + --hash=sha256:174b7b102d704b254f2a26a3eda2c684fd3543320ec239baf771542a2e58e109 \ + --hash=sha256:e29d29927fe2ca493105a82958c6873bb2b90d503acac56be2c229e74de0eec9 # via -r requirements.in google-api-core==2.10.2 \ --hash=sha256:10c06f7739fe57781f87523375e8e1a3a4674bf6392cd6131a3222182b971320 \ From a453fd8e9587e42758888649f8fb433967620e14 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 28 Feb 2023 06:39:55 -0500 Subject: [PATCH 09/23] chore: Update gapic-generator-python to v1.8.5 (#727) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: Update gapic-generator-python to v1.8.5 PiperOrigin-RevId: 511892190 Source-Link: https://github.com/googleapis/googleapis/commit/a45d9c09c1287ffdf938f4e8083e791046c0b23b Source-Link: https://github.com/googleapis/googleapis-gen/commit/1907294b1d8365ea24f8c5f2e059a64124c4ed3b Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMTkwNzI5NGIxZDgzNjVlYTI0ZjhjNWYyZTA1OWE2NDEyNGM0ZWQzYiJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Anthonios Partheniou --- google/cloud/logging_v2/types/log_entry.py | 2 ++ google/cloud/logging_v2/types/logging.py | 2 ++ google/cloud/logging_v2/types/logging_config.py | 2 ++ google/cloud/logging_v2/types/logging_metrics.py | 2 ++ .../generated_samples/snippet_metadata_google.logging.v2.json | 2 +- 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/google/cloud/logging_v2/types/log_entry.py b/google/cloud/logging_v2/types/log_entry.py index 60da219ab..0536e4db5 100644 --- a/google/cloud/logging_v2/types/log_entry.py +++ b/google/cloud/logging_v2/types/log_entry.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from __future__ import annotations + from typing import MutableMapping, MutableSequence import proto # type: ignore diff --git a/google/cloud/logging_v2/types/logging.py b/google/cloud/logging_v2/types/logging.py index 4c300f705..4d27176d1 100644 --- a/google/cloud/logging_v2/types/logging.py +++ b/google/cloud/logging_v2/types/logging.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from __future__ import annotations + from typing import MutableMapping, MutableSequence import proto # type: ignore diff --git a/google/cloud/logging_v2/types/logging_config.py b/google/cloud/logging_v2/types/logging_config.py index c3c3da099..9ed3a767c 100644 --- a/google/cloud/logging_v2/types/logging_config.py +++ b/google/cloud/logging_v2/types/logging_config.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from __future__ import annotations + from typing import MutableMapping, MutableSequence import proto # type: ignore diff --git a/google/cloud/logging_v2/types/logging_metrics.py b/google/cloud/logging_v2/types/logging_metrics.py index 128e6369e..0d31860a0 100644 --- a/google/cloud/logging_v2/types/logging_metrics.py +++ b/google/cloud/logging_v2/types/logging_metrics.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from __future__ import annotations + from typing import MutableMapping, MutableSequence import proto # type: ignore diff --git a/samples/generated_samples/snippet_metadata_google.logging.v2.json b/samples/generated_samples/snippet_metadata_google.logging.v2.json index 1b2aba1dd..6fc255d82 100644 --- a/samples/generated_samples/snippet_metadata_google.logging.v2.json +++ b/samples/generated_samples/snippet_metadata_google.logging.v2.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-cloud-logging", - "version": "3.5.0" + "version": "0.1.0" }, "snippets": [ { From b9f74fa56d160d869f9c4477cbe9af27d3a53d8d Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 11:19:16 -0400 Subject: [PATCH 10/23] chore(deps): Update nox in .kokoro/requirements.in [autoapprove] (#731) Source-Link: https://github.com/googleapis/synthtool/commit/92006bb3cdc84677aa93c7f5235424ec2b157146 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:2e247c7bf5154df7f98cce087a20ca7605e236340c7d6d1a14447e5c06791bd6 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.in | 2 +- .kokoro/requirements.txt | 14 +++++--------- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 5fc5daa31..b8edda51c 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:8555f0e37e6261408f792bfd6635102d2da5ad73f8f09bcb24f25e6afb5fac97 + digest: sha256:2e247c7bf5154df7f98cce087a20ca7605e236340c7d6d1a14447e5c06791bd6 diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index 882178ce6..ec867d9fd 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -5,6 +5,6 @@ typing-extensions twine wheel setuptools -nox +nox>=2022.11.21 # required to remove dependency on py charset-normalizer<3 click<8.1.0 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index fa99c1290..66a2172a7 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -1,6 +1,6 @@ # -# This file is autogenerated by pip-compile with python 3.10 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: # # pip-compile --allow-unsafe --generate-hashes requirements.in # @@ -335,9 +335,9 @@ more-itertools==9.0.0 \ --hash=sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41 \ --hash=sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab # via jaraco-classes -nox==2022.8.7 \ - --hash=sha256:1b894940551dc5c389f9271d197ca5d655d40bdc6ccf93ed6880e4042760a34b \ - --hash=sha256:96cca88779e08282a699d672258ec01eb7c792d35bbbf538c723172bce23212c +nox==2022.11.21 \ + --hash=sha256:0e41a990e290e274cb205a976c4c97ee3c5234441a8132c8c3fd9ea3c22149eb \ + --hash=sha256:e21c31de0711d1274ca585a2c5fde36b1aa962005ba8e9322bf5eeed16dcd684 # via -r requirements.in packaging==21.3 \ --hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \ @@ -380,10 +380,6 @@ protobuf==3.20.3 \ # gcp-docuploader # gcp-releasetool # google-api-core -py==1.11.0 \ - --hash=sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719 \ - --hash=sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378 - # via nox pyasn1==0.4.8 \ --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba From dbb179407f20beb0f8927570dbc1630c62b23268 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 23 Mar 2023 09:30:42 -0400 Subject: [PATCH 11/23] docs: Fix formatting of request arg in docstring (#734) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: Fix formatting of request arg in docstring chore: Update gapic-generator-python to v1.9.1 PiperOrigin-RevId: 518604533 Source-Link: https://github.com/googleapis/googleapis/commit/8a085aeddfa010af5bcef090827aac5255383d7e Source-Link: https://github.com/googleapis/googleapis-gen/commit/b2ab4b0a0ae2907e812c209198a74e0898afcb04 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYjJhYjRiMGEwYWUyOTA3ZTgxMmMyMDkxOThhNzRlMDg5OGFmY2IwNCJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../config_service_v2/async_client.py | 62 ++++++++++--------- .../services/config_service_v2/client.py | 62 ++++++++++--------- .../logging_service_v2/async_client.py | 4 +- .../services/logging_service_v2/client.py | 4 +- 4 files changed, 70 insertions(+), 62 deletions(-) diff --git a/google/cloud/logging_v2/services/config_service_v2/async_client.py b/google/cloud/logging_v2/services/config_service_v2/async_client.py index ebda77d56..7549eea48 100644 --- a/google/cloud/logging_v2/services/config_service_v2/async_client.py +++ b/google/cloud/logging_v2/services/config_service_v2/async_client.py @@ -271,7 +271,7 @@ async def sample_list_buckets(): Args: request (Optional[Union[google.cloud.logging_v2.types.ListBucketsRequest, dict]]): - The request object. The parameters to `ListBuckets`. + The request object. The parameters to ``ListBuckets``. parent (:class:`str`): Required. The parent resource whose buckets are to be listed: @@ -393,7 +393,7 @@ async def sample_get_bucket(): Args: request (Optional[Union[google.cloud.logging_v2.types.GetBucketRequest, dict]]): - The request object. The parameters to `GetBucket`. + The request object. The parameters to ``GetBucket``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -475,7 +475,7 @@ async def sample_create_bucket(): Args: request (Optional[Union[google.cloud.logging_v2.types.CreateBucketRequest, dict]]): - The request object. The parameters to `CreateBucket`. + The request object. The parameters to ``CreateBucket``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -565,7 +565,7 @@ async def sample_update_bucket(): Args: request (Optional[Union[google.cloud.logging_v2.types.UpdateBucketRequest, dict]]): - The request object. The parameters to `UpdateBucket`. + The request object. The parameters to ``UpdateBucket``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -646,7 +646,7 @@ async def sample_delete_bucket(): Args: request (Optional[Union[google.cloud.logging_v2.types.DeleteBucketRequest, dict]]): - The request object. The parameters to `DeleteBucket`. + The request object. The parameters to ``DeleteBucket``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -715,7 +715,7 @@ async def sample_undelete_bucket(): Args: request (Optional[Union[google.cloud.logging_v2.types.UndeleteBucketRequest, dict]]): - The request object. The parameters to `UndeleteBucket`. + The request object. The parameters to ``UndeleteBucket``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -787,7 +787,7 @@ async def sample_list_views(): Args: request (Optional[Union[google.cloud.logging_v2.types.ListViewsRequest, dict]]): - The request object. The parameters to `ListViews`. + The request object. The parameters to ``ListViews``. parent (:class:`str`): Required. The bucket whose views are to be listed: @@ -901,7 +901,7 @@ async def sample_get_view(): Args: request (Optional[Union[google.cloud.logging_v2.types.GetViewRequest, dict]]): - The request object. The parameters to `GetView`. + The request object. The parameters to ``GetView``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -982,7 +982,7 @@ async def sample_create_view(): Args: request (Optional[Union[google.cloud.logging_v2.types.CreateViewRequest, dict]]): - The request object. The parameters to `CreateView`. + The request object. The parameters to ``CreateView``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1065,7 +1065,7 @@ async def sample_update_view(): Args: request (Optional[Union[google.cloud.logging_v2.types.UpdateViewRequest, dict]]): - The request object. The parameters to `UpdateView`. + The request object. The parameters to ``UpdateView``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1144,7 +1144,7 @@ async def sample_delete_view(): Args: request (Optional[Union[google.cloud.logging_v2.types.DeleteViewRequest, dict]]): - The request object. The parameters to `DeleteView`. + The request object. The parameters to ``DeleteView``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1216,7 +1216,7 @@ async def sample_list_sinks(): Args: request (Optional[Union[google.cloud.logging_v2.types.ListSinksRequest, dict]]): - The request object. The parameters to `ListSinks`. + The request object. The parameters to ``ListSinks``. parent (:class:`str`): Required. The parent resource whose sinks are to be listed: @@ -1346,7 +1346,7 @@ async def sample_get_sink(): Args: request (Optional[Union[google.cloud.logging_v2.types.GetSinkRequest, dict]]): - The request object. The parameters to `GetSink`. + The request object. The parameters to ``GetSink``. sink_name (:class:`str`): Required. The resource name of the sink: @@ -1487,7 +1487,7 @@ async def sample_create_sink(): Args: request (Optional[Union[google.cloud.logging_v2.types.CreateSinkRequest, dict]]): - The request object. The parameters to `CreateSink`. + The request object. The parameters to ``CreateSink``. parent (:class:`str`): Required. The resource in which to create the sink: @@ -1626,7 +1626,7 @@ async def sample_update_sink(): Args: request (Optional[Union[google.cloud.logging_v2.types.UpdateSinkRequest, dict]]): - The request object. The parameters to `UpdateSink`. + The request object. The parameters to ``UpdateSink``. sink_name (:class:`str`): Required. The full resource name of the sink to update, including the parent resource and the sink identifier: @@ -1789,7 +1789,7 @@ async def sample_delete_sink(): Args: request (Optional[Union[google.cloud.logging_v2.types.DeleteSinkRequest, dict]]): - The request object. The parameters to `DeleteSink`. + The request object. The parameters to ``DeleteSink``. sink_name (:class:`str`): Required. The full resource name of the sink to delete, including the parent resource and the sink identifier: @@ -1907,7 +1907,7 @@ async def sample_list_exclusions(): Args: request (Optional[Union[google.cloud.logging_v2.types.ListExclusionsRequest, dict]]): - The request object. The parameters to `ListExclusions`. + The request object. The parameters to ``ListExclusions``. parent (:class:`str`): Required. The parent resource whose exclusions are to be listed. @@ -2037,7 +2037,7 @@ async def sample_get_exclusion(): Args: request (Optional[Union[google.cloud.logging_v2.types.GetExclusionRequest, dict]]): - The request object. The parameters to `GetExclusion`. + The request object. The parameters to ``GetExclusion``. name (:class:`str`): Required. The resource name of an existing exclusion: @@ -2172,7 +2172,7 @@ async def sample_create_exclusion(): Args: request (Optional[Union[google.cloud.logging_v2.types.CreateExclusionRequest, dict]]): - The request object. The parameters to `CreateExclusion`. + The request object. The parameters to ``CreateExclusion``. parent (:class:`str`): Required. The parent resource in which to create the exclusion: @@ -2308,7 +2308,7 @@ async def sample_update_exclusion(): Args: request (Optional[Union[google.cloud.logging_v2.types.UpdateExclusionRequest, dict]]): - The request object. The parameters to `UpdateExclusion`. + The request object. The parameters to ``UpdateExclusion``. name (:class:`str`): Required. The resource name of the exclusion to update: @@ -2447,7 +2447,7 @@ async def sample_delete_exclusion(): Args: request (Optional[Union[google.cloud.logging_v2.types.DeleteExclusionRequest, dict]]): - The request object. The parameters to `DeleteExclusion`. + The request object. The parameters to ``DeleteExclusion``. name (:class:`str`): Required. The resource name of an existing exclusion to delete: @@ -2571,8 +2571,9 @@ async def sample_get_cmek_settings(): request (Optional[Union[google.cloud.logging_v2.types.GetCmekSettingsRequest, dict]]): The request object. The parameters to [GetCmekSettings][google.logging.v2.ConfigServiceV2.GetCmekSettings]. - See [Enabling CMEK for Log - Router](https://cloud.google.com/logging/docs/routing/managed-encryption) + + See `Enabling CMEK for Log + Router `__ for more information. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. @@ -2678,8 +2679,9 @@ async def sample_update_cmek_settings(): request (Optional[Union[google.cloud.logging_v2.types.UpdateCmekSettingsRequest, dict]]): The request object. The parameters to [UpdateCmekSettings][google.logging.v2.ConfigServiceV2.UpdateCmekSettings]. - See [Enabling CMEK for Log - Router](https://cloud.google.com/logging/docs/routing/managed-encryption) + + See `Enabling CMEK for Log + Router `__ for more information. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. @@ -2782,8 +2784,9 @@ async def sample_get_settings(): request (Optional[Union[google.cloud.logging_v2.types.GetSettingsRequest, dict]]): The request object. The parameters to [GetSettings][google.logging.v2.ConfigServiceV2.GetSettings]. - See [Enabling CMEK for Log - Router](https://cloud.google.com/logging/docs/routing/managed-encryption) + + See `Enabling CMEK for Log + Router `__ for more information. name (:class:`str`): Required. The resource for which to retrieve settings. @@ -2923,8 +2926,9 @@ async def sample_update_settings(): request (Optional[Union[google.cloud.logging_v2.types.UpdateSettingsRequest, dict]]): The request object. The parameters to [UpdateSettings][google.logging.v2.ConfigServiceV2.UpdateSettings]. - See [Enabling CMEK for Log - Router](https://cloud.google.com/logging/docs/routing/managed-encryption) + + See `Enabling CMEK for Log + Router `__ for more information. settings (:class:`google.cloud.logging_v2.types.Settings`): Required. The settings to update. diff --git a/google/cloud/logging_v2/services/config_service_v2/client.py b/google/cloud/logging_v2/services/config_service_v2/client.py index 4723239b4..c76b46fa9 100644 --- a/google/cloud/logging_v2/services/config_service_v2/client.py +++ b/google/cloud/logging_v2/services/config_service_v2/client.py @@ -572,7 +572,7 @@ def sample_list_buckets(): Args: request (Union[google.cloud.logging_v2.types.ListBucketsRequest, dict]): - The request object. The parameters to `ListBuckets`. + The request object. The parameters to ``ListBuckets``. parent (str): Required. The parent resource whose buckets are to be listed: @@ -694,7 +694,7 @@ def sample_get_bucket(): Args: request (Union[google.cloud.logging_v2.types.GetBucketRequest, dict]): - The request object. The parameters to `GetBucket`. + The request object. The parameters to ``GetBucket``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -777,7 +777,7 @@ def sample_create_bucket(): Args: request (Union[google.cloud.logging_v2.types.CreateBucketRequest, dict]): - The request object. The parameters to `CreateBucket`. + The request object. The parameters to ``CreateBucket``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -868,7 +868,7 @@ def sample_update_bucket(): Args: request (Union[google.cloud.logging_v2.types.UpdateBucketRequest, dict]): - The request object. The parameters to `UpdateBucket`. + The request object. The parameters to ``UpdateBucket``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -950,7 +950,7 @@ def sample_delete_bucket(): Args: request (Union[google.cloud.logging_v2.types.DeleteBucketRequest, dict]): - The request object. The parameters to `DeleteBucket`. + The request object. The parameters to ``DeleteBucket``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1020,7 +1020,7 @@ def sample_undelete_bucket(): Args: request (Union[google.cloud.logging_v2.types.UndeleteBucketRequest, dict]): - The request object. The parameters to `UndeleteBucket`. + The request object. The parameters to ``UndeleteBucket``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1093,7 +1093,7 @@ def sample_list_views(): Args: request (Union[google.cloud.logging_v2.types.ListViewsRequest, dict]): - The request object. The parameters to `ListViews`. + The request object. The parameters to ``ListViews``. parent (str): Required. The bucket whose views are to be listed: @@ -1207,7 +1207,7 @@ def sample_get_view(): Args: request (Union[google.cloud.logging_v2.types.GetViewRequest, dict]): - The request object. The parameters to `GetView`. + The request object. The parameters to ``GetView``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1289,7 +1289,7 @@ def sample_create_view(): Args: request (Union[google.cloud.logging_v2.types.CreateViewRequest, dict]): - The request object. The parameters to `CreateView`. + The request object. The parameters to ``CreateView``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1373,7 +1373,7 @@ def sample_update_view(): Args: request (Union[google.cloud.logging_v2.types.UpdateViewRequest, dict]): - The request object. The parameters to `UpdateView`. + The request object. The parameters to ``UpdateView``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1453,7 +1453,7 @@ def sample_delete_view(): Args: request (Union[google.cloud.logging_v2.types.DeleteViewRequest, dict]): - The request object. The parameters to `DeleteView`. + The request object. The parameters to ``DeleteView``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1526,7 +1526,7 @@ def sample_list_sinks(): Args: request (Union[google.cloud.logging_v2.types.ListSinksRequest, dict]): - The request object. The parameters to `ListSinks`. + The request object. The parameters to ``ListSinks``. parent (str): Required. The parent resource whose sinks are to be listed: @@ -1645,7 +1645,7 @@ def sample_get_sink(): Args: request (Union[google.cloud.logging_v2.types.GetSinkRequest, dict]): - The request object. The parameters to `GetSink`. + The request object. The parameters to ``GetSink``. sink_name (str): Required. The resource name of the sink: @@ -1775,7 +1775,7 @@ def sample_create_sink(): Args: request (Union[google.cloud.logging_v2.types.CreateSinkRequest, dict]): - The request object. The parameters to `CreateSink`. + The request object. The parameters to ``CreateSink``. parent (str): Required. The resource in which to create the sink: @@ -1914,7 +1914,7 @@ def sample_update_sink(): Args: request (Union[google.cloud.logging_v2.types.UpdateSinkRequest, dict]): - The request object. The parameters to `UpdateSink`. + The request object. The parameters to ``UpdateSink``. sink_name (str): Required. The full resource name of the sink to update, including the parent resource and the sink identifier: @@ -2066,7 +2066,7 @@ def sample_delete_sink(): Args: request (Union[google.cloud.logging_v2.types.DeleteSinkRequest, dict]): - The request object. The parameters to `DeleteSink`. + The request object. The parameters to ``DeleteSink``. sink_name (str): Required. The full resource name of the sink to delete, including the parent resource and the sink identifier: @@ -2173,7 +2173,7 @@ def sample_list_exclusions(): Args: request (Union[google.cloud.logging_v2.types.ListExclusionsRequest, dict]): - The request object. The parameters to `ListExclusions`. + The request object. The parameters to ``ListExclusions``. parent (str): Required. The parent resource whose exclusions are to be listed. @@ -2292,7 +2292,7 @@ def sample_get_exclusion(): Args: request (Union[google.cloud.logging_v2.types.GetExclusionRequest, dict]): - The request object. The parameters to `GetExclusion`. + The request object. The parameters to ``GetExclusion``. name (str): Required. The resource name of an existing exclusion: @@ -2416,7 +2416,7 @@ def sample_create_exclusion(): Args: request (Union[google.cloud.logging_v2.types.CreateExclusionRequest, dict]): - The request object. The parameters to `CreateExclusion`. + The request object. The parameters to ``CreateExclusion``. parent (str): Required. The parent resource in which to create the exclusion: @@ -2552,7 +2552,7 @@ def sample_update_exclusion(): Args: request (Union[google.cloud.logging_v2.types.UpdateExclusionRequest, dict]): - The request object. The parameters to `UpdateExclusion`. + The request object. The parameters to ``UpdateExclusion``. name (str): Required. The resource name of the exclusion to update: @@ -2691,7 +2691,7 @@ def sample_delete_exclusion(): Args: request (Union[google.cloud.logging_v2.types.DeleteExclusionRequest, dict]): - The request object. The parameters to `DeleteExclusion`. + The request object. The parameters to ``DeleteExclusion``. name (str): Required. The resource name of an existing exclusion to delete: @@ -2804,8 +2804,9 @@ def sample_get_cmek_settings(): request (Union[google.cloud.logging_v2.types.GetCmekSettingsRequest, dict]): The request object. The parameters to [GetCmekSettings][google.logging.v2.ConfigServiceV2.GetCmekSettings]. - See [Enabling CMEK for Log - Router](https://cloud.google.com/logging/docs/routing/managed-encryption) + + See `Enabling CMEK for Log + Router `__ for more information. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. @@ -2912,8 +2913,9 @@ def sample_update_cmek_settings(): request (Union[google.cloud.logging_v2.types.UpdateCmekSettingsRequest, dict]): The request object. The parameters to [UpdateCmekSettings][google.logging.v2.ConfigServiceV2.UpdateCmekSettings]. - See [Enabling CMEK for Log - Router](https://cloud.google.com/logging/docs/routing/managed-encryption) + + See `Enabling CMEK for Log + Router `__ for more information. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. @@ -3017,8 +3019,9 @@ def sample_get_settings(): request (Union[google.cloud.logging_v2.types.GetSettingsRequest, dict]): The request object. The parameters to [GetSettings][google.logging.v2.ConfigServiceV2.GetSettings]. - See [Enabling CMEK for Log - Router](https://cloud.google.com/logging/docs/routing/managed-encryption) + + See `Enabling CMEK for Log + Router `__ for more information. name (str): Required. The resource for which to retrieve settings. @@ -3158,8 +3161,9 @@ def sample_update_settings(): request (Union[google.cloud.logging_v2.types.UpdateSettingsRequest, dict]): The request object. The parameters to [UpdateSettings][google.logging.v2.ConfigServiceV2.UpdateSettings]. - See [Enabling CMEK for Log - Router](https://cloud.google.com/logging/docs/routing/managed-encryption) + + See `Enabling CMEK for Log + Router `__ for more information. settings (google.cloud.logging_v2.types.Settings): Required. The settings to update. diff --git a/google/cloud/logging_v2/services/logging_service_v2/async_client.py b/google/cloud/logging_v2/services/logging_service_v2/async_client.py index 909895ad6..bd8ba63f0 100644 --- a/google/cloud/logging_v2/services/logging_service_v2/async_client.py +++ b/google/cloud/logging_v2/services/logging_service_v2/async_client.py @@ -580,7 +580,7 @@ async def sample_list_log_entries(): Args: request (Optional[Union[google.cloud.logging_v2.types.ListLogEntriesRequest, dict]]): - The request object. The parameters to `ListLogEntries`. + The request object. The parameters to ``ListLogEntries``. resource_names (:class:`MutableSequence[str]`): Required. Names of one or more parent resources from which to retrieve log entries: @@ -985,7 +985,7 @@ def request_generator(): Args: requests (AsyncIterator[`google.cloud.logging_v2.types.TailLogEntriesRequest`]): - The request object AsyncIterator. The parameters to `TailLogEntries`. + The request object AsyncIterator. The parameters to ``TailLogEntries``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. diff --git a/google/cloud/logging_v2/services/logging_service_v2/client.py b/google/cloud/logging_v2/services/logging_service_v2/client.py index 83c36302a..7949a41a9 100644 --- a/google/cloud/logging_v2/services/logging_service_v2/client.py +++ b/google/cloud/logging_v2/services/logging_service_v2/client.py @@ -778,7 +778,7 @@ def sample_list_log_entries(): Args: request (Union[google.cloud.logging_v2.types.ListLogEntriesRequest, dict]): - The request object. The parameters to `ListLogEntries`. + The request object. The parameters to ``ListLogEntries``. resource_names (MutableSequence[str]): Required. Names of one or more parent resources from which to retrieve log entries: @@ -1153,7 +1153,7 @@ def request_generator(): Args: requests (Iterator[google.cloud.logging_v2.types.TailLogEntriesRequest]): - The request object iterator. The parameters to `TailLogEntries`. + The request object iterator. The parameters to ``TailLogEntries``. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. From 440d3f634b69991100ead96d461d3ce83cb7f009 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 6 Apr 2023 17:13:01 +0100 Subject: [PATCH 12/23] chore(deps): update all dependencies (#732) --- samples/snippets/requirements-test.txt | 2 +- samples/snippets/requirements.txt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/snippets/requirements-test.txt b/samples/snippets/requirements-test.txt index 9f013668b..8d6117f16 100644 --- a/samples/snippets/requirements-test.txt +++ b/samples/snippets/requirements-test.txt @@ -1,2 +1,2 @@ backoff==2.2.1 -pytest==7.2.1 +pytest==7.2.2 diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 80177c3a3..4fbb1feea 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ google-cloud-logging==3.5.0 -google-cloud-bigquery==3.6.0 -google-cloud-storage==2.7.0 -google-cloud-pubsub==2.15.0 +google-cloud-bigquery==3.9.0 +google-cloud-storage==2.8.0 +google-cloud-pubsub==2.15.2 From 11eaec2b4f1fc9acc4eca29dea9c22c18dfcd216 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 18 Apr 2023 20:34:38 +0200 Subject: [PATCH 13/23] chore(deps): update all dependencies (#738) --- samples/snippets/requirements-test.txt | 2 +- samples/snippets/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/snippets/requirements-test.txt b/samples/snippets/requirements-test.txt index 8d6117f16..96aa71dab 100644 --- a/samples/snippets/requirements-test.txt +++ b/samples/snippets/requirements-test.txt @@ -1,2 +1,2 @@ backoff==2.2.1 -pytest==7.2.2 +pytest==7.3.1 diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 4fbb1feea..f3a55761f 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ google-cloud-logging==3.5.0 google-cloud-bigquery==3.9.0 google-cloud-storage==2.8.0 -google-cloud-pubsub==2.15.2 +google-cloud-pubsub==2.16.0 From 7baafa06341e876b586c6f72ec937fdf7d03d6af Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Apr 2023 18:09:39 +0200 Subject: [PATCH 14/23] chore(deps): update dependency google-cloud-bigquery to v3.10.0 (#745) --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index f3a55761f..0acd1af76 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ google-cloud-logging==3.5.0 -google-cloud-bigquery==3.9.0 +google-cloud-bigquery==3.10.0 google-cloud-storage==2.8.0 google-cloud-pubsub==2.16.0 From c1c8ce158f566150319c2d4fb2f068b10668d507 Mon Sep 17 00:00:00 2001 From: Yoshi Yamaguchi Date: Fri, 21 Apr 2023 09:22:17 +0900 Subject: [PATCH 15/23] feat: add logic to convert severity string to uppercase (#744) --- google/cloud/logging_v2/entries.py | 5 +- google/cloud/logging_v2/logger.py | 2 +- tests/unit/test_logger.py | 161 ++++++++++++++++------------- 3 files changed, 97 insertions(+), 71 deletions(-) diff --git a/google/cloud/logging_v2/entries.py b/google/cloud/logging_v2/entries.py index cb485da61..9db020f67 100644 --- a/google/cloud/logging_v2/entries.py +++ b/google/cloud/logging_v2/entries.py @@ -229,7 +229,10 @@ def to_api_repr(self): if self.insert_id is not None: info["insertId"] = self.insert_id if self.severity is not None: - info["severity"] = self.severity + if isinstance(self.severity, str): + info["severity"] = self.severity.upper() + else: + info["severity"] = self.severity if self.http_request is not None: info["httpRequest"] = self.http_request if self.timestamp is not None: diff --git a/google/cloud/logging_v2/logger.py b/google/cloud/logging_v2/logger.py index 85007b796..88424b27c 100644 --- a/google/cloud/logging_v2/logger.py +++ b/google/cloud/logging_v2/logger.py @@ -141,7 +141,7 @@ def _do_log(self, client, _entry_class, payload=None, **kw): kw["resource"] = kw.pop("resource", self.default_resource) severity = kw.get("severity", None) - if isinstance(severity, str) and not severity.isupper(): + if isinstance(severity, str): # convert severity to upper case, as expected by enum definition kw["severity"] = severity.upper() diff --git a/tests/unit/test_logger.py b/tests/unit/test_logger.py index 3091693e3..16c89959b 100644 --- a/tests/unit/test_logger.py +++ b/tests/unit/test_logger.py @@ -12,16 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -from copy import deepcopy -from datetime import datetime -from datetime import timedelta -from datetime import timezone import sys - import unittest -import pytest +from copy import deepcopy +from datetime import datetime, timedelta, timezone import mock +import pytest def _make_credentials(): @@ -131,6 +128,7 @@ def test_log_empty_defaults_w_default_labels(self): def test_log_empty_w_explicit(self): import datetime + from google.cloud.logging import Resource ALT_LOG_NAME = "projects/foo/logs/alt.log.name" @@ -237,6 +235,7 @@ def test_log_text_w_unicode_and_default_labels(self): def test_log_text_explicit(self): import datetime + from google.cloud.logging import Resource ALT_LOG_NAME = "projects/foo/logs/alt.log.name" @@ -370,6 +369,7 @@ def test_log_struct_w_default_labels(self): def test_log_struct_w_explicit(self): import datetime + from google.cloud.logging import Resource ALT_LOG_NAME = "projects/foo/logs/alt.log.name" @@ -533,10 +533,11 @@ def test_log_lowercase_severity(self): ) def test_log_proto_defaults(self): + import json + from google.cloud.logging_v2.handlers._monitored_resources import ( detect_resource, ) - import json from google.protobuf.json_format import MessageToJson from google.protobuf.struct_pb2 import Struct, Value @@ -559,10 +560,11 @@ def test_log_proto_defaults(self): ) def test_log_proto_w_default_labels(self): + import json + from google.cloud.logging_v2.handlers._monitored_resources import ( detect_resource, ) - import json from google.protobuf.json_format import MessageToJson from google.protobuf.struct_pb2 import Struct, Value @@ -587,12 +589,12 @@ def test_log_proto_w_default_labels(self): ) def test_log_proto_w_explicit(self): - import json import datetime - from google.protobuf.json_format import MessageToJson - from google.protobuf.struct_pb2 import Struct - from google.protobuf.struct_pb2 import Value + import json + from google.cloud.logging import Resource + from google.protobuf.json_format import MessageToJson + from google.protobuf.struct_pb2 import Struct, Value message = Struct(fields={"foo": Value(bool_value=True)}) ALT_LOG_NAME = "projects/foo/logs/alt.log.name" @@ -720,11 +722,12 @@ def test_log_inference_struct(self): def test_log_inference_proto(self): import json - from google.protobuf.json_format import MessageToJson - from google.protobuf.struct_pb2 import Struct, Value + from google.cloud.logging_v2.handlers._monitored_resources import ( detect_resource, ) + from google.protobuf.json_format import MessageToJson + from google.protobuf.struct_pb2 import Struct, Value message = Struct(fields={"foo": Value(bool_value=True)}) ENTRIES = [ @@ -809,8 +812,7 @@ def test_list_entries_defaults(self): self.assertLess(yesterday - timestamp, timedelta(minutes=1)) def test_list_entries_explicit(self): - from google.cloud.logging import DESCENDING - from google.cloud.logging import Client + from google.cloud.logging import DESCENDING, Client PROJECT1 = "PROJECT1" PROJECT2 = "PROJECT2" @@ -870,8 +872,7 @@ def test_list_entries_explicit(self): self.assertLess(yesterday - timestamp, timedelta(minutes=1)) def test_list_entries_explicit_timestamp(self): - from google.cloud.logging import DESCENDING - from google.cloud.logging import Client + from google.cloud.logging import DESCENDING, Client PROJECT1 = "PROJECT1" PROJECT2 = "PROJECT2" @@ -916,11 +917,13 @@ def test_list_entries_explicit_timestamp(self): ) def test_list_entries_limit(self): - from google.cloud.logging import DESCENDING - from google.cloud.logging import ProtobufEntry - from google.cloud.logging import StructEntry - from google.cloud.logging import Logger - from google.cloud.logging import Client + from google.cloud.logging import ( + DESCENDING, + Client, + Logger, + ProtobufEntry, + StructEntry, + ) PROJECT1 = "PROJECT1" PROJECT2 = "PROJECT2" @@ -1010,8 +1013,7 @@ def test_list_entries_limit(self): ) def test_list_entries_folder(self): - from google.cloud.logging import TextEntry - from google.cloud.logging import Client + from google.cloud.logging import Client, TextEntry client = Client( project=self.PROJECT, credentials=_make_credentials(), _use_grpc=False @@ -1042,11 +1044,11 @@ def test_list_entries_folder(self): self.assertEqual(entry.log_name, LOG_NAME) def test_first_log_emits_instrumentation(self): + import google.cloud.logging_v2 + from google.cloud.logging_v2._instrumentation import _create_diagnostic_entry from google.cloud.logging_v2.handlers._monitored_resources import ( detect_resource, ) - from google.cloud.logging_v2._instrumentation import _create_diagnostic_entry - import google.cloud.logging_v2 google.cloud.logging_v2._instrumentation_emitted = False DEFAULT_LABELS = {"foo": "spam"} @@ -1116,8 +1118,8 @@ def test_log_empty_defaults(self): def test_log_empty_explicit(self): import datetime - from google.cloud.logging import Resource - from google.cloud.logging import LogEntry + + from google.cloud.logging import LogEntry, Resource LABELS = {"foo": "bar", "baz": "qux"} IID = "IID" @@ -1161,8 +1163,8 @@ def test_log_empty_explicit(self): self.assertEqual(batch.entries, [ENTRY]) def test_log_text_defaults(self): - from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE from google.cloud.logging import TextEntry + from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE TEXT = "This is the entry text" ENTRY = TextEntry(payload=TEXT, resource=_GLOBAL_RESOURCE) @@ -1174,8 +1176,8 @@ def test_log_text_defaults(self): def test_log_text_explicit(self): import datetime - from google.cloud.logging import Resource - from google.cloud.logging import TextEntry + + from google.cloud.logging import Resource, TextEntry TEXT = "This is the entry text" LABELS = {"foo": "bar", "baz": "qux"} @@ -1222,8 +1224,8 @@ def test_log_text_explicit(self): self.assertEqual(batch.entries, [ENTRY]) def test_log_struct_defaults(self): - from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE from google.cloud.logging import StructEntry + from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE STRUCT = {"message": "Message text", "weather": "partly cloudy"} ENTRY = StructEntry(payload=STRUCT, resource=_GLOBAL_RESOURCE) @@ -1235,8 +1237,8 @@ def test_log_struct_defaults(self): def test_log_struct_explicit(self): import datetime - from google.cloud.logging import Resource - from google.cloud.logging import StructEntry + + from google.cloud.logging import Resource, StructEntry STRUCT = {"message": "Message text", "weather": "partly cloudy"} LABELS = {"foo": "bar", "baz": "qux"} @@ -1283,10 +1285,9 @@ def test_log_struct_explicit(self): self.assertEqual(batch.entries, [ENTRY]) def test_log_proto_defaults(self): - from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE from google.cloud.logging import ProtobufEntry - from google.protobuf.struct_pb2 import Struct - from google.protobuf.struct_pb2 import Value + from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE + from google.protobuf.struct_pb2 import Struct, Value message = Struct(fields={"foo": Value(bool_value=True)}) ENTRY = ProtobufEntry(payload=message, resource=_GLOBAL_RESOURCE) @@ -1298,10 +1299,9 @@ def test_log_proto_defaults(self): def test_log_proto_explicit(self): import datetime - from google.cloud.logging import Resource - from google.cloud.logging import ProtobufEntry - from google.protobuf.struct_pb2 import Struct - from google.protobuf.struct_pb2 import Value + + from google.cloud.logging import ProtobufEntry, Resource + from google.protobuf.struct_pb2 import Struct, Value message = Struct(fields={"foo": Value(bool_value=True)}) LABELS = {"foo": "bar", "baz": "qux"} @@ -1365,8 +1365,8 @@ def test_log_inference_text(self): When calling batch.log with text input, it should call batch.log_text """ - from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE from google.cloud.logging import TextEntry + from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE TEXT = "This is the entry text" ENTRY = TextEntry(payload=TEXT, resource=_GLOBAL_RESOURCE) @@ -1381,8 +1381,8 @@ def test_log_inference_struct(self): When calling batch.struct with text input, it should call batch.log_struct """ - from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE from google.cloud.logging import StructEntry + from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE STRUCT = {"message": "Message text", "weather": "partly cloudy"} ENTRY = StructEntry(payload=STRUCT, resource=_GLOBAL_RESOURCE) @@ -1397,10 +1397,9 @@ def test_log_inference_proto(self): When calling batch.log with proto input, it should call batch.log_proto """ - from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE from google.cloud.logging import ProtobufEntry - from google.protobuf.struct_pb2 import Struct - from google.protobuf.struct_pb2 import Value + from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE + from google.protobuf.struct_pb2 import Struct, Value message = Struct(fields={"foo": Value(bool_value=True)}) ENTRY = ProtobufEntry(payload=message, resource=_GLOBAL_RESOURCE) @@ -1416,8 +1415,8 @@ def test_log_inference_struct_explicit(self): call batch.log_struct, along with input arguments """ import datetime - from google.cloud.logging import Resource - from google.cloud.logging import StructEntry + + from google.cloud.logging import Resource, StructEntry STRUCT = {"message": "Message text", "weather": "partly cloudy"} LABELS = {"foo": "bar", "baz": "qux"} @@ -1464,15 +1463,15 @@ def test_log_inference_struct_explicit(self): self.assertEqual(batch.entries, [ENTRY]) def test_commit_w_unknown_entry_type(self): - from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE from google.cloud.logging import LogEntry + from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE logger = _Logger() client = _Client(project=self.PROJECT, connection=_make_credentials()) api = client.logging_api = _DummyLoggingAPI() batch = self._make_one(logger, client) batch.entries.append(LogEntry(severity="blah")) - ENTRY = {"severity": "blah", "resource": _GLOBAL_RESOURCE._to_dict()} + ENTRY = {"severity": "BLAH", "resource": _GLOBAL_RESOURCE._to_dict()} batch.commit() @@ -1482,9 +1481,35 @@ def test_commit_w_unknown_entry_type(self): ([ENTRY], logger.full_name, None, None, True), ) - def test_commit_w_resource_specified(self): + def test_commit_w_lowercase_severity_type(self): + from google.cloud.logging import LogEntry from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE + + logger = _Logger() + client = _Client(project=self.PROJECT, connection=_make_credentials()) + api = client.logging_api = _DummyLoggingAPI() + batch = self._make_one(logger, client) + batch.entries.append(LogEntry(severity="info")) + batch.entries.append(LogEntry(severity="warn")) + batch.entries.append(LogEntry(severity="error")) + batch.entries.append(LogEntry(severity="fatal")) + ENTRIES = [ + {"severity": "INFO", "resource": _GLOBAL_RESOURCE._to_dict()}, + {"severity": "WARN", "resource": _GLOBAL_RESOURCE._to_dict()}, + {"severity": "ERROR", "resource": _GLOBAL_RESOURCE._to_dict()}, + {"severity": "FATAL", "resource": _GLOBAL_RESOURCE._to_dict()}, + ] + + batch.commit() + self.assertEqual(list(batch.entries), []) + self.assertEqual( + api._write_entries_called_with, + (ENTRIES, logger.full_name, None, None, True), + ) + + def test_commit_w_resource_specified(self): from google.cloud.logging import Resource + from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE logger = _Logger() client = _Client(project=self.PROJECT, connection=_make_credentials()) @@ -1508,13 +1533,13 @@ def test_commit_w_resource_specified(self): ) def test_commit_w_bound_client(self): - import json import datetime - from google.protobuf.json_format import MessageToJson - from google.protobuf.struct_pb2 import Struct - from google.protobuf.struct_pb2 import Value + import json + from google.cloud._helpers import _datetime_to_rfc3339 from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE + from google.protobuf.json_format import MessageToJson + from google.protobuf.struct_pb2 import Struct, Value TEXT = "This is the entry text" STRUCT = {"message": TEXT, "weather": "partly cloudy"} @@ -1599,11 +1624,11 @@ def test_commit_w_bound_client(self): def test_commit_w_alternate_client(self): import json - from google.protobuf.json_format import MessageToJson - from google.protobuf.struct_pb2 import Struct - from google.protobuf.struct_pb2 import Value + from google.cloud.logging import Logger from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE + from google.protobuf.json_format import MessageToJson + from google.protobuf.struct_pb2 import Struct, Value TEXT = "This is the entry text" STRUCT = {"message": TEXT, "weather": "partly cloudy"} @@ -1651,11 +1676,11 @@ def test_commit_w_alternate_client(self): def test_context_mgr_success(self): import json - from google.protobuf.json_format import MessageToJson - from google.protobuf.struct_pb2 import Struct - from google.protobuf.struct_pb2 import Value + from google.cloud.logging import Logger from google.cloud.logging_v2.entries import _GLOBAL_RESOURCE + from google.protobuf.json_format import MessageToJson + from google.protobuf.struct_pb2 import Struct, Value TEXT = "This is the entry text" STRUCT = {"message": TEXT, "weather": "partly cloudy"} @@ -1702,11 +1727,9 @@ def test_context_mgr_success(self): def test_context_mgr_failure(self): import datetime - from google.protobuf.struct_pb2 import Struct - from google.protobuf.struct_pb2 import Value - from google.cloud.logging import TextEntry - from google.cloud.logging import StructEntry - from google.cloud.logging import ProtobufEntry + + from google.cloud.logging import ProtobufEntry, StructEntry, TextEntry + from google.protobuf.struct_pb2 import Struct, Value TEXT = "This is the entry text" STRUCT = {"message": TEXT, "weather": "partly cloudy"} @@ -1752,8 +1775,8 @@ def test_append_context_to_error(self): exception should be unchanged """ from google.api_core.exceptions import InvalidArgument - from google.rpc.error_details_pb2 import DebugInfo from google.cloud.logging import TextEntry + from google.rpc.error_details_pb2 import DebugInfo logger = _Logger() client = _Client(project=self.PROJECT) @@ -1803,8 +1826,8 @@ def test_batch_error_gets_context(self): _append_context_to_error is thrown """ from google.api_core.exceptions import InvalidArgument - from google.rpc.error_details_pb2 import DebugInfo from google.cloud.logging import TextEntry + from google.rpc.error_details_pb2 import DebugInfo logger = _Logger() client = _Client(project=self.PROJECT) From 034f6a7a30322882850dc1cb06953192854adc60 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 25 May 2023 12:13:16 -0400 Subject: [PATCH 16/23] build(deps): bump requests from 2.28.1 to 2.31.0 in /synthtool/gcp/templates/python_library/.kokoro (#752) Source-Link: https://github.com/googleapis/synthtool/commit/30bd01b4ab78bf1b2a425816e15b3e7e090993dd Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:9bc5fa3b62b091f60614c08a7fb4fd1d3e1678e326f34dd66ce1eefb5dc3267b Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 3 ++- .kokoro/requirements.txt | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index b8edda51c..32b3c4865 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:2e247c7bf5154df7f98cce087a20ca7605e236340c7d6d1a14447e5c06791bd6 + digest: sha256:9bc5fa3b62b091f60614c08a7fb4fd1d3e1678e326f34dd66ce1eefb5dc3267b +# created: 2023-05-25T14:56:16.294623272Z diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 66a2172a7..3b8d7ee81 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -419,9 +419,9 @@ readme-renderer==37.3 \ --hash=sha256:cd653186dfc73055656f090f227f5cb22a046d7f71a841dfa305f55c9a513273 \ --hash=sha256:f67a16caedfa71eef48a31b39708637a6f4664c4394801a7b0d6432d13907343 # via twine -requests==2.28.1 \ - --hash=sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983 \ - --hash=sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349 +requests==2.31.0 \ + --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ + --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 # via # gcp-releasetool # google-api-core From 9082631186de672828a5d238594e07d1adbe5689 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 1 Jun 2023 13:27:53 +0200 Subject: [PATCH 17/23] chore(deps): update all dependencies (#747) Co-authored-by: Anthonios Partheniou --- samples/snippets/requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 0acd1af76..b40811545 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ google-cloud-logging==3.5.0 google-cloud-bigquery==3.10.0 -google-cloud-storage==2.8.0 -google-cloud-pubsub==2.16.0 +google-cloud-storage==2.9.0 +google-cloud-pubsub==2.17.1 From 4e30b4fa09218f539a5f6d9cc2dd19f79b4de188 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Sat, 3 Jun 2023 19:19:50 -0400 Subject: [PATCH 18/23] build(deps): bump cryptography from 39.0.1 to 41.0.0 in /synthtool/gcp/templates/python_library/.kokoro (#756) Source-Link: https://github.com/googleapis/synthtool/commit/d0f51a0c2a9a6bcca86911eabea9e484baadf64b Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:240b5bcc2bafd450912d2da2be15e62bc6de2cf839823ae4bf94d4f392b451dc Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- .kokoro/requirements.txt | 42 +++++++++++++++++++-------------------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 32b3c4865..02a4dedce 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:9bc5fa3b62b091f60614c08a7fb4fd1d3e1678e326f34dd66ce1eefb5dc3267b -# created: 2023-05-25T14:56:16.294623272Z + digest: sha256:240b5bcc2bafd450912d2da2be15e62bc6de2cf839823ae4bf94d4f392b451dc +# created: 2023-06-03T21:25:37.968717478Z diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 3b8d7ee81..c7929db6d 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -113,28 +113,26 @@ commonmark==0.9.1 \ --hash=sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60 \ --hash=sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9 # via rich -cryptography==39.0.1 \ - --hash=sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4 \ - --hash=sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f \ - --hash=sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502 \ - --hash=sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41 \ - --hash=sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965 \ - --hash=sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e \ - --hash=sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc \ - --hash=sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad \ - --hash=sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505 \ - --hash=sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388 \ - --hash=sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6 \ - --hash=sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2 \ - --hash=sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac \ - --hash=sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695 \ - --hash=sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6 \ - --hash=sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336 \ - --hash=sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0 \ - --hash=sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c \ - --hash=sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106 \ - --hash=sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a \ - --hash=sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8 +cryptography==41.0.0 \ + --hash=sha256:0ddaee209d1cf1f180f1efa338a68c4621154de0afaef92b89486f5f96047c55 \ + --hash=sha256:14754bcdae909d66ff24b7b5f166d69340ccc6cb15731670435efd5719294895 \ + --hash=sha256:344c6de9f8bda3c425b3a41b319522ba3208551b70c2ae00099c205f0d9fd3be \ + --hash=sha256:34d405ea69a8b34566ba3dfb0521379b210ea5d560fafedf9f800a9a94a41928 \ + --hash=sha256:3680248309d340fda9611498a5319b0193a8dbdb73586a1acf8109d06f25b92d \ + --hash=sha256:3c5ef25d060c80d6d9f7f9892e1d41bb1c79b78ce74805b8cb4aa373cb7d5ec8 \ + --hash=sha256:4ab14d567f7bbe7f1cdff1c53d5324ed4d3fc8bd17c481b395db224fb405c237 \ + --hash=sha256:5c1f7293c31ebc72163a9a0df246f890d65f66b4a40d9ec80081969ba8c78cc9 \ + --hash=sha256:6b71f64beeea341c9b4f963b48ee3b62d62d57ba93eb120e1196b31dc1025e78 \ + --hash=sha256:7d92f0248d38faa411d17f4107fc0bce0c42cae0b0ba5415505df72d751bf62d \ + --hash=sha256:8362565b3835ceacf4dc8f3b56471a2289cf51ac80946f9087e66dc283a810e0 \ + --hash=sha256:84a165379cb9d411d58ed739e4af3396e544eac190805a54ba2e0322feb55c46 \ + --hash=sha256:88ff107f211ea696455ea8d911389f6d2b276aabf3231bf72c8853d22db755c5 \ + --hash=sha256:9f65e842cb02550fac96536edb1d17f24c0a338fd84eaf582be25926e993dde4 \ + --hash=sha256:a4fc68d1c5b951cfb72dfd54702afdbbf0fb7acdc9b7dc4301bbf2225a27714d \ + --hash=sha256:b7f2f5c525a642cecad24ee8670443ba27ac1fab81bba4cc24c7b6b41f2d0c75 \ + --hash=sha256:b846d59a8d5a9ba87e2c3d757ca019fa576793e8758174d3868aecb88d6fc8eb \ + --hash=sha256:bf8fc66012ca857d62f6a347007e166ed59c0bc150cefa49f28376ebe7d992a2 \ + --hash=sha256:f5d0bf9b252f30a31664b6f64432b4730bb7038339bd18b1fafe129cfc2be9be # via # gcp-releasetool # secretstorage From 5128b5d5ac259aca34218d5b3dc49bb6e87363f1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Jun 2023 16:50:23 +0200 Subject: [PATCH 19/23] chore(deps): update dependency google-cloud-bigquery to v3.11.0 (#754) Co-authored-by: Anthonios Partheniou --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index b40811545..bb7cbf27d 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ google-cloud-logging==3.5.0 -google-cloud-bigquery==3.10.0 +google-cloud-bigquery==3.11.0 google-cloud-storage==2.9.0 google-cloud-pubsub==2.17.1 From 4110910a26ba002c546b81ab5be6f738166bf59b Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 27 Jun 2023 10:12:00 -0400 Subject: [PATCH 20/23] chore: remove pinned Sphinx version [autoapprove] (#760) Source-Link: https://github.com/googleapis/synthtool/commit/909573ce9da2819eeb835909c795d29aea5c724e Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:ddf4551385d566771dc713090feb7b4c1164fb8a698fe52bbe7670b24236565b Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- noxfile.py | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 02a4dedce..1b3cb6c52 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:240b5bcc2bafd450912d2da2be15e62bc6de2cf839823ae4bf94d4f392b451dc -# created: 2023-06-03T21:25:37.968717478Z + digest: sha256:ddf4551385d566771dc713090feb7b4c1164fb8a698fe52bbe7670b24236565b +# created: 2023-06-27T13:04:21.96690344Z diff --git a/noxfile.py b/noxfile.py index 554745bb4..24a970446 100644 --- a/noxfile.py +++ b/noxfile.py @@ -313,10 +313,9 @@ def docfx(session): session.install("-e", ".") session.install( - "sphinx==4.0.1", + "gcp-sphinx-docfx-yaml", "alabaster", "recommonmark", - "gcp-sphinx-docfx-yaml", ) shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) From 51e55dbaee07f63deae03bc5738fb4a639cb6f48 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 29 Jun 2023 12:21:58 -0400 Subject: [PATCH 21/23] chore: store artifacts in placer (#761) Source-Link: https://github.com/googleapis/synthtool/commit/cb960373d12d20f8dc38beee2bf884d49627165e Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:2d816f26f728ac8b24248741e7d4c461c09764ef9f7be3684d557c9632e46dbd Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- .kokoro/release/common.cfg | 9 +++++++++ noxfile.py | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 1b3cb6c52..98994f474 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:ddf4551385d566771dc713090feb7b4c1164fb8a698fe52bbe7670b24236565b -# created: 2023-06-27T13:04:21.96690344Z + digest: sha256:2d816f26f728ac8b24248741e7d4c461c09764ef9f7be3684d557c9632e46dbd +# created: 2023-06-28T17:03:33.371210701Z diff --git a/.kokoro/release/common.cfg b/.kokoro/release/common.cfg index 53583ee71..4dc3167a5 100644 --- a/.kokoro/release/common.cfg +++ b/.kokoro/release/common.cfg @@ -39,6 +39,15 @@ env_vars: { value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" } +# Store the packages we uploaded to PyPI. That way, we have a record of exactly +# what we published, which we can use to generate SBOMs and attestations. +action { + define_artifacts { + regex: "github/python-logging/**/*.tar.gz" + strip_prefix: "github/python-logging" + } +} + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py diff --git a/noxfile.py b/noxfile.py index 24a970446..12440fa9b 100644 --- a/noxfile.py +++ b/noxfile.py @@ -387,6 +387,7 @@ def prerelease_deps(session): "grpcio!=1.52.0rc1", "grpcio-status", "google-api-core", + "google-auth", "proto-plus", "google-cloud-testutils", # dependencies of google-cloud-testutils" @@ -399,7 +400,6 @@ def prerelease_deps(session): # Remaining dependencies other_deps = [ "requests", - "google-auth", ] session.install(*other_deps) From 4a7f887d4cbb5322d28dad56b061ca3c78a239ab Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 5 Jul 2023 21:39:47 +0200 Subject: [PATCH 22/23] chore(deps): update all dependencies (#759) Co-authored-by: Anthonios Partheniou --- samples/snippets/requirements-test.txt | 2 +- samples/snippets/requirements.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/snippets/requirements-test.txt b/samples/snippets/requirements-test.txt index 96aa71dab..cbd0a47de 100644 --- a/samples/snippets/requirements-test.txt +++ b/samples/snippets/requirements-test.txt @@ -1,2 +1,2 @@ backoff==2.2.1 -pytest==7.3.1 +pytest==7.4.0 diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index bb7cbf27d..c744c991e 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ google-cloud-logging==3.5.0 -google-cloud-bigquery==3.11.0 -google-cloud-storage==2.9.0 +google-cloud-bigquery==3.11.3 +google-cloud-storage==2.10.0 google-cloud-pubsub==2.17.1 From b6a76f5ec8f56a5132335bce5684c2a2edbe2799 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 14 Jul 2023 10:17:36 -0700 Subject: [PATCH 23/23] chore(main): release 3.6.0 (#720) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- .release-please-manifest.json | 2 +- CHANGELOG.md | 17 +++++++++++++++++ google/cloud/logging/gapic_version.py | 2 +- google/cloud/logging_v2/gapic_version.py | 2 +- .../snippet_metadata_google.logging.v2.json | 2 +- 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 155f1bdd1..23efc1eaa 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "3.5.0" + ".": "3.6.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 0dd576c00..16e128b18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,23 @@ [1]: https://pypi.org/project/google-cloud-logging/#history +## [3.6.0](https://github.com/googleapis/python-logging/compare/v3.5.0...v3.6.0) (2023-07-05) + + +### Features + +* Add logic to convert severity string to uppercase ([#744](https://github.com/googleapis/python-logging/issues/744)) ([c1c8ce1](https://github.com/googleapis/python-logging/commit/c1c8ce158f566150319c2d4fb2f068b10668d507)) + + +### Bug Fixes + +* Properly handle None from metadata server ([#718](https://github.com/googleapis/python-logging/issues/718)) ([dedaff9](https://github.com/googleapis/python-logging/commit/dedaff95b2e2ed178a26aa9a04cfafb9b803ec60)) + + +### Documentation + +* Fix formatting of request arg in docstring ([#734](https://github.com/googleapis/python-logging/issues/734)) ([dbb1794](https://github.com/googleapis/python-logging/commit/dbb179407f20beb0f8927570dbc1630c62b23268)) + ## [3.5.0](https://github.com/googleapis/python-logging/compare/v3.4.0...v3.5.0) (2023-01-24) diff --git a/google/cloud/logging/gapic_version.py b/google/cloud/logging/gapic_version.py index 4576813f0..d29522314 100644 --- a/google/cloud/logging/gapic_version.py +++ b/google/cloud/logging/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "3.5.0" # {x-release-please-version} +__version__ = "3.6.0" # {x-release-please-version} diff --git a/google/cloud/logging_v2/gapic_version.py b/google/cloud/logging_v2/gapic_version.py index 4576813f0..d29522314 100644 --- a/google/cloud/logging_v2/gapic_version.py +++ b/google/cloud/logging_v2/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "3.5.0" # {x-release-please-version} +__version__ = "3.6.0" # {x-release-please-version} diff --git a/samples/generated_samples/snippet_metadata_google.logging.v2.json b/samples/generated_samples/snippet_metadata_google.logging.v2.json index 6fc255d82..0cf8959de 100644 --- a/samples/generated_samples/snippet_metadata_google.logging.v2.json +++ b/samples/generated_samples/snippet_metadata_google.logging.v2.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-cloud-logging", - "version": "0.1.0" + "version": "3.6.0" }, "snippets": [ {