diff options
author | Lars Wirzenius <liw@liw.fi> | 2020-04-24 11:22:21 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2020-04-24 11:22:21 +0300 |
commit | e58656733ecd648b5ab81b62289fd546d84cb157 (patch) | |
tree | 136b14936eb92e235c301619a37eff7b3b825528 | |
parent | f2bbf0cb4b3bcb58f4dfaced9864aa36b8361ac0 (diff) | |
download | ick-contractor-e58656733ecd648b5ab81b62289fd546d84cb157.tar.gz |
Change: attach disk to worker as part of waiting for worker
-rwxr-xr-x | contractor | 24 |
1 files changed, 14 insertions, 10 deletions
@@ -61,6 +61,7 @@ class ContractorApplication(cliapp.Application): bs = self.load_build_spec(args[0]) dest = self.manager_destination() manager = RemoteServer(dest, verbose=self.verbose) + self.verbose('manager is at {}'.format(dest)) with Timer(self.verbose, 'complete-run'): with Timer(self.verbose, 'upload-worker-image'): @@ -98,17 +99,18 @@ class ContractorApplication(cliapp.Application): execs = [ UnmountWS(), WorkerIP(), + AttachWS(), ] er = self.exec_quietly(manager, *execs) worker_ip = er.stdout.decode('UTF8').strip() with Timer(self.verbose, 'prepare-workspace-worker'): - self.exec_quietly(manager, AttachWS()) - self.verbose('attached') - - worker = OnWorker( - dest, 'worker@{}'.format(worker_ip), verbose=self.verbose) - self.exec_quietly(worker, Mkdir('/workspace'), MountWSonWorker()) + worker_dest = 'worker@{}'.format(worker_ip) + self.verbose( + 'worker is at {} (via manager)'.format(worker_dest)) + worker = OnWorker(dest, worker_dest, verbose=self.verbose) + self.exec_quietly( + worker, Mkdir('/workspace'), MountWSonWorker()) with Timer(self.verbose, 'prepare-worker-with-ansible'): ansible = bs.ansible() @@ -141,7 +143,7 @@ class ContractorApplication(cliapp.Application): return BuildSpec(f.read()) def upload_worker_image(self, filename, dest): - self.verbose('uploading image to worker: {}'.format(filename)) + self.verbose('uploading worker to manager: {}'.format(filename)) target = '{}:{}'.format(dest, WORKER_IMG) if rsync(filename, target).failed(): self.error('could not upload image to worker') @@ -239,6 +241,7 @@ class RemoteServer: def __init__(self, ssh_destination, verbose=None): self._dest = ssh_destination + self._where = 'manager: {}'.format(ssh_destination) self._verbose = verbose def quietly(self, *execs): @@ -249,7 +252,7 @@ class RemoteServer: def _msg(self, execs): if self._verbose is not None: - self._verbose('Executing steps') + self._verbose('Executing steps on {}'.format(self._where)) for e in execs: m = e.msg() or e.__class__.__name__ self._verbose(' - ' + m) @@ -268,6 +271,7 @@ class OnWorker(RemoteServer): def __init__(self, manager, worker, verbose=None): self._dest = manager + self._where = 'worker: {}'.format(worker) self._prefix = ['ssh', worker, '--'] self._verbose = verbose @@ -508,7 +512,7 @@ class AttachWS(RemoteExecution): return 'attach workspace disk to worker' def argv(self): - return virsh('attach-disk', 'worker', WS_DEV, 'vdb', + return virsh('--quiet', 'attach-disk', 'worker', WS_DEV, 'vdb', '--targetbus', 'virtio', '--live') @@ -604,7 +608,7 @@ class Timer: now = time.time() duration = now - self._prev self._prev = now - self._report('time: {:.1f} s {}'.format(duration, self._title)) + self._report('time: {:.1f} s {}\n'.format(duration, self._title)) return False |