chiark / gitweb /
use overhauled mv destroy code in build.py
authorMichael Pöhn <michael.poehn@fsfe.org>
Sun, 26 Mar 2017 00:51:28 +0000 (01:51 +0100)
committerHans-Christoph Steiner <hans@eds.org>
Tue, 23 May 2017 18:06:06 +0000 (20:06 +0200)
fdroidserver/build.py
makebuildserver

index de8c33770cc52bca109b1df001d45aaf21603007..63923584e0f9f1c40f5df5e2a0a3ad412623da44 100644 (file)
@@ -37,6 +37,7 @@ from . import common
 from . import net
 from . import metadata
 from . import scanner
+from . import vmtools
 from .common import FDroidPopen, SdkToolsPopen
 from .exception import FDroidException, BuildException, VCSException
 
@@ -289,9 +290,11 @@ def vm_get_clean_builder(reset=False):
     # If we can't use the existing machine for any reason, make a
     # new one from scratch.
     if not vm_ok:
-        vm_destroy_builder(provider)
-
-        os.mkdir('builder')
+        if os.path.isdir('builder'):
+            vm = vmtools.get_build_vm('builder')
+            vm.destroy()
+        else:
+            os.mkdir('builder')
 
         p = subprocess.Popen(['vagrant', '--version'],
                              universal_newlines=True,
@@ -348,24 +351,6 @@ def vm_suspend_builder():
     subprocess.call(['vagrant', 'suspend'], cwd='builder')
 
 
-def vm_destroy_builder(provider):
-    """Savely destroy the builder vm.
-
-    """
-    logging.info("Removing broken/incomplete/unwanted build server")
-    if os.path.exists(os.path.join('builder', 'Vagrantfile')):
-        vagrant(['destroy', '-f'], cwd='builder')
-    if os.path.isdir('builder'):
-        shutil.rmtree('builder')
-    # get rid of vm and related disk images
-    FDroidPopen(('virsh', '-c', 'qemu:///system', 'destroy', 'builder_default'))
-    logging.info("...waiting a sec...")
-    time.sleep(10)
-    FDroidPopen(('virsh', '-c', 'qemu:///system', 'undefine', 'builder_default', '--nvram', '--managed-save', '--remove-all-storage', '--snapshots-metadata'))
-    logging.info("...waiting a sec...")
-    time.sleep(10)
-
-
 # Note that 'force' here also implies test mode.
 def build_server(app, build, vcs, build_dir, output_dir, log_dir, force):
     """Do a build on the builder vm.
index f8b892e6ab42cee1497aea7e90968abcb112635f..703cbdd6a6c5b168510cc58919a6075595455144 100755 (executable)
@@ -14,7 +14,6 @@ import hashlib
 import yaml
 import math
 import json
-import time
 import logging
 from clint.textui import progress
 from optparse import OptionParser