From 43cd3c539dc3224c8f71d58bc7484c8eb95a75a8 Mon Sep 17 00:00:00 2001 From: vanzhiganov Date: Thu, 19 May 2016 22:44:19 +0000 Subject: [PATCH] update qemu operations --- SWSCloudNode/qemu/__init__.py | 4 +++- cloud_node_agent.py | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/SWSCloudNode/qemu/__init__.py b/SWSCloudNode/qemu/__init__.py index 2a124d0..d32627d 100644 --- a/SWSCloudNode/qemu/__init__.py +++ b/SWSCloudNode/qemu/__init__.py @@ -220,7 +220,9 @@ class QEMU: "--dns=%s" % dns1, "--dns=%s" % dns2, ] - subprocess.Popen(c, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + print ' '.join(c) + print ';;;' + print subprocess.call(' '.join(c), shell=True) # os.popen("cd /var/lib/qemu/images/%(hostname)s;/usr/bin/vmbuilder kvm %(os_name)s --suite=%(os_suite)s --flavour=virtual --arch=amd64 --mirror=%(mirror)s -o --qemu=qemu:///system --ip=%(ip)s --gw=%(gw)s --part=/var/lib/qemu/images/%(hostname)s/partition --templates=templates --user=administrator --name=administrator --pass=%(password)s --addpkg=linux-image-generic --addpkg=vim-nox --addpkg=nano --addpkg=unattended-upgrades --addpkg=acpid --firstboot=/var/lib/qemu/images/%(hostname)s/boot.sh --mem=%(memory)s --cpus=%(cores)s --hostname=%(hostname)s --bridge=br0" % values) return True diff --git a/cloud_node_agent.py b/cloud_node_agent.py index cc55ac6..3283a05 100644 --- a/cloud_node_agent.py +++ b/cloud_node_agent.py @@ -141,16 +141,30 @@ while True: p['os_name'], p['os_suite'], settings.get('node', 'interface'), p['ssh_key'] ) except Exception as e: + # TODO: back to origin task status logging.warning(e) pass - nodeclient.task_status_update(task['id'], 2) + finally: + nodeclient.task_status_update(task['id'], 2) if task.get('task') == 'vm_start': + nodeclient.task_status_update(task['id'], 1) + qemu.QEMU().start(task['plain']['hostname']) + nodeclient.task_status_update(task['id'], 2) pass if task.get('task') == 'vm_restart': + nodeclient.task_status_update(task['id'], 1) + qemu.QEMU().restart(task['plain']['hostname']) + nodeclient.task_status_update(task['id'], 2) pass if task.get('task') == 'vm_stop': + nodeclient.task_status_update(task['id'], 1) + qemu.QEMU().stop(task['plain']['hostname']) + nodeclient.task_status_update(task['id'], 2) pass if task.get('task') == 'vm_delete': + nodeclient.task_status_update(task['id'], 1) + qemu.QEMU().delete(task['plain']['hostname']) + nodeclient.task_status_update(task['id'], 2) pass logging.debug("Application ended")