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

Unified Diff: appengine/swarming/handlers_endpoints.py

Issue 1946253003: swarming: refactor cipd input (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/luci-py@default-isolate-server
Patch Set: rebased Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « appengine/swarming/handlers_bot_test.py ('k') | appengine/swarming/handlers_endpoints_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/swarming/handlers_endpoints.py
diff --git a/appengine/swarming/handlers_endpoints.py b/appengine/swarming/handlers_endpoints.py
index cab79d25ab09906b1084d8342de0df4c8636a6aa..968ac7e869715de9cf6f8e0fa357c2ed73a063b3 100644
--- a/appengine/swarming/handlers_endpoints.py
+++ b/appengine/swarming/handlers_endpoints.py
@@ -77,6 +77,33 @@ def get_result_entity(task_id):
return get_or_raise(key)
+def apply_property_defaults(properties):
+ """Fills ndb task properties with default values read from server settings."""
+ cfg = config.settings()
+ if not cfg:
+ return
+
+ cfg = config.settings()
+ if cfg.isolate.default_server and cfg.isolate.default_namespace:
+ properties.inputs_ref = properties.inputs_ref or task_request.FilesRef()
+ properties.inputs_ref.isolatedserver = (
+ properties.inputs_ref.isolatedserver or cfg.isolate.default_server)
+ properties.inputs_ref.namespace = (
+ properties.inputs_ref.namespace or cfg.isolate.default_namespace)
+
+ if cfg.HasField('cipd') and properties.cipd_input:
+ properties.cipd_input.server = (
+ properties.cipd_input.server or cfg.cipd.default_server)
+ properties.cipd_input.client_package = (
+ properties.cipd_input.client_package or task_request.CipdPackage())
+ properties.cipd_input.client_package.package_name = (
+ properties.cipd_input.client_package.package_name or
+ cfg.cipd.default_client_package.package_name)
+ properties.cipd_input.client_package.version = (
+ properties.cipd_input.client_package.version or
+ cfg.cipd.default_client_package.version)
+
+
### API
@@ -268,24 +295,10 @@ class SwarmingTasksService(remote.Service):
"""
logging.info('%s', request)
- if not request.properties:
- raise endpoints.BadRequestException('properties are required')
-
- # Apply isolate defaults.
- cfg = config.settings()
- if cfg.isolate.default_server and cfg.isolate.default_namespace:
- request.properties.inputs_ref = (
- request.properties.inputs_ref or swarming_rpcs.FilesRef())
- request.properties.inputs_ref.isolatedserver = (
- request.properties.inputs_ref.isolatedserver or
- cfg.isolate.default_server)
- request.properties.inputs_ref.namespace = (
- request.properties.inputs_ref.namespace or
- cfg.isolate.default_namespace)
-
try:
request = message_conversion.new_task_request_from_rpc(
request, utils.utcnow())
+ apply_property_defaults(request.properties)
posted_request = task_request.make_request(request, acl.is_bot_or_admin())
except (datastore_errors.BadValueError, TypeError, ValueError) as e:
raise endpoints.BadRequestException(e.message)
« no previous file with comments | « appengine/swarming/handlers_bot_test.py ('k') | appengine/swarming/handlers_endpoints_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698