From 55ef8c81230fdaa66bcaa34e842d2239c74a7e1f Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Tue, 23 Mar 2021 13:29:00 -0700 Subject: [PATCH 1/5] rolled back behaviour to avoid breaking changes --- google/cloud/logging_v2/handlers/handlers.py | 9 ++++----- google/cloud/logging_v2/logger.py | 7 ++++--- tests/unit/handlers/test_handlers.py | 7 ++----- tests/unit/test_logger.py | 14 +++++++------- 4 files changed, 17 insertions(+), 20 deletions(-) diff --git a/google/cloud/logging_v2/handlers/handlers.py b/google/cloud/logging_v2/handlers/handlers.py index feeac9171..0fa6c777e 100644 --- a/google/cloud/logging_v2/handlers/handlers.py +++ b/google/cloud/logging_v2/handlers/handlers.py @@ -16,6 +16,8 @@ import logging + +from google.cloud.logging_v2.logger import _GLOBAL_RESOURCE from google.cloud.logging_v2.handlers.transports import BackgroundThreadTransport from google.cloud.logging_v2.handlers._monitored_resources import detect_resource @@ -61,7 +63,7 @@ def __init__( *, name=DEFAULT_LOGGER_NAME, transport=BackgroundThreadTransport, - resource=None, + resource=_GLOBAL_RESOURCE, labels=None, stream=None, ): @@ -80,15 +82,12 @@ def __init__( :class:`.BackgroundThreadTransport`. The other option is :class:`.SyncTransport`. resource (~logging_v2.resource.Resource): - Resource for this Handler. If not given, will be inferred from the environment. + Resource for this Handler. Defaults to ``GLOBAL_RESOURCE``. labels (Optional[dict]): Monitored resource of the entry, defaults to the global resource type. stream (Optional[IO]): Stream to be used by the handler. """ super(CloudLoggingHandler, self).__init__(stream) - if not resource: - # infer the correct monitored resource from the local environment - resource = detect_resource(client.project) self.name = name self.client = client self.transport = transport(client, name) diff --git a/google/cloud/logging_v2/logger.py b/google/cloud/logging_v2/logger.py index 124c33934..fafb70629 100644 --- a/google/cloud/logging_v2/logger.py +++ b/google/cloud/logging_v2/logger.py @@ -20,7 +20,6 @@ from google.cloud.logging_v2.entries import StructEntry from google.cloud.logging_v2.entries import TextEntry from google.cloud.logging_v2.resource import Resource -from google.cloud.logging_v2.handlers._monitored_resources import detect_resource _GLOBAL_RESOURCE = Resource(type="global", labels={}) @@ -49,13 +48,15 @@ class Logger(object): See https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.logs """ - def __init__(self, name, client, *, labels=None): + def __init__(self, name, client, *, labels=None, resource=_GLOBAL_RESOURCE): """ Args: name (str): The name of the logger. client (~logging_v2.client.Client): A client which holds credentials and project configuration for the logger (which requires a project). + resource (~logging_v2.Resource): a monitored resource object + representing the resource the code was run on. labels (Optional[dict]): Mapping of default labels for entries written via this logger. @@ -63,7 +64,7 @@ def __init__(self, name, client, *, labels=None): self.name = name self._client = client self.labels = labels - self.default_resource = detect_resource(client.project) + self.default_resource = resource @property def client(self): diff --git a/tests/unit/handlers/test_handlers.py b/tests/unit/handlers/test_handlers.py index 51e2f0703..80a1368b8 100644 --- a/tests/unit/handlers/test_handlers.py +++ b/tests/unit/handlers/test_handlers.py @@ -38,9 +38,7 @@ def _make_one(self, *args, **kw): def test_ctor_defaults(self): import sys - from google.cloud.logging_v2.handlers._monitored_resources import ( - _create_global_resource, - ) + from google.cloud.logging_v2.logger import _GLOBAL_RESOURCE from google.cloud.logging_v2.handlers.handlers import DEFAULT_LOGGER_NAME patch = mock.patch( @@ -55,8 +53,7 @@ def test_ctor_defaults(self): self.assertIsInstance(handler.transport, _Transport) self.assertIs(handler.transport.client, client) self.assertEqual(handler.transport.name, DEFAULT_LOGGER_NAME) - global_resource = _create_global_resource(self.PROJECT) - self.assertEqual(handler.resource, global_resource) + self.assertEqual(handler.resource, _GLOBAL_RESOURCE) self.assertIsNone(handler.labels) self.assertIs(handler.stream, sys.stderr) diff --git a/tests/unit/test_logger.py b/tests/unit/test_logger.py index 53ecac8f5..7813422f3 100644 --- a/tests/unit/test_logger.py +++ b/tests/unit/test_logger.py @@ -107,7 +107,7 @@ def test_log_empty_defaults_w_default_labels(self): ENTRIES = [ { "logName": "projects/%s/logs/%s" % (self.PROJECT, self.LOGGER_NAME), - "resource": detect_resource(self.PROJECT)._to_dict(), + "resource": {"type": "global", "labels": {}}, "labels": DEFAULT_LABELS, } ] @@ -178,7 +178,7 @@ def test_log_text_defaults(self): detect_resource, ) - RESOURCE = detect_resource(self.PROJECT)._to_dict() + RESOURCE = {"type": "global", "labels": {}} TEXT = "TEXT" ENTRIES = [ { @@ -201,7 +201,7 @@ def test_log_text_w_unicode_and_default_labels(self): ) TEXT = "TEXT" - RESOURCE = detect_resource(self.PROJECT)._to_dict() + RESOURCE = {"type": "global", "labels": {}} DEFAULT_LABELS = {"foo": "spam"} ENTRIES = [ { @@ -282,7 +282,7 @@ def test_log_struct_defaults(self): ) STRUCT = {"message": "MESSAGE", "weather": "cloudy"} - RESOURCE = detect_resource(self.PROJECT)._to_dict() + RESOURCE = {"type": "global", "labels": {}} ENTRIES = [ { "logName": "projects/%s/logs/%s" % (self.PROJECT, self.LOGGER_NAME), @@ -304,7 +304,7 @@ def test_log_struct_w_default_labels(self): ) STRUCT = {"message": "MESSAGE", "weather": "cloudy"} - RESOURCE = detect_resource(self.PROJECT)._to_dict() + RESOURCE = {"type": "global", "labels": {}} DEFAULT_LABELS = {"foo": "spam"} ENTRIES = [ { @@ -392,7 +392,7 @@ def test_log_proto_defaults(self): { "logName": "projects/%s/logs/%s" % (self.PROJECT, self.LOGGER_NAME), "protoPayload": json.loads(MessageToJson(message)), - "resource": detect_resource(self.PROJECT)._to_dict(), + "resource": {"type": "global", "labels": {}}, } ] client = _Client(self.PROJECT) @@ -417,7 +417,7 @@ def test_log_proto_w_default_labels(self): { "logName": "projects/%s/logs/%s" % (self.PROJECT, self.LOGGER_NAME), "protoPayload": json.loads(MessageToJson(message)), - "resource": detect_resource(self.PROJECT)._to_dict(), + "resource": {"type": "global", "labels": {}}, "labels": DEFAULT_LABELS, } ] From 043a435b22a25ba3067ce19e7f5f97b9829618d6 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Tue, 23 Mar 2021 14:13:02 -0700 Subject: [PATCH 2/5] removed test --- tests/environment | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/environment b/tests/environment index eb60e8239..25e657097 160000 --- a/tests/environment +++ b/tests/environment @@ -1 +1 @@ -Subproject commit eb60e823924dabaaea62e2ec0b8243eb868c1826 +Subproject commit 25e657097f36381af31becb587cee1967780cd20 From fedde1ab6254bbfaede5a62d14d3c75a51dd74dd Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Wed, 24 Mar 2021 10:14:21 -0700 Subject: [PATCH 3/5] fixed lint issue --- tests/unit/test_logger.py | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/tests/unit/test_logger.py b/tests/unit/test_logger.py index 7813422f3..5ad486178 100644 --- a/tests/unit/test_logger.py +++ b/tests/unit/test_logger.py @@ -99,10 +99,6 @@ def test_batch_w_alternate_client(self): self.assertIs(batch.client, client2) def test_log_empty_defaults_w_default_labels(self): - from google.cloud.logging_v2.handlers._monitored_resources import ( - detect_resource, - ) - DEFAULT_LABELS = {"foo": "spam"} ENTRIES = [ { @@ -174,10 +170,6 @@ def test_log_empty_w_explicit(self): self.assertEqual(api._write_entries_called_with, (ENTRIES, None, None, None)) def test_log_text_defaults(self): - from google.cloud.logging_v2.handlers._monitored_resources import ( - detect_resource, - ) - RESOURCE = {"type": "global", "labels": {}} TEXT = "TEXT" ENTRIES = [ @@ -196,10 +188,6 @@ def test_log_text_defaults(self): self.assertEqual(api._write_entries_called_with, (ENTRIES, None, None, None)) def test_log_text_w_unicode_and_default_labels(self): - from google.cloud.logging_v2.handlers._monitored_resources import ( - detect_resource, - ) - TEXT = "TEXT" RESOURCE = {"type": "global", "labels": {}} DEFAULT_LABELS = {"foo": "spam"} @@ -277,10 +265,6 @@ def test_log_text_explicit(self): self.assertEqual(api._write_entries_called_with, (ENTRIES, None, None, None)) def test_log_struct_defaults(self): - from google.cloud.logging_v2.handlers._monitored_resources import ( - detect_resource, - ) - STRUCT = {"message": "MESSAGE", "weather": "cloudy"} RESOURCE = {"type": "global", "labels": {}} ENTRIES = [ @@ -299,10 +283,6 @@ def test_log_struct_defaults(self): self.assertEqual(api._write_entries_called_with, (ENTRIES, None, None, None)) def test_log_struct_w_default_labels(self): - from google.cloud.logging_v2.handlers._monitored_resources import ( - detect_resource, - ) - STRUCT = {"message": "MESSAGE", "weather": "cloudy"} RESOURCE = {"type": "global", "labels": {}} DEFAULT_LABELS = {"foo": "spam"} @@ -383,9 +363,6 @@ def test_log_proto_defaults(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, - ) message = Struct(fields={"foo": Value(bool_value=True)}) ENTRIES = [ @@ -407,9 +384,6 @@ def test_log_proto_w_default_labels(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, - ) message = Struct(fields={"foo": Value(bool_value=True)}) DEFAULT_LABELS = {"foo": "spam"} From b2f37eab2a5729126ccb6deae4a349121c461e49 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Wed, 24 Mar 2021 10:15:30 -0700 Subject: [PATCH 4/5] updated environment tests --- tests/environment | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/environment b/tests/environment index 25e657097..1962721db 160000 --- a/tests/environment +++ b/tests/environment @@ -1 +1 @@ -Subproject commit 25e657097f36381af31becb587cee1967780cd20 +Subproject commit 1962721db8aa382bb1f658921979a1c183bf2d1a From f7c66ff8d118bd660e70bb0f408ca28921f93fe1 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Wed, 24 Mar 2021 10:22:24 -0700 Subject: [PATCH 5/5] updated comment --- google/cloud/logging_v2/handlers/handlers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google/cloud/logging_v2/handlers/handlers.py b/google/cloud/logging_v2/handlers/handlers.py index 0fa6c777e..ffcc03ae2 100644 --- a/google/cloud/logging_v2/handlers/handlers.py +++ b/google/cloud/logging_v2/handlers/handlers.py @@ -82,7 +82,7 @@ def __init__( :class:`.BackgroundThreadTransport`. The other option is :class:`.SyncTransport`. resource (~logging_v2.resource.Resource): - Resource for this Handler. Defaults to ``GLOBAL_RESOURCE``. + Resource for this Handler. Defaults to ``global``. labels (Optional[dict]): Monitored resource of the entry, defaults to the global resource type. stream (Optional[IO]): Stream to be used by the handler.