#!/usr/bin/python3 from subprocess import check_output, run from time import sleep from datetime import datetime def get_time(): ts1 = str(datetime.now()).split('.')[0] return ts1 def call_vm_startup(vmid): run(['/usr/sbin/qm', 'start', vmid]) def call_lxc_startup(lxc): run(['/usr/bin/lxc-start', lxc]) def monitor_status(vmid): vmstatus = 'running' while vmstatus == 'running': sleep(5) vmstatus = check_output(['/usr/sbin/qm', 'status', vmid]) vmstatus = vmstatus.decode().split(': ')[1].rstrip() return 'Done' def lxc_status(lxc): vmstatus = 'running' while vmstatus.lower() == 'running': sleep(5) vmoutput = check_output(['lxc-info', lxc]) if b'RUNNING' not in vmoutput: vmstatus = 'stopped' print(vmstatus) return 'Done' def main(): timestamp = get_time() print(f'Start time: {timestamp}') vms = ['115', '109', '108', '107', '101'] for vm in vms: try: print(f'Starting {vm}') call_vm_startup(vm) vresult = monitor_status(vm) print(f'{vresult}') except Exception: print(f'{vm} currently not running') lxcs = [ '121', '116', '114', '113', '111', '106', '103', '104', '105', '112', '100', '117', '118', '119', '110' ] for lxc in lxcs: try: print(f'Starting {lxc}') call_lxc_startup(lxc) vresult = lxc_status(lxc) print(f'{vresult}') except Exception: print(f'{lxc} currently not running') timestamp = get_time() print(f'End time: {timestamp}') if __name__ == '__main__': main()