madecoste / swarming

Automatically exported from code.google.com/p/swarming
Apache License 2.0
0 stars 1 forks source link

When a bot is assigned a task, lock it to the specific server version instead of using the default version #164

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Repro:
1. Trigger a task
2. Bot grab the task and starts execution
3. Default server version is switched by an administrator

Expected:
Bot continue communicating the old server for the duration of the task.

Actual:
Bot running the old bot code talks to the new server.

Goal:
Make bot API breaking changes more trivial to roll out and back. Right now it 
requires a small amount of compatibility shim, only because of not breaking 
currently running tasks.

Action Items:
- When a bot /poll a task, the server returns 'host' to use for the 
communication for the remainder of this task. It's the fully qualified hostname 
including the version.
- Bot must assert it's the same base host name, e.g. 
new_server.endswith(old_server), e.g.
'1000-12345678-dot-chromium-swarm.appspot.com'.endswith('chromium-swarm.appspot.
com' is True.
- bot_main.py run_manifest() is provided this new remote. This is also passed 
to task_runner, which will never see the unqualified host name.

Original issue reported on code.google.com by maruel@chromium.org on 16 Oct 2014 at 12:45

GoogleCodeExporter commented 9 years ago

Original comment by maruel@chromium.org on 17 Oct 2014 at 7:02