diff --git a/cloudcontrol/node/hypervisor/__init__.py b/cloudcontrol/node/hypervisor/__init__.py index 75bdee7c4228e89490d1fb4b35f21702c5fc1432..e4c137a61889e900318e78d2d55b36ed4885ff5e 100644 --- a/cloudcontrol/node/hypervisor/__init__.py +++ b/cloudcontrol/node/hypervisor/__init__.py @@ -144,6 +144,7 @@ class Handler(HostHandler): self.main.reset_handler('vm_open_console', self.vm_open_console) self.main.reset_handler('vm_disable_virtio_cache', self.vm_disable_virtio_cache) + self.main.reset_handler('vm_set_autostart', self.vm_set_autostart) # if everything went fine, unregister the timer self.timer.stop() @@ -208,6 +209,7 @@ class Handler(HostHandler): self.main.remove_handler('drbd_shutdown') self.main.remove_handler('vm_open_console') self.main.remove_handler('vm_disable_virtio_cache') + self.main.remove_handler('vm_set_autostart') # launch connection timer self.timer.start() @@ -546,6 +548,17 @@ class Handler(HostHandler): logger.exception('Cannot update XML file for domain %s', name) raise + def vm_set_autostart(self, name, autostart=True): + """Set autostart on VM. + + :param name: VM name + :param bool autostart: autostart value to set + """ + vm = self.hypervisor.domains[name] + vm.lv_dom.setAutostart(int(bool(autostart))) + # update autostart value now instead of 10 seconds lag + vm.tags['autostart'].update_value() + def vol_create(self, pool, name, size): logger.debug('Volume create %s, pool %s, size %s', name, pool, size) try: