Commit b9ff8338 authored by Antoine Millet's avatar Antoine Millet
Browse files

Implemented VM cycle

parent fb9cb22e
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
# along with CloudControl.  If not, see <http://www.gnu.org/licenses/>.


import time
import logging
import socket
import json
@@ -355,6 +356,21 @@ class Handler(HostHandler):
            logger.error(msg)
            raise UndefinedDomain(msg)

    @libvirt_handler
    def vm_cycle(self, name):
        logger.debug('VM cycle %s', name)
        try:
            self.hypervisor.domains[name].destroy()
            time.sleep(1)
            self.hypervisor.domains[name].start()
        except libvirt.libvirtError:
            logger.exception('Error while cycle VM %s', name)
            raise
        except KeyError:
            msg = 'Cannot cycle 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)