Exemplo n.º 1
0
    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
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
    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()
Exemplo n.º 6
0
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"))