From fb9cb22eeef1a8044a8fc941f81a2cda83732f24 Mon Sep 17 00:00:00 2001 From: Antoine Millet Date: Wed, 17 Jun 2015 12:23:32 +0200 Subject: [PATCH] Implemented VM reset --- cloudcontrol/node/hypervisor/__init__.py | 13 +++++++++++++ cloudcontrol/node/hypervisor/domains/__init__.py | 3 +++ 2 files changed, 16 insertions(+) diff --git a/cloudcontrol/node/hypervisor/__init__.py b/cloudcontrol/node/hypervisor/__init__.py index 1a7422d..0d08816 100644 --- a/cloudcontrol/node/hypervisor/__init__.py +++ b/cloudcontrol/node/hypervisor/__init__.py @@ -342,6 +342,19 @@ class Handler(HostHandler): logger.error(msg) raise UndefinedDomain(msg) + @libvirt_handler + def vm_reset(self, name): + logger.debug('VM reset %s', name) + try: + self.hypervisor.domains[name].reset() + except libvirt.libvirtError: + logger.exception('Error while resetting VM %s', name) + raise + except KeyError: + msg = 'Cannot reset VM %s because it is not defined' % name + logger.error(msg) + raise UndefinedDomain(msg) + @libvirt_handler def vm_change_title(self, name, new_title): logger.debug('VM edit title %s', name) diff --git a/cloudcontrol/node/hypervisor/domains/__init__.py b/cloudcontrol/node/hypervisor/domains/__init__.py index 9f814d9..70fda4d 100644 --- a/cloudcontrol/node/hypervisor/domains/__init__.py +++ b/cloudcontrol/node/hypervisor/domains/__init__.py @@ -242,6 +242,9 @@ class VirtualMachine(object): def undefine(self): self.lv_dom.undefine() + def reset(self): + self.lv_dom.reset(0) + @property def disks(self): return list(self.iter_disks()) -- GitLab