From f61dd7c60f6a96e55b62664415ce7b7f9bfc757f Mon Sep 17 00:00:00 2001 From: David Cramer Date: Sun, 15 Jan 2012 16:44:12 -0800 Subject: [PATCH] All dates will now be stored in UTC, rather than local --- sentry/manager.py | 4 ++-- sentry/queue/tasks/cleanup.py | 2 +- sentry/scripts/runner.py | 2 +- sentry/templatetags/sentry_helpers.py | 2 +- sentry/utils/models.py | 1 + sentry/web/frontend/events.py | 2 +- sentry/web/frontend/groups.py | 2 +- tests/http/tests.py | 4 ++-- tests/tests.py | 4 ++-- 9 files changed, 12 insertions(+), 11 deletions(-) diff --git a/sentry/manager.py b/sentry/manager.py index c65c53f57ef5b..5af66352aac71 100644 --- a/sentry/manager.py +++ b/sentry/manager.py @@ -110,7 +110,7 @@ def get_chart_data(self, instance, max_days=90): return [] hours = max_days * 24 - today = datetime.datetime.now().replace(microsecond=0, second=0, minute=0) + today = datetime.datetime.utcnow().replace(microsecond=0, second=0, minute=0) min_date = today - datetime.timedelta(hours=hours) method = self._get_date_trunc('date', db) @@ -235,7 +235,7 @@ def from_kwargs(self, project, **kwargs): logger_name = kwargs.pop('logger', 'root') server_name = kwargs.pop('server_name', None) site = kwargs.pop('site', None) - date = kwargs.pop('timestamp', None) or datetime.datetime.now() + date = kwargs.pop('timestamp', None) or datetime.datetime.utcnow() extra = kwargs.pop('extra', None) modules = kwargs.pop('modules', None) diff --git a/sentry/queue/tasks/cleanup.py b/sentry/queue/tasks/cleanup.py index b3820823cd182..f086161fff1ab 100644 --- a/sentry/queue/tasks/cleanup.py +++ b/sentry/queue/tasks/cleanup.py @@ -32,7 +32,7 @@ def cleanup(days=30, logger=None, site=None, server=None, level=None, # TODO: we should collect which messages above were deleted # and potentially just send out post_delete signals where # GroupedMessage can update itself accordingly - ts = datetime.datetime.now() - datetime.timedelta(days=days) + ts = datetime.datetime.utcnow() - datetime.timedelta(days=days) # Message qs = SkinnyQuerySet(Event).filter(datetime__lte=ts) diff --git a/sentry/scripts/runner.py b/sentry/scripts/runner.py index f95c5205cf200..e8374e58e7f65 100644 --- a/sentry/scripts/runner.py +++ b/sentry/scripts/runner.py @@ -159,7 +159,7 @@ def main(): raise ValueError("Configuration file does not exist. Use 'init' to initialize the file.") environment['config'] = config_path - environment['start_date'] = datetime.datetime.now() + environment['start_date'] = datetime.datetime.utcnow() settings_from_file(config_path) diff --git a/sentry/templatetags/sentry_helpers.py b/sentry/templatetags/sentry_helpers.py index 64b2829630fa0..1258cd89fe6a9 100644 --- a/sentry/templatetags/sentry_helpers.py +++ b/sentry/templatetags/sentry_helpers.py @@ -166,7 +166,7 @@ def timesince(value): from django.template.defaultfilters import timesince if not value: return _('Never') - if value < datetime.datetime.now() - datetime.timedelta(days=5): + if value < datetime.datetime.utcnow() - datetime.timedelta(days=5): return value.date() value = (' '.join(timesince(value).split(' ')[0:2])).strip(',') if value == _('0 minutes'): diff --git a/sentry/utils/models.py b/sentry/utils/models.py index 6b5611c0660a7..3662459f28521 100644 --- a/sentry/utils/models.py +++ b/sentry/utils/models.py @@ -6,6 +6,7 @@ :license: BSD, see LICENSE for more details. """ +import datetime import base64 import logging import operator diff --git a/sentry/web/frontend/events.py b/sentry/web/frontend/events.py index f077c36cffc15..7c96b6f08d8fe 100644 --- a/sentry/web/frontend/events.py +++ b/sentry/web/frontend/events.py @@ -44,7 +44,7 @@ def event_list(request, project): offset = (page - 1) * settings.MESSAGES_PER_PAGE limit = page * settings.MESSAGES_PER_PAGE - today = datetime.datetime.now() + today = datetime.datetime.utcnow() has_realtime = False diff --git a/sentry/web/frontend/groups.py b/sentry/web/frontend/groups.py index 1214769aaa7f2..df80b73fe9952 100644 --- a/sentry/web/frontend/groups.py +++ b/sentry/web/frontend/groups.py @@ -185,7 +185,7 @@ def group_list(request, project, view_id=None): sort = DEFAULT_SORT_OPTION sort_label = _get_sort_label(sort) - today = datetime.datetime.now() + today = datetime.datetime.utcnow() has_realtime = page == 1 diff --git a/tests/http/tests.py b/tests/http/tests.py index 5ebba30e1ef13..ff05a3abf7ca3 100644 --- a/tests/http/tests.py +++ b/tests/http/tests.py @@ -63,7 +63,7 @@ def test_unicode_keys(self): self.assertEquals(instance.site, 'not_a_real_site') def test_timestamp(self): - timestamp = datetime.datetime.now() - datetime.timedelta(hours=1) + timestamp = datetime.datetime.utcnow() - datetime.timedelta(hours=1) kwargs = {u'message': 'hello', 'timestamp': timestamp.strftime('%s.%f')} resp = self._postWithSignature(kwargs) self.assertEquals(resp.status_code, 200, resp.content) @@ -75,7 +75,7 @@ def test_timestamp(self): self.assertEquals(group.last_seen, timestamp) def test_timestamp_as_iso(self): - timestamp = datetime.datetime.now() - datetime.timedelta(hours=1) + timestamp = datetime.datetime.utcnow() - datetime.timedelta(hours=1) kwargs = {u'message': 'hello', 'timestamp': timestamp.strftime('%Y-%m-%dT%H:%M:%S.%f')} resp = self._postWithSignature(kwargs) self.assertEquals(resp.status_code, 200, resp.content) diff --git a/tests/tests.py b/tests/tests.py index bb2bb518a195a..5e4f9e0520700 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -126,7 +126,7 @@ def test_valid_only_message(self): def test_valid_timestamp_with_tz(self): with self.Settings(USE_TZ=True): - date = datetime.datetime.now().replace(tzinfo=pytz.utc) + date = datetime.datetime.utcnow().replace(tzinfo=pytz.utc) event = Group.objects.from_kwargs(1, message='foo', timestamp=date) self.assertEquals(event.message, 'foo') self.assertEquals(event.project_id, 1) @@ -135,7 +135,7 @@ def test_valid_timestamp_with_tz(self): def test_valid_timestamp_without_tz(self): # TODO: this doesnt error, but it will throw a warning. What should we do? with self.Settings(USE_TZ=True): - date = datetime.datetime.now() + date = datetime.datetime.utcnow() event = Group.objects.from_kwargs(1, message='foo', timestamp=date) self.assertEquals(event.message, 'foo') self.assertEquals(event.project_id, 1)