diff options
author | Lars Wirzenius <liw@liw.fi> | 2020-04-09 16:09:02 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2020-04-09 16:09:02 +0300 |
commit | 2b2d87ac8c2acba6519798b437be28823911af9b (patch) | |
tree | c31c7b0cc0c7ad80172f625ec7681b70cd9374ac /contractor | |
parent | 2169f3319219ce1c7f6225d0043c2af1968def6d (diff) | |
download | ick-contractor-2b2d87ac8c2acba6519798b437be28823911af9b.tar.gz |
Refactor: move application class to top
Diffstat (limited to 'contractor')
-rwxr-xr-x | contractor | 76 |
1 files changed, 38 insertions, 38 deletions
@@ -34,44 +34,6 @@ WORKER_UID = 1000 WORKER_GID = 1000 - -class ExecResult: - - def __init__(self, stdout, stderr, exit_code): - self.stdout = stdout - self.stderr = stderr - self.exit_code = exit_code - logging.debug('RESULT: {} {!r} {!r}'.format(stdout, stderr, exit_code)) - - def failed(self): - return self.exit_code != 0 - - -def ssh(target, argv, quiet=False): - argv = ['ssh', '--', target] + [shlex.quote(arg) for arg in argv] - logging.info('SSH: {!r}'.format(argv)) - stdout = None - if quiet: - stdout = PIPE - logging.debug( - 'EXEC: {!r} stdout={!r} stderr={!r}'.format( - argv, stdout, STDOUT)) - p = subprocess.Popen(argv, stderr=STDOUT, stdout=stdout) - out, err = p.communicate() - return ExecResult(out, err, p.returncode) - - -def rsync(filename, target): - argv = [ - 'rsync', '-aHSs', '--delete', '--exclude=lost+found', '--', - filename, target, - ] - logging.info('RSYNC: {!r}'.format(argv)) - p = subprocess.Popen(argv, stderr=STDOUT, stdout=PIPE) - out, err = p.communicate() - return ExecResult(out, err, p.returncode) - - class ContractorApplication(cliapp.Application): def add_settings(self): @@ -354,6 +316,44 @@ class ContractorApplication(cliapp.Application): print(msg) + +class ExecResult: + + def __init__(self, stdout, stderr, exit_code): + self.stdout = stdout + self.stderr = stderr + self.exit_code = exit_code + logging.debug('RESULT: {} {!r} {!r}'.format(stdout, stderr, exit_code)) + + def failed(self): + return self.exit_code != 0 + + +def ssh(target, argv, quiet=False): + argv = ['ssh', '--', target] + [shlex.quote(arg) for arg in argv] + logging.info('SSH: {!r}'.format(argv)) + stdout = None + if quiet: + stdout = PIPE + logging.debug( + 'EXEC: {!r} stdout={!r} stderr={!r}'.format( + argv, stdout, STDOUT)) + p = subprocess.Popen(argv, stderr=STDOUT, stdout=stdout) + out, err = p.communicate() + return ExecResult(out, err, p.returncode) + + +def rsync(filename, target): + argv = [ + 'rsync', '-aHSs', '--delete', '--exclude=lost+found', '--', + filename, target, + ] + logging.info('RSYNC: {!r}'.format(argv)) + p = subprocess.Popen(argv, stderr=STDOUT, stdout=PIPE) + out, err = p.communicate() + return ExecResult(out, err, p.returncode) + + class BuildSpec: def __init__(self, yaml_text): |