| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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() |
| OLD | NEW |