mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-24 15:36:27 +00:00
40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
from bootstrapvz.common.tools import log_check_call
|
|
|
|
|
|
class BuildServer(object):
|
|
|
|
def __init__(self, settings):
|
|
self.settings = settings
|
|
self.build_settings = settings.get('build_settings', {})
|
|
self.can_bootstrap = settings['can_bootstrap']
|
|
self.release = settings.get('release', None)
|
|
|
|
|
|
class LocalBuildServer(BuildServer):
|
|
pass
|
|
|
|
|
|
class RemoteBuildServer(BuildServer):
|
|
|
|
def __init__(self, settings):
|
|
self.address = settings['address']
|
|
self.port = settings['port']
|
|
self.username = settings['username']
|
|
self.password = settings['password']
|
|
self.root_password = settings['root_password']
|
|
self.keyfile = settings['keyfile']
|
|
self.server_bin = settings['server_bin']
|
|
super(RemoteBuildServer, self).__init__(settings)
|
|
|
|
def download(self, src, dst):
|
|
src_arg = '{user}@{host}:{path}'.format(self.username, self.address, src)
|
|
log_check_call(['scp', '-i', self.keyfile, '-P', self.port,
|
|
src_arg, dst])
|
|
|
|
def delete(self, path):
|
|
ssh_cmd = ['ssh', '-i', self.settings['keyfile'],
|
|
'-p', str(self.settings['port']),
|
|
self.username + '@' + self.address,
|
|
'--',
|
|
'sudo', 'rm', path]
|
|
log_check_call(ssh_cmd)
|