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)