def __init__(self, test, params, env): self.vm = None self.test = test self.env = env self.params = params self.name = params.get('vms') self.target = params.get('target') if self.name is None: logging.error("vm name not exist") # libvirt is a default target if self.target == "libvirt" or self.target is None: self.vm = lvirt.VM(self.name, self.params, self.test.bindir, self.env.get("address_cache")) elif self.target == "ovirt": self.vm = ovirt.VMManager(self.params, self.test.bindir, self.env.get("address_cache")) else: raise ValueError("Doesn't support %s target now" % self.target) if self.vm.is_alive(): self.vm.shutdown() self.vm.start() else: self.vm.start()
def preprocess_vm(test, params, env, name): """ Preprocess a single VM object according to the instructions in params. Start the VM if requested and get a screendump. @param test: An Autotest test object. @param params: A dict containing VM preprocessing parameters. @param env: The environment (a dict-like object). @param name: The name of the VM object. """ vm = env.get_vm(name) vm_type = params.get('vm_type') target = params.get('target') if not vm: if vm_type == 'kvm': vm = kvm_vm.VM(name, params, test.bindir, env.get("address_cache")) if vm_type == 'libvirt': vm = libvirt_vm.VM(name, params, test.bindir, env.get("address_cache")) if vm_type == 'v2v': if target == 'libvirt' or target is None: vm = libvirt_vm.VM(name, params, test.bindir, env.get("address_cache")) if target == 'ovirt': vm = ovirt.VMManager(name, params, test.bindir, env.get("address_cache")) env.register_vm(name, vm) remove_vm = False if params.get("force_remove_vm") == "yes": remove_vm = True if remove_vm: vm.remove() start_vm = False if params.get("restart_vm") == "yes": start_vm = True elif params.get("migration_mode"): start_vm = True elif params.get("start_vm") == "yes": # need to deal with libvirt VM differently than qemu if vm_type == 'libvirt' or vm_type == 'v2v': if not vm.is_alive(): start_vm = True else: if not vm.is_alive(): start_vm = True if vm.needs_restart(name=name, params=params, basedir=test.bindir): start_vm = True if start_vm: if vm_type == "libvirt" and params.get("type") != "unattended_install": vm.params = params vm.start() elif vm_type == "v2v": vm.params = params vm.start() else: # Start the VM (or restart it if it's already up) vm.create(name, params, test.bindir, migration_mode=params.get("migration_mode"), migration_fd=params.get("migration_fd")) if params.get("paused_after_start_vm") == "yes": if vm.state() != "paused": vm.pause() else: # Don't start the VM, just update its params vm.params = params
def preprocess_vm(test, params, env, name): """ Preprocess a single VM object according to the instructions in params. Start the VM if requested and get a screendump. @param test: An Autotest test object. @param params: A dict containing VM preprocessing parameters. @param env: The environment (a dict-like object). @param name: The name of the VM object. """ logging.debug("Preprocessing VM '%s'", name) vm = env.get_vm(name) vm_type = params.get('vm_type') if not vm: logging.debug("VM object for '%s' does not exist, creating it", name) if vm_type == 'kvm': vm = kvm_vm.VM(name, params, test.bindir, env.get("address_cache")) if vm_type == 'libvirt': vm = libvirt_vm.VM(name, params, test.bindir, env.get("address_cache")) env.register_vm(name, vm) remove_vm = False if params.get("force_remove_vm") == "yes": logging.debug("'force_remove_vm' specified; removing VM...") remove_vm = True if remove_vm: vm.remove() start_vm = False if params.get("restart_vm") == "yes": logging.debug("Param 'restart_vm' specified, (re)starting VM") start_vm = True elif params.get("migration_mode"): logging.debug("Param 'migration_mode' specified, starting VM in " "incoming migration mode") start_vm = True elif params.get("start_vm") == "yes": # need to deal with libvirt VM differently than qemu if vm_type == 'libvirt': if not vm.is_alive(): logging.debug("VM is not alive; starting it...") start_vm = True else: if not vm.is_alive(): logging.debug("VM is not alive, starting it") start_vm = True if vm.needs_restart(name=name, params=params, basedir=test.bindir): logging.debug("Current VM specs differ from requested one; " "restarting it") start_vm = True if start_vm: if vm_type == "libvirt" and params.get("type") != "unattended_install": vm.params = params vm.start() else: # Start the VM (or restart it if it's already up) vm.create(name, params, test.bindir, migration_mode=params.get("migration_mode"), migration_fd=params.get("migration_fd")) else: # Don't start the VM, just update its params vm.params = params