def gagent_create(self, params, vm, *args): if self.gagent: return self.gagent error_context.context("Create a QemuAgent object.", logging.info) if not (args and isinstance(args, tuple) and len(args) == 2): raise error.TestError("Got invalid arguments for guest agent") gagent_serial_type = args[0] gagent_name = args[1] if gagent_serial_type == guest_agent.QemuAgent.SERIAL_TYPE_VIRTIO: filename = vm.get_virtio_port_filename(gagent_name) elif gagent_serial_type == guest_agent.QemuAgent.SERIAL_TYPE_ISA: filename = vm.get_serial_console_filename(gagent_name) else: raise guest_agent.VAgentNotSupportedError("Not supported serial" " type") gagent = guest_agent.QemuAgent(vm, gagent_name, gagent_serial_type, filename, get_supported_cmds=True) self.gagent = gagent return self.gagent
def create_guest_agent_session(): """ Create guest agent session. """ guest_agent_serial_type = params["guest_agent_serial_type"] guest_agent_name = params["guest_agent_name"] filename = vm.get_serial_console_filename(guest_agent_name) guest_agent_params = params.object_params(guest_agent_name) guest_agent_params["monitor_filename"] = filename return guest_agent.QemuAgent(vm, guest_agent_name, guest_agent_serial_type, guest_agent_params, get_supported_cmds=True)
def pre_test(self): super(BlockdevSnapshotGuestAgentTest, self).pre_test() params = self.params.object_params(self.params['agent_name']) params["monitor_filename"] = self.main_vm.get_serial_console_filename( self.params['agent_name']) self.guest_agent = guest_agent.QemuAgent( self.main_vm, self.params['agent_name'], self.params['agent_serial_type'], params ) session = self.main_vm.wait_for_login() try: if session.cmd_status(self.params['enable_nonsecurity_files_cmd']) != 0: session.cmd_status(self.params['enable_permissive_cmd']) finally: session.close()
def gagent_create(self, params, vm, *args): if self.gagent: return self.gagent error.context("Create a QemuAgent object.", logging.info) if not (args and isinstance(args, tuple) and len(args) == 2): raise error.TestError("Got invalid arguments for guest agent") gagent_serial_type = args[0] gagent_name = args[1] gagent = guest_agent.QemuAgent(vm, gagent_name, gagent_serial_type, get_supported_cmds=True) self.gagent = gagent return self.gagent
def prepare_test(self): super(BlockdevIncbkFSFreezeTest, self).prepare_test() params = self.params.object_params(self.params['agent_name']) params["monitor_filename"] = self.main_vm.get_serial_console_filename( self.params['agent_name']) self.guest_agent = guest_agent.QemuAgent( self.main_vm, self.params['agent_name'], self.params['agent_serial_type'], params) # bz1747960, enable virt_qemu_ga_read_nonsecurity_files before freeze, # if the fix is not backported yet, put SELinux in permissive mode # no need to restore the setting for a VM reboot can restore it s = self.main_vm.wait_for_login() try: if s.cmd_status(self.params['enable_nonsecurity_files_cmd']) != 0: s.cmd_status(self.params['enable_permissive_cmd']) finally: s.close()
def run_qemu_guest_agent(test, params, env): """ Test qemu guest agent, this case will: 1) Start VM with virtio serial port. 2) Install qemu-guest-agent package in guest. 3) Create QemuAgent object and test if virt agent works. @param test: kvm test object @param params: Dictionary with the test parameters @param env: Dictionary with test environmen. """ vm = env.get_vm(params["main_vm"]) vm.verify_alive() session = vm.wait_for_login(timeout=int(params.get("login_timeout", 360))) error.context("Try to install 'qemu-guest-agent' package.", logging.info) gagent_install_cmd = params.get("gagent_install_cmd") gagent_start_cmd = params.get("gagent_start_cmd") if gagent_install_cmd and bool(session.cmd_status(gagent_install_cmd)): session.close() raise error.TestError("Could not install qemu-guest-agent package") if gagent_start_cmd and bool(session.cmd_status(gagent_start_cmd)): session.close() raise error.TestError("Could not start qemu-guest-agent in vm '%s'", vm.name) session.close() error.context("Create a QemuAgent object and try to connect it to guest.", logging.info) serial_type = params.get("serial_type", "virtio") gagent_name = params.get("gagent_name", "org.qemu.guest_agent.0") gagent = guest_agent.QemuAgent(vm, gagent_name, serial_type, get_supported_cmds=True) error.context("Check if guest agent work.", logging.info) gagent.verify_responsive() logging.info(gagent.cmd("guest-info"))