Browse Source

add tombstones to load-mocks (#5765)

Jess MacQueen 7 years ago
parent
commit
0a5546f7ae

+ 26 - 3
bin/load-mocks

@@ -20,10 +20,10 @@ from pytz import utc
 from sentry import buffer, roles
 from sentry import buffer, roles
 from sentry.models import (
 from sentry.models import (
     Activity, Broadcast, Commit, CommitAuthor, CommitFileChange, Deploy,
     Activity, Broadcast, Commit, CommitAuthor, CommitFileChange, Deploy,
-    Environment, File, GroupMeta, GroupRelease, Organization,
+    Environment, File, Group, GroupMeta, GroupRelease, GroupTombstone, Organization,
     OrganizationAccessRequest, OrganizationMember, Project, Release,
     OrganizationAccessRequest, OrganizationMember, Project, Release,
-    ReleaseCommit, ReleaseEnvironment, ReleaseFile, Repository, Team, User,
-    UserReport
+    ReleaseCommit, ReleaseEnvironment, ReleaseFile, Repository, Team,
+    TOMBSTONE_FIELDS_FROM_GROUP, User, UserReport
 )
 )
 from sentry.signals import mocks_loaded
 from sentry.signals import mocks_loaded
 from sentry.similarity import features
 from sentry.similarity import features
@@ -99,6 +99,27 @@ def generate_commits(user):
     return commits
     return commits
 
 
 
 
+def generate_tombstones(project, user):
+    # attempt to create a high enough previous_group_id
+    # that it won't conflict with any group ids
+    prev_group_id = 100000
+    try:
+        prev_group_id = max(
+            GroupTombstone.objects.order_by('-previous_group_id')[0].previous_group_id,
+            prev_group_id
+        ) + 1
+    except IndexError:
+        pass
+
+    for group in Group.objects.filter(project=project)[:5]:
+        GroupTombstone.objects.create(
+            previous_group_id=prev_group_id,
+            actor_id=user.id,
+            **{name: getattr(group, name) for name in TOMBSTONE_FIELDS_FROM_GROUP}
+        )
+        prev_group_id += 1
+
+
 def create_system_time_series():
 def create_system_time_series():
     now = datetime.utcnow().replace(tzinfo=utc)
     now = datetime.utcnow().replace(tzinfo=utc)
 
 
@@ -348,6 +369,8 @@ def main(num_events=1, extra_events=False):
                         )
                         )
                     release.add_project(project)
                     release.add_project(project)
 
 
+            generate_tombstones(project, user)
+
             raw_commits = generate_commits(user)
             raw_commits = generate_commits(user)
 
 
             repo = Repository.objects.get_or_create(
             repo = Repository.objects.get_or_create(

+ 1 - 2
src/sentry/api/endpoints/project_group_index.py

@@ -21,7 +21,7 @@ from sentry.db.models.query import create_or_update
 from sentry.models import (
 from sentry.models import (
     Activity, EventMapping, Group, GroupAssignee, GroupBookmark, GroupHash, GroupResolution,
     Activity, EventMapping, Group, GroupAssignee, GroupBookmark, GroupHash, GroupResolution,
     GroupSeen, GroupSnooze, GroupStatus, GroupSubscription, GroupSubscriptionReason, GroupTombstone,
     GroupSeen, GroupSnooze, GroupStatus, GroupSubscription, GroupSubscriptionReason, GroupTombstone,
-    Release, TagKey, UserOption
+    Release, TagKey, TOMBSTONE_FIELDS_FROM_GROUP, UserOption
 )
 )
 from sentry.models.event import Event
 from sentry.models.event import Event
 from sentry.models.group import looks_like_short_id
 from sentry.models.group import looks_like_short_id
@@ -38,7 +38,6 @@ delete_logger = logging.getLogger('sentry.deletions.api')
 
 
 ERR_INVALID_STATS_PERIOD = "Invalid stats_period. Valid choices are '', '24h', and '14d'"
 ERR_INVALID_STATS_PERIOD = "Invalid stats_period. Valid choices are '', '24h', and '14d'"
 SAVED_SEARCH_QUERIES = set([s['query'] for s in DEFAULT_SAVED_SEARCHES])
 SAVED_SEARCH_QUERIES = set([s['query'] for s in DEFAULT_SAVED_SEARCHES])
-TOMBSTONE_FIELDS_FROM_GROUP = ('project_id', 'level', 'message', 'culprit', 'data')
 
 
 
 
 @scenario('BulkUpdateIssues')
 @scenario('BulkUpdateIssues')

+ 2 - 0
src/sentry/models/grouptombstone.py

@@ -9,6 +9,8 @@ from sentry.db.models import (
     BoundedPositiveIntegerField, FlexibleForeignKey, GzippedDictField, Model
     BoundedPositiveIntegerField, FlexibleForeignKey, GzippedDictField, Model
 )
 )
 
 
+TOMBSTONE_FIELDS_FROM_GROUP = ('project_id', 'level', 'message', 'culprit', 'data')
+
 
 
 class GroupTombstone(Model):
 class GroupTombstone(Model):
     __core__ = False
     __core__ = False