Fix bug of put metric data with timestamp, timestamp should be a date time object instead of a string
This commit is contained in:
parent
1aa99bb405
commit
ab68d14649
2 changed files with 152 additions and 121 deletions
|
|
@ -2,13 +2,14 @@ import json
|
|||
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core.utils import iso_8601_datetime_with_milliseconds
|
||||
from moto.core.utils import iso_8601_datetime_without_milliseconds
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.core.exceptions import RESTError
|
||||
from datetime import datetime, timedelta
|
||||
from dateutil.tz import tzutc
|
||||
from uuid import uuid4
|
||||
from .utils import make_arn_for_dashboard
|
||||
from dateutil import parser
|
||||
|
||||
from moto.core import ACCOUNT_ID as DEFAULT_ACCOUNT_ID
|
||||
|
||||
|
|
@ -146,7 +147,7 @@ class Dashboard(BaseModel):
|
|||
|
||||
class Statistics:
|
||||
def __init__(self, stats, dt):
|
||||
self.timestamp = iso_8601_datetime_with_milliseconds(dt)
|
||||
self.timestamp = iso_8601_datetime_without_milliseconds(dt)
|
||||
self.values = []
|
||||
self.stats = stats
|
||||
|
||||
|
|
@ -278,8 +279,7 @@ class CloudWatchBackend(BaseBackend):
|
|||
# Preserve "datetime" for get_metric_statistics comparisons
|
||||
timestamp = metric_member.get("Timestamp")
|
||||
if timestamp is not None and type(timestamp) != datetime:
|
||||
timestamp = datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%S.%fZ")
|
||||
timestamp = timestamp.replace(tzinfo=tzutc())
|
||||
timestamp = parser.parse(timestamp)
|
||||
self.metric_data.append(
|
||||
MetricDatum(
|
||||
namespace,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue