Cloudwatch support multiple regions
This commit is contained in:
parent
a9d161e58e
commit
4bbd2a11a7
@ -1,2 +1,11 @@
|
|||||||
from .models import cloudwatch_backend
|
from .models import cloudwatch_backends
|
||||||
mock_cloudwatch = cloudwatch_backend.decorator
|
from ..core.models import MockAWS
|
||||||
|
|
||||||
|
|
||||||
|
cloudwatch_backend = cloudwatch_backends['us-east-1']
|
||||||
|
|
||||||
|
def mock_cloudwatch(func=None):
|
||||||
|
if func:
|
||||||
|
return MockAWS(cloudwatch_backends)(func)
|
||||||
|
else:
|
||||||
|
return MockAWS(cloudwatch_backends)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from moto.core import BaseBackend
|
from moto.core import BaseBackend
|
||||||
|
import boto.ec2.cloudwatch
|
||||||
|
|
||||||
|
|
||||||
class Dimension(object):
|
class Dimension(object):
|
||||||
@ -99,4 +100,6 @@ class CloudWatchBackend(BaseBackend):
|
|||||||
return self.metric_data
|
return self.metric_data
|
||||||
|
|
||||||
|
|
||||||
cloudwatch_backend = CloudWatchBackend()
|
cloudwatch_backends = {}
|
||||||
|
for region in boto.ec2.cloudwatch.regions():
|
||||||
|
cloudwatch_backends[region.name] = CloudWatchBackend()
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from .models import cloudwatch_backend
|
from .models import cloudwatch_backends
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
|
||||||
@ -18,6 +18,7 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
ok_actions = self._get_multi_param('OKActions.member')
|
ok_actions = self._get_multi_param('OKActions.member')
|
||||||
insufficient_data_actions = self._get_multi_param("InsufficientDataActions.member")
|
insufficient_data_actions = self._get_multi_param("InsufficientDataActions.member")
|
||||||
unit = self._get_param('Unit')
|
unit = self._get_param('Unit')
|
||||||
|
cloudwatch_backend = cloudwatch_backends[self.region]
|
||||||
alarm = cloudwatch_backend.put_metric_alarm(name, comparison_operator,
|
alarm = cloudwatch_backend.put_metric_alarm(name, comparison_operator,
|
||||||
evaluation_periods, period,
|
evaluation_periods, period,
|
||||||
threshold, statistic,
|
threshold, statistic,
|
||||||
@ -33,6 +34,7 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
alarm_name_prefix = self._get_param('AlarmNamePrefix')
|
alarm_name_prefix = self._get_param('AlarmNamePrefix')
|
||||||
alarm_names = self._get_multi_param('AlarmNames.member')
|
alarm_names = self._get_multi_param('AlarmNames.member')
|
||||||
state_value = self._get_param('StateValue')
|
state_value = self._get_param('StateValue')
|
||||||
|
cloudwatch_backend = cloudwatch_backends[self.region]
|
||||||
|
|
||||||
if action_prefix:
|
if action_prefix:
|
||||||
alarms = cloudwatch_backend.get_alarms_by_action_prefix(action_prefix)
|
alarms = cloudwatch_backend.get_alarms_by_action_prefix(action_prefix)
|
||||||
@ -50,6 +52,7 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
|
|
||||||
def delete_alarms(self):
|
def delete_alarms(self):
|
||||||
alarm_names = self._get_multi_param('AlarmNames.member')
|
alarm_names = self._get_multi_param('AlarmNames.member')
|
||||||
|
cloudwatch_backend = cloudwatch_backends[self.region]
|
||||||
cloudwatch_backend.delete_alarms(alarm_names)
|
cloudwatch_backend.delete_alarms(alarm_names)
|
||||||
template = self.response_template(DELETE_METRIC_ALARMS_TEMPLATE)
|
template = self.response_template(DELETE_METRIC_ALARMS_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
@ -76,11 +79,13 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
dimension_index += 1
|
dimension_index += 1
|
||||||
metric_data.append([metric_name, value, dimensions])
|
metric_data.append([metric_name, value, dimensions])
|
||||||
metric_index += 1
|
metric_index += 1
|
||||||
|
cloudwatch_backend = cloudwatch_backends[self.region]
|
||||||
cloudwatch_backend.put_metric_data(namespace, metric_data)
|
cloudwatch_backend.put_metric_data(namespace, metric_data)
|
||||||
template = self.response_template(PUT_METRIC_DATA_TEMPLATE)
|
template = self.response_template(PUT_METRIC_DATA_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
def list_metrics(self):
|
def list_metrics(self):
|
||||||
|
cloudwatch_backend = cloudwatch_backends[self.region]
|
||||||
metrics = cloudwatch_backend.get_all_metrics()
|
metrics = cloudwatch_backend.get_all_metrics()
|
||||||
template = self.response_template(LIST_METRICS_TEMPLATE)
|
template = self.response_template(LIST_METRICS_TEMPLATE)
|
||||||
return template.render(metrics=metrics)
|
return template.render(metrics=metrics)
|
||||||
|
Loading…
Reference in New Issue
Block a user