Skip to content
This repository was archived by the owner on Sep 17, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
import os

from opencensus.common import resource
from opencensus.common.monitored_resource_util import aws_identity_doc_utils
from opencensus.common.monitored_resource_util import gcp_metadata_config
from opencensus.common.monitored_resource import aws_identity_doc_utils
from opencensus.common.monitored_resource import gcp_metadata_config


# Supported environments (resource types)
Expand Down
2 changes: 1 addition & 1 deletion opencensus/stats/exporters/stackdriver_exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
from google.cloud import monitoring_v3

from opencensus.common import utils
from opencensus.common.monitored_resource_util import monitored_resource
from opencensus.common.monitored_resource import monitored_resource
from opencensus.common.transports import async_
from opencensus.common.version import __version__
from opencensus.stats import aggregation
Expand Down
2 changes: 1 addition & 1 deletion opencensus/trace/exporters/stackdriver_exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

from google.cloud.trace.client import Client

from opencensus.common.monitored_resource_util import monitored_resource
from opencensus.common.monitored_resource import monitored_resource
from opencensus.common.transports import sync
from opencensus.common.version import __version__
from opencensus.trace import attributes_helper
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import unittest
import mock
import json
from opencensus.common.monitored_resource_util.aws_identity_doc_utils \
import AwsIdentityDocumentUtils
from opencensus.common.monitored_resource_util import \
aws_identity_doc_utils
import mock
import unittest

from opencensus.common.monitored_resource import aws_identity_doc_utils


class TestAwsIdentityDocumentUtils(unittest.TestCase):
@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch('opencensus.common.monitored_resource.'
'aws_identity_doc_utils.get_request')
def test_get_aws_metadata(self, http_request_mock):
mocked_http_response = {
Expand All @@ -40,13 +38,15 @@ def test_get_aws_metadata(self, http_request_mock):
}

http_request_mock.return_value = json.dumps(mocked_http_response)
AwsIdentityDocumentUtils.inited = False
AwsIdentityDocumentUtils.is_running = False
aws_identity_doc_utils.AwsIdentityDocumentUtils.inited = False
aws_identity_doc_utils.AwsIdentityDocumentUtils.is_running = False
aws_identity_doc_utils.aws_metadata_map = {}

self.assertTrue(AwsIdentityDocumentUtils.is_running_on_aws())
self.assertTrue(aws_identity_doc_utils.AwsIdentityDocumentUtils
.is_running_on_aws())

labels_list = AwsIdentityDocumentUtils().get_aws_metadata()
labels_list = aws_identity_doc_utils.AwsIdentityDocumentUtils(
).get_aws_metadata()

self.assertEquals(len(labels_list), 3)

Expand All @@ -58,7 +58,7 @@ def test_get_aws_metadata(self, http_request_mock):

self.assertEquals(labels_list, expected_labels)

@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch('opencensus.common.monitored_resource.'
'aws_identity_doc_utils.get_request')
def test_get_aws_metadata_none_fields(self, http_request_mock):
mocked_http_response = {
Expand All @@ -75,13 +75,15 @@ def test_get_aws_metadata_none_fields(self, http_request_mock):
}

http_request_mock.return_value = json.dumps(mocked_http_response)
AwsIdentityDocumentUtils.inited = False
AwsIdentityDocumentUtils.is_running = False
aws_identity_doc_utils.AwsIdentityDocumentUtils.inited = False
aws_identity_doc_utils.AwsIdentityDocumentUtils.is_running = False
aws_identity_doc_utils.aws_metadata_map = {}

self.assertTrue(AwsIdentityDocumentUtils.is_running_on_aws())
self.assertTrue(aws_identity_doc_utils.AwsIdentityDocumentUtils
.is_running_on_aws())

labels_list = AwsIdentityDocumentUtils().get_aws_metadata()
labels_list = aws_identity_doc_utils.AwsIdentityDocumentUtils(
).get_aws_metadata()

self.assertEquals(len(labels_list), 2)

Expand All @@ -92,16 +94,18 @@ def test_get_aws_metadata_none_fields(self, http_request_mock):

self.assertEquals(labels_list, expected_labels)

@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch('opencensus.common.monitored_resource.'
'aws_identity_doc_utils.get_request')
def test_aws_not_running(self, http_request_mock):
http_request_mock.return_value = None
aws_identity_doc_utils.inited = False
aws_identity_doc_utils.is_running_on_aws = False
aws_identity_doc_utils.aws_metadata_map = {}

self.assertFalse(AwsIdentityDocumentUtils.is_running_on_aws())
self.assertFalse(aws_identity_doc_utils.AwsIdentityDocumentUtils
.is_running_on_aws())

labels_list = AwsIdentityDocumentUtils().get_aws_metadata()
labels_list = aws_identity_doc_utils.AwsIdentityDocumentUtils(
).get_aws_metadata()

self.assertEquals(len(labels_list), 0)
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import unittest
import mock
import os
from opencensus.common.monitored_resource_util.gcp_metadata_config \
import GcpMetadataConfig
from opencensus.common.monitored_resource_util import gcp_metadata_config
import unittest

from opencensus.common.monitored_resource import gcp_metadata_config

class TestGcpMetadataConfig(unittest.TestCase):

@mock.patch('opencensus.common.monitored_resource_util.'
class TestGcpMetadataConfig(unittest.TestCase):
@mock.patch('opencensus.common.monitored_resource.'
'gcp_metadata_config.get_request')
def test_get_gce_metadata(self, http_request_mock):

def assign_attribute_value(*args, **kwargs):
attribute_uri = args[0].split('/')[-1]
if attribute_uri == 'id':
Expand All @@ -36,13 +33,15 @@ def assign_attribute_value(*args, **kwargs):
return 'us-east1'

http_request_mock.side_effect = assign_attribute_value
GcpMetadataConfig.inited = False
GcpMetadataConfig.is_running = False
gcp_metadata_config.GcpMetadataConfig.inited = False
gcp_metadata_config.GcpMetadataConfig.is_running = False
gcp_metadata_config.gcp_metadata_map = {}

self.assertTrue(GcpMetadataConfig.is_running_on_gcp())
self.assertTrue(
gcp_metadata_config.GcpMetadataConfig.is_running_on_gcp())

labels_list = GcpMetadataConfig().get_gce_metadata()
labels_list = gcp_metadata_config.GcpMetadataConfig().get_gce_metadata(
)

self.assertEquals(len(labels_list), 3)

Expand All @@ -54,12 +53,13 @@ def assign_attribute_value(*args, **kwargs):

self.assertEquals(labels_list, expected_labels)

@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch('opencensus.common.monitored_resource.'
'gcp_metadata_config.get_request')
def test_get_gce_metadata_binary_strings(self, http_request_mock):
"""
At least in python 3 binary strings are returned from urllib
"""

def assign_attribute_value(*args, **kwargs):
attribute_uri = args[0].split('/')[-1]
if attribute_uri == 'id':
Expand All @@ -70,13 +70,15 @@ def assign_attribute_value(*args, **kwargs):
return b'us-east1'

http_request_mock.side_effect = assign_attribute_value
GcpMetadataConfig.inited = False
GcpMetadataConfig.is_running = False
gcp_metadata_config.GcpMetadataConfig.inited = False
gcp_metadata_config.GcpMetadataConfig.is_running = False
gcp_metadata_config.gcp_metadata_map = {}

self.assertTrue(GcpMetadataConfig.is_running_on_gcp())
self.assertTrue(
gcp_metadata_config.GcpMetadataConfig.is_running_on_gcp())

labels_list = GcpMetadataConfig().get_gce_metadata()
labels_list = gcp_metadata_config.GcpMetadataConfig().get_gce_metadata(
)

self.assertEquals(len(labels_list), 3)

Expand All @@ -88,16 +90,17 @@ def assign_attribute_value(*args, **kwargs):

self.assertEquals(labels_list, expected_labels)

@mock.patch.dict(os.environ,
{'KUBERNETES_SERVICE_HOST': '127.0.0.1',
'CONTAINER_NAME': 'container',
'NAMESPACE': 'namespace',
'HOSTNAME': 'localhost'}, clear=True
)
@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch.dict(
os.environ, {
'KUBERNETES_SERVICE_HOST': '127.0.0.1',
'CONTAINER_NAME': 'container',
'NAMESPACE': 'namespace',
'HOSTNAME': 'localhost'
},
clear=True)
@mock.patch('opencensus.common.monitored_resource.'
'gcp_metadata_config.get_request')
def test_get_gke_metadata(self, http_request_mock):

def assign_attribute_value(*args, **kwargs):
attribute_uri = args[0].split('/')[-1]
if attribute_uri == 'id':
Expand All @@ -110,13 +113,15 @@ def assign_attribute_value(*args, **kwargs):
return 'us-east1'

http_request_mock.side_effect = assign_attribute_value
GcpMetadataConfig.inited = False
GcpMetadataConfig.is_running = False
gcp_metadata_config.GcpMetadataConfig.inited = False
gcp_metadata_config.GcpMetadataConfig.is_running = False
gcp_metadata_config.gcp_metadata_map = {}

self.assertTrue(GcpMetadataConfig.is_running_on_gcp())
self.assertTrue(
gcp_metadata_config.GcpMetadataConfig.is_running_on_gcp())

labels_list = GcpMetadataConfig().get_gke_metadata()
labels_list = gcp_metadata_config.GcpMetadataConfig().get_gke_metadata(
)

self.assertEquals(len(labels_list), 7)

Expand All @@ -132,15 +137,16 @@ def assign_attribute_value(*args, **kwargs):

self.assertEquals(labels_list, expected_labels)

@mock.patch.dict(os.environ,
{'KUBERNETES_SERVICE_HOST': '127.0.0.1',
'NAMESPACE': 'namespace',
'HOSTNAME': 'localhost'}, clear=True
)
@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch.dict(
os.environ, {
'KUBERNETES_SERVICE_HOST': '127.0.0.1',
'NAMESPACE': 'namespace',
'HOSTNAME': 'localhost'
},
clear=True)
@mock.patch('opencensus.common.monitored_resource.'
'gcp_metadata_config.get_request')
def test_get_gke_metadata_container_empty(self, http_request_mock):

def assign_attribute_value(*args, **kwargs):
attribute_uri = args[0].split('/')[-1]
if attribute_uri == 'id':
Expand All @@ -151,13 +157,15 @@ def assign_attribute_value(*args, **kwargs):
return 'us-east1'

http_request_mock.side_effect = assign_attribute_value
GcpMetadataConfig.inited = False
GcpMetadataConfig.is_running = False
gcp_metadata_config.GcpMetadataConfig.inited = False
gcp_metadata_config.GcpMetadataConfig.is_running = False
gcp_metadata_config.gcp_metadata_map = {}

self.assertTrue(GcpMetadataConfig.is_running_on_gcp())
self.assertTrue(
gcp_metadata_config.GcpMetadataConfig.is_running_on_gcp())

labels_list = GcpMetadataConfig().get_gke_metadata()
labels_list = gcp_metadata_config.GcpMetadataConfig().get_gke_metadata(
)

self.assertEquals(len(labels_list), 5)

Expand All @@ -172,15 +180,18 @@ def assign_attribute_value(*args, **kwargs):
self.assertEquals(labels_list, expected_labels)

@mock.patch.dict(os.environ, clear=True)
@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch('opencensus.common.monitored_resource.'
'gcp_metadata_config.get_request')
def test_gcp_not_running(self, http_request_mock):
http_request_mock.return_value = None
GcpMetadataConfig.inited = False
GcpMetadataConfig.is_running = False
gcp_metadata_config.GcpMetadataConfig.inited = False
gcp_metadata_config.GcpMetadataConfig.is_running = False
gcp_metadata_config.gcp_metadata_map = {}

self.assertFalse(GcpMetadataConfig.is_running_on_gcp())
self.assertFalse(
gcp_metadata_config.GcpMetadataConfig.is_running_on_gcp())

self.assertEquals(len(GcpMetadataConfig().get_gce_metadata()), 0)
self.assertEquals(len(GcpMetadataConfig().get_gke_metadata()), 0)
self.assertEquals(
len(gcp_metadata_config.GcpMetadataConfig().get_gce_metadata()), 0)
self.assertEquals(
len(gcp_metadata_config.GcpMetadataConfig().get_gke_metadata()), 0)
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import os
import unittest

from opencensus.common.monitored_resource_util import monitored_resource
from opencensus.common.monitored_resource import monitored_resource


@contextmanager
Expand Down Expand Up @@ -65,7 +65,7 @@ def mock_aws_env():

class TestMonitoredResource(unittest.TestCase):

@mock.patch('opencensus.common.monitored_resource_util.monitored_resource'
@mock.patch('opencensus.common.monitored_resource.monitored_resource'
'.gcp_metadata_config.GcpMetadataConfig')
def test_gcp_gce_monitored_resource(self, gcp_metadata_mock):
mocked_labels = {
Expand All @@ -82,7 +82,7 @@ def test_gcp_gce_monitored_resource(self, gcp_metadata_mock):
self.assertEquals(resource.get_type(), 'gce_instance')
self.assertEquals(resource.get_labels(), mocked_labels)

@mock.patch('opencensus.common.monitored_resource_util.monitored_resource'
@mock.patch('opencensus.common.monitored_resource.monitored_resource'
'.gcp_metadata_config.GcpMetadataConfig')
def test_gcp_gke_monitored_resource(self, gcp_metadata_mock):

Expand All @@ -104,7 +104,7 @@ def test_gcp_gke_monitored_resource(self, gcp_metadata_mock):
self.assertEquals(resource.get_type(), 'gke_container')
self.assertEquals(resource.get_labels(), mocked_labels)

@mock.patch('opencensus.common.monitored_resource_util.monitored_resource'
@mock.patch('opencensus.common.monitored_resource.monitored_resource'
'.aws_identity_doc_utils.AwsIdentityDocumentUtils')
def test_aws_monitored_resource(self, aws_metadata_mock):

Expand Down Expand Up @@ -135,7 +135,7 @@ def test_gke_environment(self):

def test_gce_environment(self):
patch = mock.patch(
'opencensus.common.monitored_resource_util.'
'opencensus.common.monitored_resource.'
'gcp_metadata_config.GcpMetadataConfig.'
'is_running_on_gcp',
return_value=True)
Expand All @@ -145,10 +145,10 @@ def test_gce_environment(self):
self.assertIsNotNone(mr)
self.assertEqual(mr.get_type(), "gce_instance")

@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch('opencensus.common.monitored_resource.'
'gcp_metadata_config.GcpMetadataConfig.is_running_on_gcp',
return_value=False)
@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch('opencensus.common.monitored_resource.'
'aws_identity_doc_utils.AwsIdentityDocumentUtils.'
'is_running_on_aws',
return_value=True)
Expand All @@ -158,10 +158,10 @@ def test_aws_environment(self, aws_util_mock, gcp_metadata_mock):
self.assertIsNotNone(mr)
self.assertEqual(mr.get_type(), "aws_ec2_instance")

@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch('opencensus.common.monitored_resource.'
'gcp_metadata_config.GcpMetadataConfig.is_running_on_gcp',
return_value=False)
@mock.patch('opencensus.common.monitored_resource_util.'
@mock.patch('opencensus.common.monitored_resource.'
'aws_identity_doc_utils.AwsIdentityDocumentUtils.'
'is_running_on_aws',
return_value=False)
Expand Down