From 7e73b40b204496ff41a12ac299921e8ccbc713a5 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 24 Sep 2012 14:06:29 +0100 Subject: [PATCH] This seems to be a more stable snapshot creation --- fdroidserver/build.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/fdroidserver/build.py b/fdroidserver/build.py index f18b308c..d0126e0b 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -83,10 +83,30 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, sdk_path): print "Starting new build server" if subprocess.call(['vagrant', 'up'], cwd='builder') != 0: raise BuildException("Failed to start build server") + + # Open SSH connection to make sure it's working and ready... + print "Connecting to virtual machine..." + subprocess.call('vagrant ssh-config >sshconfig', + cwd='builder', shell=True) + vagranthost = 'default' # Host in ssh config file + sshconfig = ssh.SSHConfig() + sshf = open('builder/sshconfig', 'r') + sshconfig.parse(sshf) + sshf.close() + sshconfig = sshconfig.lookup(vagranthost) + sshs = ssh.SSHClient() + sshs.set_missing_host_key_policy(ssh.AutoAddPolicy()) + sshs.connect(sshconfig['hostname'], username=sshconfig['user'], + port=int(sshconfig['port']), timeout=60, look_for_keys=False, + key_filename=sshconfig['identityfile']) + print "Saving clean state of new build server" if subprocess.call(['vagrant', 'snap', 'take', '-n', 'fdroidclean'], cwd='builder') != 0: raise BuildException("Failed to take snapshot") + print "Restarting new build server" + if subprocess.call(['vagrant', 'up'], cwd='builder') != 0: + raise BuildException("Failed to start build server") # Make sure it worked... p = subprocess.Popen(['vagrant', 'snap', 'list'], cwd='builder', stdout=subprocess.PIPE) -- 2.30.2