chiark / gitweb /
build server use up instead or resume; logging
authorHans-Christoph Steiner <hans@eds.org>
Mon, 22 May 2017 15:53:12 +0000 (17:53 +0200)
committerHans-Christoph Steiner <hans@eds.org>
Tue, 23 May 2017 18:06:06 +0000 (20:06 +0200)
fdroidserver/build.py
fdroidserver/vmtools.py

index 4e5be38504c5a59ce2468a7b3285b4f096b3e10c..24a60344aae944b60019c399a4366cea642f679d 100644 (file)
@@ -255,10 +255,12 @@ def vm_new_get_clean_builder(serverdir, reset=False):
     vm.suspend()
 
     if reset:
+        logging.info('buildserver recreated: taking a clean snapshot')
         vm.snapshot_create('fdroidclean')
     else:
+        logging.info('builserver ok: reverting to clean snapshot')
         vm.snapshot_revert('droidclean')
-    vm.resume()
+    vm.up()
 
     return get_vagrant_sshinfo()
 
index c209914c8d9e6fa2b2f6b9c250c92005a9e12703..71e439fda7c9fb72093d664767e128b813ae19cc 100644 (file)
@@ -140,17 +140,22 @@ class FDroidBuildVm():
     def up(self, provision=True):
         try:
             self.vgrnt.up(provision=provision)
+            logger.info('...waiting a sec...')
+            time.sleep(10)
         except subprocess.CalledProcessError as e:
-            logger.info('could not bring vm up: %s', e)
+            raise FDroidBuildVmException("could not bring up vm '%s'" % self.srvname) from e
 
     def snapshot_create(self, name):
         raise NotImplementedError('not implemented, please use a sub-type instance')
 
     def suspend(self):
-        self.vgrnt.suspend()
-
-    def resume(self):
-        self.vgrnt.resume()
+        logger.info('suspending buildserver')
+        try:
+            self.vgrnt.suspend()
+            logger.info('...waiting a sec...')
+            time.sleep(10)
+        except subprocess.CalledProcessError as e:
+            raise FDroidBuildVmException("could not suspend vm '%s'" % self.srvname) from e
 
     def halt(self):
         self.vgrnt.halt(force=True)
@@ -163,6 +168,7 @@ class FDroidBuildVm():
         * vagrant state informations (eg. `.vagrant` folder)
         * images related to this vm
         """
+        logger.info("destroying vm '%s'", self.srvname)
         try:
             self.vgrnt.destroy()
             logger.debug('vagrant destroy completed')
@@ -327,6 +333,7 @@ class LibvirtBuildVm(FDroidBuildVm):
             logger.info('tired removing \'%s\', file was not present in first place: %s', boxname, e)
 
     def snapshot_create(self, snapshot_name):
+        logger.info("creating snapshot '%s' for vm '%s'", snapshot_name, self.srvname)
         try:
             _check_call(['virsh', '-c', 'qemu:///system', 'snapshot-create-as', self.srvname, snapshot_name])
             logger.info('...waiting a sec...')
@@ -353,6 +360,7 @@ class LibvirtBuildVm(FDroidBuildVm):
             return False
 
     def snapshot_revert(self, snapshot_name):
+        logger.info("reverting vm '%s' to snapshot '%s'", self.srvname, snapshot_name)
         import libvirt
         try:
             dom = self.conn.lookupByName(self.srvname)