summaryrefslogtreecommitdiff
path: root/contractor
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-04-09 16:11:16 +0300
committerLars Wirzenius <liw@liw.fi>2020-04-09 16:11:16 +0300
commite485491c327a4291161491533fa6479c9d198ea0 (patch)
tree84eab87baab46cb01c0c6337eb0392d88826af5f /contractor
parent2b2d87ac8c2acba6519798b437be28823911af9b (diff)
downloadick-contractor-e485491c327a4291161491533fa6479c9d198ea0.tar.gz
Drop: dead code
Diffstat (limited to 'contractor')
-rwxr-xr-xcontractor182
1 files changed, 0 insertions, 182 deletions
diff --git a/contractor b/contractor
index 9a50021..5bfdba3 100755
--- a/contractor
+++ b/contractor
@@ -127,185 +127,6 @@ class ContractorApplication(cliapp.Application):
addr = self.settings['manager-address']
return Manager(user, addr)
- ############################
-
- def cmd_on_manager(self, args):
- o = self.on_manager(args)
- if o is None:
- self.error('Failed to run command on manager')
- sys.exit(1)
- sys.stdout.write(o.decode('utf-8'))
-
- def cmd_worker_image(self, args):
- img = args[0]
- self.verbose(
- 'Copying VM image {} to manager VM as {}'.format(
- img, WORKER_IMG))
- tgt = '{}:{}'.format(self.ssh_target(), WORKER_IMG)
- argv = ['rsync', '-aHSs', '--', img, tgt]
- cliapp.runcmd(argv)
-
- def cmd_worker_start(self, args):
- self.verbose('mkfs on workspace disk')
- o = self.on_manager(['sudo', 'mkfs', '-t', 'ext4', WS_DEV])
- if o is None:
- self.error('Failed to mkfs workspace')
- sys.exit(1)
-
- img = WORKER_IMG
- self.verbose('Creating worker VM using {} on manager VM'.format(img))
- o = self.on_manager(['./create-vm', img])
- if o is None:
- self.error('Failed to create worker VM')
- sys.exit(1)
-
- self.verbose('Waiting for worker to become available')
- while True:
- o = self.on_worker('worker', ['true'])
- logging.debug('o: {!r}'.format(o))
- if o is not None:
- break
- time.sleep(2)
-
- self.verbose('Created worker VM and it is available')
-
- def cmd_worker_stop(self, args):
- self.verbose('Destroying worker VM')
- self.on_manager(
- ['virsh', '-c', 'qemu:///system', 'destroy', 'worker'])
- self.on_manager(
- ['virsh', '-c', 'qemu:///system', 'undefine', 'worker'])
- self.verbose('Destroyed worker VM')
-
- def cmd_worker_ip(self, _):
- print(self.worker_ip())
-
- def cmd_worker_status(self, args):
- o = self.on_worker('worker', ['true'])
- if o is not None:
- self.verbose('Worker VM is up and running')
- sys.exit(0)
- else:
- self.verbose('Worker VM is NOT available')
- sys.exit(1)
-
- def cmd_setup(self, args):
- ip = self.worker_ip()
- argv = [cliapp.shell_quote(x) for x in args]
- argv = ['ssh', 'manager@{}'.format(ip), 'sudo', '--'] + argv
- tgt = self.ssh_target()
- try:
- o = cliapp.ssh_runcmd(tgt, argv)
- except cliapp.AppException:
- self.error('could not run command on worker')
- return None
- if self.settings['verbose']:
- self.output.write(o.decode('utf-8'))
-
- def cmd_sources(self, args):
- dirname = args[0]
-
- self.create_workspace()
-
- tar_argv = ['tar', '-C', dirname, '-c', '.']
- ip = self.worker_ip()
- ssh_argv = [
- 'ssh', self.ssh_target(), '--',
- 'ssh', 'worker@{}'.format(ip), '--',
- 'tar', '-C/workspace/src', '-x']
- cliapp.runcmd(tar_argv, ssh_argv)
- self.verbose('Unpacked sources to /workspace/src')
-
- def cmd_get_workspace(self, args):
- dirname = args[0]
-
- self.create_workspace()
-
- ip = self.worker_ip()
- ssh_argv = [
- 'ssh', self.ssh_target(), '--',
- 'ssh', 'worker@{}'.format(ip), '--',
- 'tar', '-C/workspace', '-c', '.']
- tar_argv = ['tar', '-C', dirname, '-x']
- cliapp.runcmd(ssh_argv, tar_argv)
- self.verbose('Retrieved workspace to {}'.format(dirname))
-
- def cmd_put_workspace(self, args):
- dirname = args[0]
-
- self.create_workspace()
-
- tar_argv = ['tar', '-C', dirname, '-c', '.']
- ip = self.worker_ip()
- ssh_argv = [
- 'ssh', self.ssh_target(), '--',
- 'ssh', 'worker@{}'.format(ip), '--',
- 'tar', '-C/workspace', '-x']
- cliapp.runcmd(tar_argv, ssh_argv)
- self.verbose('Unpacked workspace to /workspace')
-
- def create_workspace(self):
- o = self.on_worker(
- 'manager',
- ['sudo', 'install', '-d', '-o', 'worker', '-g', 'worker',
- '/workspace'])
- if o is not None:
- o = self.on_worker(
- 'manager',
- ['sudo', 'install', '-d', '-o', 'worker', '-g', 'worker',
- '/workspace/src'])
- if o is None:
- self.verbose('Could not create workspace')
- sys.exit(1)
-
- def on_manager(
- self, argv, stdin=PIPE, stdout=PIPE, stderr=STDOUT,
- remote_cwd=None):
- tgt = self.ssh_target()
- try:
- return cliapp.ssh_runcmd(
- tgt, argv, stdin=stdin, stdout=stdout, stderr=stderr,
- remote_cwd=remote_cwd)
- except cliapp.AppException:
- return None
-
- def worker_ip(self):
- filename = '/var/lib/libvirt/dnsmasq/virbr0.status'
- o = self.on_manager(['cat', filename], stderr=None)
- if not o:
- self.error('Failed to get guest IP addresses from manager')
- return None
- logging.debug('virbr0.status from manager: {!r}'.format(o))
- o = [x for x in json.loads(o) if x['hostname'] == 'worker']
- if not o:
- self.error('Failed to run find IP for worker VM')
- return None
- o.sort(key=lambda e: e['expiry-time'])
- return o[-1]['ip-address']
-
- def on_worker(
- self, user, argv, stdin=PIPE, stdout=PIPE, stderr=STDOUT,
- remote_cwd=None):
- ip = self.worker_ip()
- if ip is None:
- return None
-
- argv_base = ['ssh', '{}@{}'.format(user, ip), '--']
- if remote_cwd is not None:
- argv_base.extend(list(map(cliapp.shell_quote, [
- 'sh', '-c', 'cd "$1" && shift && exec "$@"',
- '-',
- remote_cwd])))
-
- argv = argv_base + [cliapp.shell_quote(x) for x in argv]
- return self.on_manager(
- argv, stdin=stdin, stdout=stdout, stderr=stderr)
-
- def ssh_target(self):
- return '{}@{}'.format(
- self.settings['manager-user'],
- self.settings['manager-address'])
-
def error(self, msg):
sys.stderr.write('ERROR: {}\n'.format(msg))
logging.error('ERROR: {}'.format(msg))
@@ -316,7 +137,6 @@ class ContractorApplication(cliapp.Application):
print(msg)
-
class ExecResult:
def __init__(self, stdout, stderr, exit_code):
@@ -580,8 +400,6 @@ class Manager:
logging.error('Could not mount device')
return er
-
-
class Worker: