Просмотр исходного кода

Revert "Correct transactional exception scoping"

This reverts commit 9d9ffe9c57eaf1b10b622cd1ffebcada58d0ee02.
David Cramer 9 лет назад
Родитель
Сommit
83533ef09e

+ 4 - 4
bin/load-mocks

@@ -238,15 +238,15 @@ def main(num_events=1):
                     message='This is a an example PHP event with an extremely long and annoying title\nIt also happens to contain some newlines in it,\nthus making it even more annoying.',
                 )
 
-            try:
-                with transaction.atomic():
+            with transaction.atomic():
+                try:
                     GroupMeta.objects.create(
                         group=event1.group,
                         key='github:tid',
                         value='134',
                     )
-            except IntegrityError:
-                pass
+                except IntegrityError:
+                    pass
 
             UserReport.objects.create(
                 project=project,

+ 14 - 14
src/sentry/api/endpoints/project_releases.py

@@ -117,8 +117,8 @@ class ProjectReleasesEndpoint(ProjectEndpoint):
         if serializer.is_valid():
             result = serializer.object
 
-            try:
-                with transaction.atomic():
+            with transaction.atomic():
+                try:
                     release = Release.objects.create(
                         project=project,
                         version=result['version'],
@@ -128,18 +128,18 @@ class ProjectReleasesEndpoint(ProjectEndpoint):
                         date_started=result.get('dateStarted'),
                         date_released=result.get('dateReleased') or timezone.now(),
                     )
-            except IntegrityError:
-                return Response({
-                    'detail': 'Release with version already exists'
-                }, status=400)
-            else:
-                Activity.objects.create(
-                    type=Activity.RELEASE,
-                    project=project,
-                    ident=result['version'],
-                    data={'version': result['version']},
-                    datetime=release.date_released,
-                )
+                except IntegrityError:
+                    return Response({
+                        'detail': 'Release with version already exists'
+                    }, status=400)
+                else:
+                    Activity.objects.create(
+                        type=Activity.RELEASE,
+                        project=project,
+                        ident=result['version'],
+                        data={'version': result['version']},
+                        datetime=release.date_released,
+                    )
 
             return Response(serialize(release, request.user), status=201)
         return Response(serializer.errors, status=400)

+ 6 - 6
src/sentry/api/endpoints/project_searches.py

@@ -50,18 +50,18 @@ class ProjectSearchesEndpoint(ProjectEndpoint):
         if serializer.is_valid():
             result = serializer.object
 
-            try:
-                with transaction.atomic():
+            with transaction.atomic():
+                try:
                     search = SavedSearch.objects.create(
                         project=project,
                         name=result['name'],
                         query=result['query'],
                         is_default=result.get('isDefault', False),
                     )
-            except IntegrityError:
-                return Response({
-                    'detail': 'Search with same name already exists.'
-                }, status=400)
+                except IntegrityError:
+                    return Response({
+                        'detail': 'Search with same name already exists.'
+                    }, status=400)
 
                 if search.is_default:
                     SavedSearch.objects.filter(

+ 4 - 4
src/sentry/event_manager.py

@@ -550,11 +550,11 @@ class EventManager(object):
         )
         cached = default_cache.get(cache_key)
         if cached is None:
-            with transaction.atomic(using=router.db_for_write(EventUser)):
-                try:
+            try:
+                with transaction.atomic(using=router.db_for_write(EventUser)):
                     euser.save()
-                except IntegrityError:
-                    pass
+            except IntegrityError:
+                pass
             default_cache.set(cache_key, '', 3600)
 
         return euser

+ 12 - 12
src/sentry/models/user.py

@@ -95,23 +95,23 @@ class User(BaseModel, AbstractBaseUser):
         )
 
         for obj in OrganizationMember.objects.filter(user=from_user):
-            try:
-                with transaction.atomic():
+            with transaction.atomic():
+                try:
                     obj.update(user=to_user)
-            except IntegrityError:
-                pass
+                except IntegrityError:
+                    pass
         for obj in GroupBookmark.objects.filter(user=from_user):
-            try:
-                with transaction.atomic():
+            with transaction.atomic():
+                try:
                     obj.update(user=to_user)
-            except IntegrityError:
-                pass
+                except IntegrityError:
+                    pass
         for obj in UserOption.objects.filter(user=from_user):
-            try:
-                with transaction.atomic():
+            with transaction.atomic():
+                try:
                     obj.update(user=to_user)
-            except IntegrityError:
-                pass
+                except IntegrityError:
+                    pass
 
         Activity.objects.filter(
             user=from_user,

+ 7 - 7
src/sentry/web/forms/add_organization_member.py

@@ -20,14 +20,14 @@ class AddOrganizationMemberForm(forms.ModelForm):
         om = super(AddOrganizationMemberForm, self).save(commit=False)
         om.organization = organization
 
-        try:
-            with transaction.atomic():
+        with transaction.atomic():
+            try:
                 om.save()
-        except IntegrityError:
-            return OrganizationMember.objects.get(
-                user=om.user,
-                organization=organization,
-            ), False
+            except IntegrityError:
+                return OrganizationMember.objects.get(
+                    user=om.user,
+                    organization=organization,
+                ), False
 
         AuditLogEntry.objects.create(
             organization=organization,