Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(991)

Side by Side Diff: appengine/cr-buildbucket/api.py

Issue 1877083003: buildbucket: add retry API. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: add retry_of tag Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | appengine/cr-buildbucket/service.py » ('j') | appengine/cr-buildbucket/service.py » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import datetime 5 import datetime
6 import functools 6 import functools
7 import json 7 import json
8 import logging 8 import logging
9 9
10 from google.appengine.ext import ndb 10 from google.appengine.ext import ndb
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 one_res.build = build_to_message(build, include_lease_key=True) 280 one_res.build = build_to_message(build, include_lease_key=True)
281 except errors.Error as ex: 281 except errors.Error as ex:
282 one_res.error = exception_to_error_message(ex) 282 one_res.error = exception_to_error_message(ex)
283 return one_res 283 return one_res
284 284
285 res.results = [ 285 res.results = [
286 to_msg(req, build) 286 to_msg(req, build)
287 for req, build in zip(request.builds, build_futures)] 287 for req, build in zip(request.builds, build_futures)]
288 return res 288 return res
289 289
290 ################################## RETRY ##################################
291
292 class RetryRequestMessage(messages.Message):
293 client_operation_id = messages.StringField(1)
294 lease_expiration_ts = messages.IntegerField(2)
295 pubsub_callback = messages.MessageField(PubSubCallbackMessage, 3)
296
297 @buildbucket_api_method(
298 id_resource_container(RetryRequestMessage),
299 BuildResponseMessage,
300 path='builds/{id}/retry', http_method='PUT')
301 @auth.public
302 def retry(self, request):
303 """Retries an existing build."""
304 build = service.retry(
305 request.id,
306 lease_expiration_date=parse_datetime(request.lease_expiration_ts),
307 client_operation_id=request.client_operation_id,
308 pubsub_callback=pubsub_callback_from_message(request.pubsub_callback),
309 )
310 return build_to_response_message(build, include_lease_key=True)
311
312
290 ################################## SEARCH ################################# 313 ################################## SEARCH #################################
291 314
292 315
293 SEARCH_REQUEST_RESOURCE_CONTAINER = endpoints.ResourceContainer( 316 SEARCH_REQUEST_RESOURCE_CONTAINER = endpoints.ResourceContainer(
294 message_types.VoidMessage, 317 message_types.VoidMessage,
295 start_cursor=messages.StringField(1), 318 start_cursor=messages.StringField(1),
296 bucket=messages.StringField(2, repeated=True), 319 bucket=messages.StringField(2, repeated=True),
297 # All specified tags must be present in a build. 320 # All specified tags must be present in a build.
298 tag=messages.StringField(3, repeated=True), 321 tag=messages.StringField(3, repeated=True),
299 status=messages.EnumField(model.BuildStatus, 4), 322 status=messages.EnumField(model.BuildStatus, 4),
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 ), 602 ),
580 DeleteManyBuildsResponse, 603 DeleteManyBuildsResponse,
581 path='bucket/{bucket}/delete', http_method='POST') 604 path='bucket/{bucket}/delete', http_method='POST')
582 @auth.public 605 @auth.public
583 def delete_many_builds(self, request): 606 def delete_many_builds(self, request):
584 """Deletes scheduled or started builds in a bucket.""" 607 """Deletes scheduled or started builds in a bucket."""
585 service.delete_many_builds( 608 service.delete_many_builds(
586 request.bucket, request.status, 609 request.bucket, request.status,
587 tags=request.tag[:], created_by=request.created_by) 610 tags=request.tag[:], created_by=request.created_by)
588 return self.DeleteManyBuildsResponse() 611 return self.DeleteManyBuildsResponse()
OLDNEW
« no previous file with comments | « no previous file | appengine/cr-buildbucket/service.py » ('j') | appengine/cr-buildbucket/service.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698