1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-09-18 19:20:08 +02:00

build server use up instead or resume; logging

This commit is contained in:
Hans-Christoph Steiner 2017-05-22 17:53:12 +02:00
parent c749c68486
commit acf25a3999
2 changed files with 16 additions and 6 deletions

View File

@ -255,10 +255,12 @@ def vm_new_get_clean_builder(serverdir, reset=False):
vm.suspend() vm.suspend()
if reset: if reset:
logging.info('buildserver recreated: taking a clean snapshot')
vm.snapshot_create('fdroidclean') vm.snapshot_create('fdroidclean')
else: else:
logging.info('builserver ok: reverting to clean snapshot')
vm.snapshot_revert('droidclean') vm.snapshot_revert('droidclean')
vm.resume() vm.up()
return get_vagrant_sshinfo() return get_vagrant_sshinfo()

View File

@ -140,17 +140,22 @@ class FDroidBuildVm():
def up(self, provision=True): def up(self, provision=True):
try: try:
self.vgrnt.up(provision=provision) self.vgrnt.up(provision=provision)
logger.info('...waiting a sec...')
time.sleep(10)
except subprocess.CalledProcessError as e: 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): def snapshot_create(self, name):
raise NotImplementedError('not implemented, please use a sub-type instance') raise NotImplementedError('not implemented, please use a sub-type instance')
def suspend(self): def suspend(self):
self.vgrnt.suspend() logger.info('suspending buildserver')
try:
def resume(self): self.vgrnt.suspend()
self.vgrnt.resume() 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): def halt(self):
self.vgrnt.halt(force=True) self.vgrnt.halt(force=True)
@ -163,6 +168,7 @@ class FDroidBuildVm():
* vagrant state informations (eg. `.vagrant` folder) * vagrant state informations (eg. `.vagrant` folder)
* images related to this vm * images related to this vm
""" """
logger.info("destroying vm '%s'", self.srvname)
try: try:
self.vgrnt.destroy() self.vgrnt.destroy()
logger.debug('vagrant destroy completed') 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) logger.info('tired removing \'%s\', file was not present in first place: %s', boxname, e)
def snapshot_create(self, snapshot_name): def snapshot_create(self, snapshot_name):
logger.info("creating snapshot '%s' for vm '%s'", snapshot_name, self.srvname)
try: try:
_check_call(['virsh', '-c', 'qemu:///system', 'snapshot-create-as', self.srvname, snapshot_name]) _check_call(['virsh', '-c', 'qemu:///system', 'snapshot-create-as', self.srvname, snapshot_name])
logger.info('...waiting a sec...') logger.info('...waiting a sec...')
@ -353,6 +360,7 @@ class LibvirtBuildVm(FDroidBuildVm):
return False return False
def snapshot_revert(self, snapshot_name): def snapshot_revert(self, snapshot_name):
logger.info("reverting vm '%s' to snapshot '%s'", self.srvname, snapshot_name)
import libvirt import libvirt
try: try:
dom = self.conn.lookupByName(self.srvname) dom = self.conn.lookupByName(self.srvname)