finn pushed to branch finn/cli-time-period at BuildGrid / buildgrid
Commits:
6 changed files:
- buildgrid/_app/bots/temp_directory.py → buildgrid/_app/bots/host.py
- buildgrid/_app/commands/cmd_bot.py
- docs/source/reference_cli.rst
- docs/source/using_bazel.rst
- docs/source/using_internal.rst
- docs/source/using_recc.rst
Changes:
... | ... | @@ -24,7 +24,7 @@ from buildgrid._protos.build.bazel.remote.execution.v2 import remote_execution_p |
24 | 24 |
from buildgrid.utils import output_file_maker, output_directory_maker
|
25 | 25 |
|
26 | 26 |
|
27 |
-def work_temp_directory(context, lease):
|
|
27 |
+def work_host_tools(context, lease):
|
|
28 | 28 |
"""Executes a lease for a build action, using host tools.
|
29 | 29 |
"""
|
30 | 30 |
|
... | ... | @@ -31,7 +31,7 @@ import grpc |
31 | 31 |
from buildgrid.bot import bot, bot_interface
|
32 | 32 |
from buildgrid.bot.bot_session import BotSession, Device, Worker
|
33 | 33 |
|
34 |
-from ..bots import buildbox, dummy, temp_directory
|
|
34 |
+from ..bots import buildbox, dummy, host
|
|
35 | 35 |
from ..cli import pass_context
|
36 | 36 |
|
37 | 37 |
|
... | ... | @@ -52,16 +52,19 @@ from ..cli import pass_context |
52 | 52 |
help="Public CAS client certificate for TLS (PEM-encoded)")
|
53 | 53 |
@click.option('--cas-server-cert', type=click.Path(exists=True, dir_okay=False), default=None,
|
54 | 54 |
help="Public CAS server certificate for TLS (PEM-encoded)")
|
55 |
+@click.option('--update-period', type=click.FLOAT, default=0.5, show_default=True,
|
|
56 |
+ help="Time period for bot updates to the server in seconds.")
|
|
55 | 57 |
@click.option('--parent', type=click.STRING, default='main', show_default=True,
|
56 | 58 |
help="Targeted farm resource.")
|
57 | 59 |
@pass_context
|
58 |
-def cli(context, parent, remote, client_key, client_cert, server_cert,
|
|
60 |
+def cli(context, parent, update_period, remote, client_key, client_cert, server_cert,
|
|
59 | 61 |
remote_cas, cas_client_key, cas_client_cert, cas_server_cert):
|
60 | 62 |
# Setup the remote execution server channel:
|
61 | 63 |
url = urlparse(remote)
|
62 | 64 |
|
63 | 65 |
context.remote = '{}:{}'.format(url.hostname, url.port or 50051)
|
64 | 66 |
context.remote_url = remote
|
67 |
+ context.update_period = update_period
|
|
65 | 68 |
context.parent = parent
|
66 | 69 |
|
67 | 70 |
if url.scheme == 'http':
|
... | ... | @@ -135,26 +138,26 @@ def cli(context, parent, remote, client_key, client_cert, server_cert, |
135 | 138 |
@pass_context
|
136 | 139 |
def run_dummy(context):
|
137 | 140 |
"""
|
138 |
- Simple dummy client. Creates a session, accepts leases, does fake work and
|
|
139 |
- updates the server.
|
|
141 |
+ Creates a session, accepts leases, does fake work and updates the server.
|
|
140 | 142 |
"""
|
141 | 143 |
try:
|
142 |
- b = bot.Bot(context.bot_session)
|
|
144 |
+ b = bot.Bot(context.bot_session, context.update_period)
|
|
143 | 145 |
b.session(dummy.work_dummy,
|
144 | 146 |
context)
|
145 | 147 |
except KeyboardInterrupt:
|
146 | 148 |
pass
|
147 | 149 |
|
148 | 150 |
|
149 |
-@cli.command('temp-directory', short_help="Runs commands in temp directory and uploads results.")
|
|
151 |
+@cli.command('host-tools', short_help="Runs commands using the host's tools.")
|
|
150 | 152 |
@pass_context
|
151 |
-def run_temp_directory(context):
|
|
152 |
- """ Downloads files and command from CAS and runs
|
|
153 |
- in a temp directory, uploading result back to CAS
|
|
153 |
+def run_host_tools(context):
|
|
154 |
+ """
|
|
155 |
+ Downloads inputs from CAS, runs build commands using host-tools and uploads
|
|
156 |
+ result back to CAS.
|
|
154 | 157 |
"""
|
155 | 158 |
try:
|
156 |
- b = bot.Bot(context.bot_session)
|
|
157 |
- b.session(temp_directory.work_temp_directory,
|
|
159 |
+ b = bot.Bot(context.bot_session, context.update_period)
|
|
160 |
+ b.session(host.work_host_tools,
|
|
158 | 161 |
context)
|
159 | 162 |
except KeyboardInterrupt:
|
160 | 163 |
pass
|
... | ... | @@ -168,13 +171,13 @@ def run_temp_directory(context): |
168 | 171 |
@pass_context
|
169 | 172 |
def run_buildbox(context, local_cas, fuse_dir):
|
170 | 173 |
"""
|
171 |
- Uses BuildBox to run commands.
|
|
174 |
+ Uses BuildBox to run build commands.
|
|
172 | 175 |
"""
|
173 | 176 |
context.local_cas = local_cas
|
174 | 177 |
context.fuse_dir = fuse_dir
|
175 | 178 |
|
176 | 179 |
try:
|
177 |
- b = bot.Bot(context.bot_session)
|
|
180 |
+ b = bot.Bot(context.bot_session, context.update_period)
|
|
178 | 181 |
b.session(buildbox.work_buildbox,
|
179 | 182 |
context)
|
180 | 183 |
except KeyboardInterrupt:
|
... | ... | @@ -36,10 +36,10 @@ BuildGrid's Command Line Interface (CLI) reference documentation. |
36 | 36 |
|
37 | 37 |
----
|
38 | 38 |
|
39 |
-.. _invoking-bgd-bot-temp-directory:
|
|
39 |
+.. _invoking-bgd-bot-host-tools:
|
|
40 | 40 |
|
41 |
-.. click:: buildgrid._app.commands.cmd_bot:run_temp_directory
|
|
42 |
- :prog: bgd bot temp-directory
|
|
41 |
+.. click:: buildgrid._app.commands.cmd_bot:run_host_tools
|
|
42 |
+ :prog: bgd bot host-tools
|
|
43 | 43 |
|
44 | 44 |
----
|
45 | 45 |
|
... | ... | @@ -137,4 +137,4 @@ BuildGrid's Command Line Interface (CLI) reference documentation. |
137 | 137 |
.. _invoking-bgd-server-start:
|
138 | 138 |
|
139 | 139 |
.. click:: buildgrid._app.commands.cmd_server:start
|
140 |
- :prog: bgd server start
|
|
140 |
+ :prog: bgd server start
|
|
\ No newline at end of file |
... | ... | @@ -94,12 +94,12 @@ has ``gcc`` installed, run: |
94 | 94 |
|
95 | 95 |
.. code-block:: sh
|
96 | 96 |
|
97 |
- bgd bot --remote=http://localhost:50051 --parent=main temp-directory
|
|
97 |
+ bgd bot --remote=http://localhost:50051 --parent=main host-tools
|
|
98 | 98 |
|
99 | 99 |
The ``--remote`` option is used to specify the server location (running on the
|
100 | 100 |
same machine here, and listening to port 50051). The ``--parent`` option is used
|
101 | 101 |
to specify the server instance you expect the bot to be attached to. Refer to
|
102 |
-the :ref:`CLI reference section <invoking-bgd-bot-temp-directory>` for command
|
|
102 |
+the :ref:`CLI reference section <invoking-bgd-bot-host-tools>` for command
|
|
103 | 103 |
line interface details.
|
104 | 104 |
|
105 | 105 |
The BuildGrid server is now ready to accept jobs and execute them. Bazel needs
|
... | ... | @@ -128,4 +128,4 @@ generated executable. Simply invoke: |
128 | 128 |
./bazel-bin/main/hello-world
|
129 | 129 |
|
130 | 130 |
.. _bazel-examples: https://github.com/bazelbuild/examples
|
131 |
-.. _stage3 CPP example: https://github.com/bazelbuild/examples/tree/master/cpp-tutorial/stage3
|
|
131 |
+.. _stage3 CPP example: https://github.com/bazelbuild/examples/tree/master/cpp-tutorial/stage3
|
|
\ No newline at end of file |
1 |
+ |
|
1 | 2 |
.. _internal-client:
|
2 | 3 |
|
3 | 4 |
Internal client
|
... | ... | @@ -83,7 +84,7 @@ Start the following bot session: |
83 | 84 |
|
84 | 85 |
.. code-block:: sh
|
85 | 86 |
|
86 |
- bgd bot temp-directory
|
|
87 |
+ bgd bot host-tools
|
|
87 | 88 |
|
88 | 89 |
Upload the directory containing the C file:
|
89 | 90 |
|
... | ... | @@ -101,4 +102,4 @@ to run on the bot: |
101 | 102 |
bgd execute command --output-file hello True /path/to/test-buildgrid -- gcc -Wall hello.c -o hello
|
102 | 103 |
|
103 | 104 |
The resulting executeable should have returned to a new directory called
|
104 |
-``testing``.
|
|
105 |
+``testing``.
|
|
\ No newline at end of file |
... | ... | @@ -103,12 +103,12 @@ to build the hello example program. Once you've make sure that your machine has |
103 | 103 |
|
104 | 104 |
.. code-block:: sh
|
105 | 105 |
|
106 |
- bgd bot --remote=http://localhost:50051 --parent=main temp-directory
|
|
106 |
+ bgd bot --remote=http://localhost:50051 --parent=main host-tools
|
|
107 | 107 |
|
108 | 108 |
The ``--remote`` option is used to specify the server location (running on the
|
109 | 109 |
same machine here, and listening to port 50051). The ``--parent`` option is used
|
110 | 110 |
to specify the server instance you expect the bot to be attached to. Refer to
|
111 |
-the :ref:`CLI reference section <invoking-bgd-bot-temp-directory>` for command
|
|
111 |
+the :ref:`CLI reference section <invoking-bgd-bot-host-tools>` for command
|
|
112 | 112 |
line interface details.
|
113 | 113 |
|
114 | 114 |
The BuildGrid server is now ready to accept jobs and execute them. RECC's
|