Skip to content

Commit 24a0a5e

Browse files
fix: revert default resource behavior to avoid breaking changes (#237)
1 parent 9069738 commit 24a0a5e

File tree

5 files changed

+18
-47
lines changed

5 files changed

+18
-47
lines changed

google/cloud/logging_v2/handlers/handlers.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
import logging
1818

19+
20+
from google.cloud.logging_v2.logger import _GLOBAL_RESOURCE
1921
from google.cloud.logging_v2.handlers.transports import BackgroundThreadTransport
2022
from google.cloud.logging_v2.handlers._monitored_resources import detect_resource
2123

@@ -61,7 +63,7 @@ def __init__(
6163
*,
6264
name=DEFAULT_LOGGER_NAME,
6365
transport=BackgroundThreadTransport,
64-
resource=None,
66+
resource=_GLOBAL_RESOURCE,
6567
labels=None,
6668
stream=None,
6769
):
@@ -80,15 +82,12 @@ def __init__(
8082
:class:`.BackgroundThreadTransport`. The other
8183
option is :class:`.SyncTransport`.
8284
resource (~logging_v2.resource.Resource):
83-
Resource for this Handler. If not given, will be inferred from the environment.
85+
Resource for this Handler. Defaults to ``global``.
8486
labels (Optional[dict]): Monitored resource of the entry, defaults
8587
to the global resource type.
8688
stream (Optional[IO]): Stream to be used by the handler.
8789
"""
8890
super(CloudLoggingHandler, self).__init__(stream)
89-
if not resource:
90-
# infer the correct monitored resource from the local environment
91-
resource = detect_resource(client.project)
9291
self.name = name
9392
self.client = client
9493
self.transport = transport(client, name)

google/cloud/logging_v2/logger.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
from google.cloud.logging_v2.entries import StructEntry
2121
from google.cloud.logging_v2.entries import TextEntry
2222
from google.cloud.logging_v2.resource import Resource
23-
from google.cloud.logging_v2.handlers._monitored_resources import detect_resource
2423

2524

2625
_GLOBAL_RESOURCE = Resource(type="global", labels={})
@@ -49,21 +48,23 @@ class Logger(object):
4948
See https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.logs
5049
"""
5150

52-
def __init__(self, name, client, *, labels=None):
51+
def __init__(self, name, client, *, labels=None, resource=_GLOBAL_RESOURCE):
5352
"""
5453
Args:
5554
name (str): The name of the logger.
5655
client (~logging_v2.client.Client):
5756
A client which holds credentials and project configuration
5857
for the logger (which requires a project).
58+
resource (~logging_v2.Resource): a monitored resource object
59+
representing the resource the code was run on.
5960
labels (Optional[dict]): Mapping of default labels for entries written
6061
via this logger.
6162
6263
"""
6364
self.name = name
6465
self._client = client
6566
self.labels = labels
66-
self.default_resource = detect_resource(client.project)
67+
self.default_resource = resource
6768

6869
@property
6970
def client(self):

tests/unit/handlers/test_handlers.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,7 @@ def _make_one(self, *args, **kw):
3838

3939
def test_ctor_defaults(self):
4040
import sys
41-
from google.cloud.logging_v2.handlers._monitored_resources import (
42-
_create_global_resource,
43-
)
41+
from google.cloud.logging_v2.logger import _GLOBAL_RESOURCE
4442
from google.cloud.logging_v2.handlers.handlers import DEFAULT_LOGGER_NAME
4543

4644
patch = mock.patch(
@@ -55,8 +53,7 @@ def test_ctor_defaults(self):
5553
self.assertIsInstance(handler.transport, _Transport)
5654
self.assertIs(handler.transport.client, client)
5755
self.assertEqual(handler.transport.name, DEFAULT_LOGGER_NAME)
58-
global_resource = _create_global_resource(self.PROJECT)
59-
self.assertEqual(handler.resource, global_resource)
56+
self.assertEqual(handler.resource, _GLOBAL_RESOURCE)
6057
self.assertIsNone(handler.labels)
6158
self.assertIs(handler.stream, sys.stderr)
6259

tests/unit/test_logger.py

Lines changed: 7 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -99,15 +99,11 @@ def test_batch_w_alternate_client(self):
9999
self.assertIs(batch.client, client2)
100100

101101
def test_log_empty_defaults_w_default_labels(self):
102-
from google.cloud.logging_v2.handlers._monitored_resources import (
103-
detect_resource,
104-
)
105-
106102
DEFAULT_LABELS = {"foo": "spam"}
107103
ENTRIES = [
108104
{
109105
"logName": "projects/%s/logs/%s" % (self.PROJECT, self.LOGGER_NAME),
110-
"resource": detect_resource(self.PROJECT)._to_dict(),
106+
"resource": {"type": "global", "labels": {}},
111107
"labels": DEFAULT_LABELS,
112108
}
113109
]
@@ -174,11 +170,7 @@ def test_log_empty_w_explicit(self):
174170
self.assertEqual(api._write_entries_called_with, (ENTRIES, None, None, None))
175171

176172
def test_log_text_defaults(self):
177-
from google.cloud.logging_v2.handlers._monitored_resources import (
178-
detect_resource,
179-
)
180-
181-
RESOURCE = detect_resource(self.PROJECT)._to_dict()
173+
RESOURCE = {"type": "global", "labels": {}}
182174
TEXT = "TEXT"
183175
ENTRIES = [
184176
{
@@ -196,12 +188,8 @@ def test_log_text_defaults(self):
196188
self.assertEqual(api._write_entries_called_with, (ENTRIES, None, None, None))
197189

198190
def test_log_text_w_unicode_and_default_labels(self):
199-
from google.cloud.logging_v2.handlers._monitored_resources import (
200-
detect_resource,
201-
)
202-
203191
TEXT = "TEXT"
204-
RESOURCE = detect_resource(self.PROJECT)._to_dict()
192+
RESOURCE = {"type": "global", "labels": {}}
205193
DEFAULT_LABELS = {"foo": "spam"}
206194
ENTRIES = [
207195
{
@@ -277,12 +265,8 @@ def test_log_text_explicit(self):
277265
self.assertEqual(api._write_entries_called_with, (ENTRIES, None, None, None))
278266

279267
def test_log_struct_defaults(self):
280-
from google.cloud.logging_v2.handlers._monitored_resources import (
281-
detect_resource,
282-
)
283-
284268
STRUCT = {"message": "MESSAGE", "weather": "cloudy"}
285-
RESOURCE = detect_resource(self.PROJECT)._to_dict()
269+
RESOURCE = {"type": "global", "labels": {}}
286270
ENTRIES = [
287271
{
288272
"logName": "projects/%s/logs/%s" % (self.PROJECT, self.LOGGER_NAME),
@@ -299,12 +283,8 @@ def test_log_struct_defaults(self):
299283
self.assertEqual(api._write_entries_called_with, (ENTRIES, None, None, None))
300284

301285
def test_log_struct_w_default_labels(self):
302-
from google.cloud.logging_v2.handlers._monitored_resources import (
303-
detect_resource,
304-
)
305-
306286
STRUCT = {"message": "MESSAGE", "weather": "cloudy"}
307-
RESOURCE = detect_resource(self.PROJECT)._to_dict()
287+
RESOURCE = {"type": "global", "labels": {}}
308288
DEFAULT_LABELS = {"foo": "spam"}
309289
ENTRIES = [
310290
{
@@ -383,16 +363,13 @@ def test_log_proto_defaults(self):
383363
import json
384364
from google.protobuf.json_format import MessageToJson
385365
from google.protobuf.struct_pb2 import Struct, Value
386-
from google.cloud.logging_v2.handlers._monitored_resources import (
387-
detect_resource,
388-
)
389366

390367
message = Struct(fields={"foo": Value(bool_value=True)})
391368
ENTRIES = [
392369
{
393370
"logName": "projects/%s/logs/%s" % (self.PROJECT, self.LOGGER_NAME),
394371
"protoPayload": json.loads(MessageToJson(message)),
395-
"resource": detect_resource(self.PROJECT)._to_dict(),
372+
"resource": {"type": "global", "labels": {}},
396373
}
397374
]
398375
client = _Client(self.PROJECT)
@@ -407,17 +384,14 @@ def test_log_proto_w_default_labels(self):
407384
import json
408385
from google.protobuf.json_format import MessageToJson
409386
from google.protobuf.struct_pb2 import Struct, Value
410-
from google.cloud.logging_v2.handlers._monitored_resources import (
411-
detect_resource,
412-
)
413387

414388
message = Struct(fields={"foo": Value(bool_value=True)})
415389
DEFAULT_LABELS = {"foo": "spam"}
416390
ENTRIES = [
417391
{
418392
"logName": "projects/%s/logs/%s" % (self.PROJECT, self.LOGGER_NAME),
419393
"protoPayload": json.loads(MessageToJson(message)),
420-
"resource": detect_resource(self.PROJECT)._to_dict(),
394+
"resource": {"type": "global", "labels": {}},
421395
"labels": DEFAULT_LABELS,
422396
}
423397
]

0 commit comments

Comments
 (0)