11from __future__ import absolute_import
22
3- from django .db import IntegrityError , transaction
43from django .db .models import F
54from django .utils import timezone
65
@@ -103,27 +102,15 @@ def post(self, request, organization, version):
103102 for project in projects :
104103 env .add_project (project )
105104
106- try :
107- with transaction .atomic ():
108- deploy , created = Deploy .objects .create (
109- organization_id = organization .id ,
110- release = release ,
111- environment_id = env .id ,
112- date_finished = result .get ('dateFinished' , timezone .now ()),
113- date_started = result .get ('dateStarted' ),
114- name = result .get ('name' ),
115- url = result .get ('url' ),
116- ), True
117- except IntegrityError :
118- deploy , created = Deploy .objects .get (
119- organization_id = organization .id ,
120- release = release ,
121- environment_id = env .id ,
122- ), False
123- deploy .update (
124- date_finished = result .get ('dateFinished' , timezone .now ()),
125- date_started = result .get ('dateStarted' ),
126- )
105+ deploy = Deploy .objects .create (
106+ organization_id = organization .id ,
107+ release = release ,
108+ environment_id = env .id ,
109+ date_finished = result .get ('dateFinished' , timezone .now ()),
110+ date_started = result .get ('dateStarted' ),
111+ name = result .get ('name' ),
112+ url = result .get ('url' ),
113+ )
127114
128115 # XXX(dcramer): this has a race for most recent deploy, but
129116 # should be unlikely to hit in the real world
@@ -134,12 +121,6 @@ def post(self, request, organization, version):
134121
135122 Deploy .notify_if_ready (deploy .id )
136123
137- # This is the closest status code that makes sense, and we want
138- # a unique 2xx response code so people can understand when
139- # behavior differs.
140- # 208 Already Reported (WebDAV; RFC 5842)
141- status = 201 if created else 208
142-
143- return Response (serialize (deploy , request .user ), status = status )
124+ return Response (serialize (deploy , request .user ), status = 201 )
144125
145126 return Response (serializer .errors , status = 400 )
0 commit comments