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

Unified Diff: appengine/swarming/swarming_rpcs.py

Issue 2931063002: swarming: Add more documentation to task messages (Closed)
Patch Set: doc Created 3 years, 6 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/swarming/swarming_rpcs.py
diff --git a/appengine/swarming/swarming_rpcs.py b/appengine/swarming/swarming_rpcs.py
index 212e3b2ab37cc96afe07e2411fa765f66093930f..50e4350f6a448edf059a233239f0de9aaa500b82 100644
--- a/appengine/swarming/swarming_rpcs.py
+++ b/appengine/swarming/swarming_rpcs.py
@@ -187,31 +187,72 @@ class CacheEntry(messages.Message):
class TaskProperties(messages.Message):
"""Important metadata about a particular task."""
+ # Specifies named caches to map into the working directory. These caches
+ # outlives the task, which can then be reused by tasks later used on this bot
+ # that request the same named cache.
caches = messages.MessageField(CacheEntry, 11, repeated=True)
+ # CIPD packages to install. These packages are meant to be software that is
+ # needed (a dependency) to the task being run. Unlike isolated files, the CIPD
+ # packages do not expire from the server.
cipd_input = messages.MessageField(CipdInput, 10)
+ # Command to run. This has priority over a command specified in the isolated
+ # files. Only one of 'command' or 'extra_args' can be specified.
command = messages.StringField(1, repeated=True)
+ # Dimensions are what is used to determine which bot can run the task. The
+ # bot must have all the matching dimensions, even for repeated keys with
+ # multiple different values. It is a logical AND, all values must match.
dimensions = messages.MessageField(StringPair, 2, repeated=True)
+ # Environment variables to set when running the task.
env = messages.MessageField(StringPair, 3, repeated=True)
+ # Maximum number of seconds the task can run before its process is forcibly
+ # terminated and the task results in TIMED_OUT.
execution_timeout_secs = messages.IntegerField(4)
+ # Extraneous arguments to append to the command specified in the isolated
+ # file. Can only be used when an isolated file specifies a command. Only one
+ # of 'command' or 'extra_args' can be specified.
extra_args = messages.StringField(5, repeated=True)
+ # Number of second to give the child process after a SIGTERM before sending a
+ # SIGKILL. See doc/Bot.md#timeout-handling
grace_period_secs = messages.IntegerField(6)
+ # True if the task does not access any service through the network and is
+ # believed to be 100% reproducible with the same outcome. In the case of a
+ # successful task, previous results will be reused if possible.
idempotent = messages.BooleanField(7)
+ # Isolated inputs to map in the working directory. The isolated file may
+ # optionally specify a command to run. Otherwise, 'command' must be specified.
inputs_ref = messages.MessageField(FilesRef, 8)
+ # Maximum number of seconds the task may be silent (no output to stdout nor
+ # stderr) before it is considered hung and it forcibly terminated early and
+ # the task results in TIMED_OUT.
io_timeout_secs = messages.IntegerField(9)
+ # Paths in the working directory to archive back.
outputs = messages.StringField(12, repeated=True)
- secret_bytes = messages.BytesField(13) # only for rpc->ndb
+ # Secret bytes to provide to the task. Cannot be retrieved back.
+ secret_bytes = messages.BytesField(13)
class NewTaskRequest(messages.Message):
- """Description of a new task request as described by the client."""
+ """Description of a new task request as described by the client.
+
+ This message is used to create a new task.
+ """
+ # Maximum of seconds the task may stay PENDING.
expiration_secs = messages.IntegerField(1)
+ # Task name for display purpose.
name = messages.StringField(2)
+ # Parent Swarming task ID of the process requesting this task. This is to tell
+ # the server about reentrancy: when a task creates children Swarming tasks, so
+ # that the tree of tasks can be presented in the UI; the parent task will list
+ # all the children tasks that were triggered.
parent_task_id = messages.StringField(3)
+ # Task priority, the lower the more important.
priority = messages.IntegerField(4)
+ # Task properties, which defines what to run.
properties = messages.MessageField(TaskProperties, 5)
+ # Tags are 'key:value' strings that describes what the task is about. This can
+ # later be leveraged to search for kinds of tasks per tag.
tags = messages.StringField(6, repeated=True)
-
- # Arbitrary user name associated with a task for UI and tags. Not validated.
+ # User on which behalf this task is run, if relevant. Not validated.
user = messages.StringField(7)
# Defines what OAuth2 credentials the task uses when calling other services.
@@ -231,7 +272,8 @@ class NewTaskRequest(messages.Message):
# separately.
service_account_token = messages.StringField(8)
- # Full topic name to post too, e.g. "projects/<id>/topics/<id>".
+ # Full topic name to post task state updates to, e.g.
+ # "projects/<id>/topics/<id>".
pubsub_topic = messages.StringField(9)
# Secret string to put into "auth_token" attribute of PubSub message.
pubsub_auth_token = messages.StringField(10)
@@ -240,7 +282,12 @@ class NewTaskRequest(messages.Message):
class TaskRequest(messages.Message):
- """Description of a task request as registered by the server."""
+ """Description of a task request as registered by the server.
+
+ This message is used when retrieving information about an existing task.
+
+ See NewtaskRequest for more details.
+ """
expiration_secs = messages.IntegerField(1)
name = messages.StringField(2)
parent_task_id = messages.StringField(3)
@@ -248,8 +295,6 @@ class TaskRequest(messages.Message):
properties = messages.MessageField(TaskProperties, 5)
tags = messages.StringField(6, repeated=True)
created_ts = message_types.DateTimeField(7)
-
- # Arbitrary user name associated with a task for UI and tags. Not validated.
user = messages.StringField(8)
# User name of whoever posted this task, extracted from the credentials.
authenticated = messages.StringField(9)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698