Merge pull request #2929 from mikegrima/fixcw
Fixed a regression with CloudWatch
This commit is contained in:
commit
e09dfac95b
@ -384,7 +384,7 @@ LIST_METRICS_TEMPLATE = """<ListMetricsResponse xmlns="http://monitoring.amazona
|
|||||||
</member>
|
</member>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</Dimensions>
|
</Dimensions>
|
||||||
<MetricName>Metric:{{ metric.name }}</MetricName>
|
<MetricName>{{ metric.name }}</MetricName>
|
||||||
<Namespace>{{ metric.namespace }}</Namespace>
|
<Namespace>{{ metric.namespace }}</Namespace>
|
||||||
</member>
|
</member>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -22,7 +22,7 @@ import six
|
|||||||
from bisect import insort
|
from bisect import insort
|
||||||
from moto.core import ACCOUNT_ID, BaseBackend, BaseModel
|
from moto.core import ACCOUNT_ID, BaseBackend, BaseModel
|
||||||
from moto.core.utils import iso_8601_datetime_with_milliseconds, rfc_1123_datetime
|
from moto.core.utils import iso_8601_datetime_with_milliseconds, rfc_1123_datetime
|
||||||
from moto.cloudwatch.models import metric_providers, MetricDatum
|
from moto.cloudwatch.models import MetricDatum
|
||||||
from moto.utilities.tagging_service import TaggingService
|
from moto.utilities.tagging_service import TaggingService
|
||||||
from .exceptions import (
|
from .exceptions import (
|
||||||
BucketAlreadyExists,
|
BucketAlreadyExists,
|
||||||
@ -1159,9 +1159,11 @@ class S3Backend(BaseBackend):
|
|||||||
self.account_public_access_block = None
|
self.account_public_access_block = None
|
||||||
self.tagger = TaggingService()
|
self.tagger = TaggingService()
|
||||||
|
|
||||||
|
# TODO: This is broken! DO NOT IMPORT MUTABLE DATA TYPES FROM OTHER AREAS -- THIS BREAKS UNMOCKING!
|
||||||
|
# WRAP WITH A GETTER/SETTER FUNCTION
|
||||||
# Register this class as a CloudWatch Metric Provider
|
# Register this class as a CloudWatch Metric Provider
|
||||||
# Must provide a method 'get_cloudwatch_metrics' that will return a list of metrics, based on the data available
|
# Must provide a method 'get_cloudwatch_metrics' that will return a list of metrics, based on the data available
|
||||||
metric_providers["S3"] = self
|
# metric_providers["S3"] = self
|
||||||
|
|
||||||
def get_cloudwatch_metrics(self):
|
def get_cloudwatch_metrics(self):
|
||||||
metrics = []
|
metrics = []
|
||||||
|
@ -88,7 +88,7 @@ def test_put_metric_data():
|
|||||||
metric_names.should.have(1)
|
metric_names.should.have(1)
|
||||||
metric = metrics[0]
|
metric = metrics[0]
|
||||||
metric.namespace.should.equal("tester")
|
metric.namespace.should.equal("tester")
|
||||||
metric.name.should.equal("Metric:metric")
|
metric.name.should.equal("metric")
|
||||||
dict(metric.dimensions).should.equal({"InstanceId": ["i-0123456,i-0123457"]})
|
dict(metric.dimensions).should.equal({"InstanceId": ["i-0123456,i-0123457"]})
|
||||||
|
|
||||||
|
|
||||||
@ -157,33 +157,34 @@ def test_get_metric_statistics():
|
|||||||
datapoint.should.have.key("Timestamp").which.should.equal(metric_timestamp)
|
datapoint.should.have.key("Timestamp").which.should.equal(metric_timestamp)
|
||||||
|
|
||||||
|
|
||||||
@mock_s3_deprecated
|
# TODO: THIS IS CURRENTLY BROKEN!
|
||||||
@mock_cloudwatch_deprecated
|
# @mock_s3_deprecated
|
||||||
def test_cloudwatch_return_s3_metrics():
|
# @mock_cloudwatch_deprecated
|
||||||
|
# def test_cloudwatch_return_s3_metrics():
|
||||||
region = "us-east-1"
|
#
|
||||||
|
# region = "us-east-1"
|
||||||
cw = boto.ec2.cloudwatch.connect_to_region(region)
|
#
|
||||||
s3 = boto.s3.connect_to_region(region)
|
# cw = boto.ec2.cloudwatch.connect_to_region(region)
|
||||||
|
# s3 = boto.s3.connect_to_region(region)
|
||||||
bucket_name_1 = "test-bucket-1"
|
#
|
||||||
bucket_name_2 = "test-bucket-2"
|
# bucket_name_1 = "test-bucket-1"
|
||||||
|
# bucket_name_2 = "test-bucket-2"
|
||||||
bucket1 = s3.create_bucket(bucket_name=bucket_name_1)
|
#
|
||||||
key = Key(bucket1)
|
# bucket1 = s3.create_bucket(bucket_name=bucket_name_1)
|
||||||
key.key = "the-key"
|
# key = Key(bucket1)
|
||||||
key.set_contents_from_string("foobar" * 4)
|
# key.key = "the-key"
|
||||||
s3.create_bucket(bucket_name=bucket_name_2)
|
# key.set_contents_from_string("foobar" * 4)
|
||||||
|
# s3.create_bucket(bucket_name=bucket_name_2)
|
||||||
metrics_s3_bucket_1 = cw.list_metrics(dimensions={"BucketName": bucket_name_1})
|
#
|
||||||
# Verify that the OOTB S3 metrics are available for the created buckets
|
# metrics_s3_bucket_1 = cw.list_metrics(dimensions={"BucketName": bucket_name_1})
|
||||||
len(metrics_s3_bucket_1).should.be(2)
|
# # Verify that the OOTB S3 metrics are available for the created buckets
|
||||||
metric_names = [m.name for m in metrics_s3_bucket_1]
|
# len(metrics_s3_bucket_1).should.be(2)
|
||||||
sorted(metric_names).should.equal(
|
# metric_names = [m.name for m in metrics_s3_bucket_1]
|
||||||
["Metric:BucketSizeBytes", "Metric:NumberOfObjects"]
|
# sorted(metric_names).should.equal(
|
||||||
)
|
# ["Metric:BucketSizeBytes", "Metric:NumberOfObjects"]
|
||||||
|
# )
|
||||||
# Explicit clean up - the metrics for these buckets are messing with subsequent tests
|
#
|
||||||
key.delete()
|
# # Explicit clean up - the metrics for these buckets are messing with subsequent tests
|
||||||
s3.delete_bucket(bucket_name_1)
|
# key.delete()
|
||||||
s3.delete_bucket(bucket_name_2)
|
# s3.delete_bucket(bucket_name_1)
|
||||||
|
# s3.delete_bucket(bucket_name_2)
|
||||||
|
@ -155,7 +155,7 @@ def test_put_metric_data_no_dimensions():
|
|||||||
metrics.should.have.length_of(1)
|
metrics.should.have.length_of(1)
|
||||||
metric = metrics[0]
|
metric = metrics[0]
|
||||||
metric["Namespace"].should.equal("tester")
|
metric["Namespace"].should.equal("tester")
|
||||||
metric["MetricName"].should.equal("Metric:metric")
|
metric["MetricName"].should.equal("metric")
|
||||||
|
|
||||||
|
|
||||||
@mock_cloudwatch
|
@mock_cloudwatch
|
||||||
@ -183,7 +183,7 @@ def test_put_metric_data_with_statistics():
|
|||||||
metrics.should.have.length_of(1)
|
metrics.should.have.length_of(1)
|
||||||
metric = metrics[0]
|
metric = metrics[0]
|
||||||
metric["Namespace"].should.equal("tester")
|
metric["Namespace"].should.equal("tester")
|
||||||
metric["MetricName"].should.equal("Metric:statmetric")
|
metric["MetricName"].should.equal("statmetric")
|
||||||
# TODO: test statistics - https://github.com/spulec/moto/issues/1615
|
# TODO: test statistics - https://github.com/spulec/moto/issues/1615
|
||||||
|
|
||||||
|
|
||||||
@ -266,12 +266,12 @@ def test_list_metrics():
|
|||||||
{
|
{
|
||||||
u"Namespace": "list_test_1/",
|
u"Namespace": "list_test_1/",
|
||||||
u"Dimensions": [],
|
u"Dimensions": [],
|
||||||
u"MetricName": "Metric:metric1",
|
u"MetricName": "metric1",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
u"Namespace": "list_test_1/",
|
u"Namespace": "list_test_1/",
|
||||||
u"Dimensions": [],
|
u"Dimensions": [],
|
||||||
u"MetricName": "Metric:metric1",
|
u"MetricName": "metric1",
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user