1. 18 2月, 2015 1 次提交
  2. 17 2月, 2015 2 次提交
    • S
      guest agent: guest-file-open: refactoring · 85b6f6f5
      Simon Zolin 提交于
      Moved the code that sets non-blocking flag on fd into a separate function.
      Signed-off-by: NSimon Zolin <szolin@parallels.com>
      Reviewed-by: NRoman Kagan <rkagan@parallels.com>
      Signed-off-by: NDenis V. Lunev <den@openvz.org>
      CC: Michael Roth <mdroth@linux.vnet.ibm.com>
      CC: Eric Blake <eblake@redhat.com>
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      85b6f6f5
    • D
      qga: add guest-set-user-password command · 215a2771
      Daniel P. Berrange 提交于
      Add a new 'guest-set-user-password' command for changing the password
      of guest OS user accounts. This command is needed to enable OpenStack
      to support its API for changing the admin password of guests running
      on KVM/QEMU. It is not practical to provide a command at the QEMU
      level explicitly targetting administrator account password change
      only, since different guest OS have different names for the admin
      account. While UNIX systems use 'root', Windows systems typically
      use 'Administrator' and even that can be renamed. Higher level apps
      like OpenStack have the ability to figure out the correct admin
      account name since they have info that QEMU/libvirt do not.
      
      The command accepts either the clear text password string, encoded
      in base64 to make it 8-bit safe in JSON:
      
      $ echo -n "123456" | base64
      MTIzNDU2
      $ virsh -c qemu:///system  qemu-agent-command f21x86_64 \
         '{ "execute": "guest-set-user-password",
            "arguments": { "crypted": false,
                           "username": "root",
                           "password": "MTIzNDU2" } }'
        {"return":{}}
      
      Or a password that has already been run though a crypt(3) like
      algorithm appropriate for the guest, again then base64 encoded:
      
      $ echo -n '$6$n01A2Tau$e...snip...DfMOP7of9AJ1I8q0' | base64
      JDYkb...snip...YT2Ey
      $ virsh -c qemu:///system  qemu-agent-command f21x86_64 \
         '{ "execute": "guest-set-user-password",
            "arguments": { "crypted": true,
                           "username": "root",
                           "password": "JDYkb...snip...YT2Ey" } }'
      
      NB windows support is desirable, but not implemented in this
      patch.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      215a2771
  3. 22 10月, 2014 1 次提交
  4. 08 8月, 2014 3 次提交
    • T
      qga: Disable unsupported commands by default · 1281c08a
      Tomoki Sekiyama 提交于
      Currently management softwares cannot know whether a qemu-ga command is
      supported or not on the running platform until they actually execute it.
      This patch disables unsupported commands at launch time of qemu-ga, so that
      management softwares can check whether they are supported from 'enabled'
      property of the result from 'guest-info' command.
      Signed-off-by: NTomoki Sekiyama <tomoki.sekiyama@hds.com>
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      1281c08a
    • T
      qga: Add guest-get-fsinfo command · 46d4c572
      Tomoki Sekiyama 提交于
      Add command to get mounted filesystems information in the guest.
      The returned value contains a list of mountpoint paths and
      corresponding disks info such as disk bus type, drive address,
      and the disk controllers' PCI addresses, so that management layer
      such as libvirt can resolve the disk backends.
      
      For example, when `lsblk' result is:
      
          NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
          sdb              8:16   0    1G  0 disk
          `-sdb1           8:17   0 1024M  0 part
            `-vg0-lv0    253:1    0  1.4G  0 lvm  /mnt/test
          sdc              8:32   0    1G  0 disk
          `-sdc1           8:33   0  512M  0 part
            `-vg0-lv0    253:1    0  1.4G  0 lvm  /mnt/test
          vda            252:0    0   25G  0 disk
          `-vda1         252:1    0   25G  0 part /
      
      where sdb is a SCSI disk with PCI controller 0000:00:0a.0 and ID=1,
            sdc is an IDE disk with PCI controller 0000:00:01.1, and
            vda is a virtio-blk disk with PCI device 0000:00:06.0,
      
      guest-get-fsinfo command will return the following result:
      
          {"return":
           [{"name":"dm-1",
             "mountpoint":"/mnt/test",
             "disk":[
              {"bus-type":"scsi","bus":0,"unit":1,"target":0,
               "pci-controller":{"bus":0,"slot":10,"domain":0,"function":0}},
              {"bus-type":"ide","bus":0,"unit":0,"target":0,
               "pci-controller":{"bus":0,"slot":1,"domain":0,"function":1}}],
             "type":"xfs"},
            {"name":"vda1", "mountpoint":"/",
             "disk":[
              {"bus-type":"virtio","bus":0,"unit":0,"target":0,
               "pci-controller":{"bus":0,"slot":6,"domain":0,"function":0}}],
             "type":"ext4"}]}
      
      In Linux guest, the disk information is resolved from sysfs. So far,
      it only supports virtio-blk, virtio-scsi, IDE, SATA, SCSI disks on x86
      hosts, and "disk" parameter may be empty for unsupported disk types.
      Signed-off-by: NTomoki Sekiyama <tomoki.sekiyama@hds.com>
      
      *updated schema to report 2.2 as initial supported version
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      46d4c572
    • T
      qga: Add guest-fsfreeze-freeze-list command · e99bce20
      Tomoki Sekiyama 提交于
      If an array of mount point paths is specified as 'mountpoints' argument
      of guest-fsfreeze-freeze-list, qemu-ga will only freeze the file systems
      mounted on specified paths in Linux guests. Otherwise, it works as the
      same way as guest-fsfreeze-freeze.
      This would be useful when the host wants to create partial disk snapshots.
      Signed-off-by: NTomoki Sekiyama <tomoki.sekiyama@hds.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      
      *updated schema to report 2.2 as initial supported version
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      e99bce20
  5. 18 7月, 2014 1 次提交
  6. 09 5月, 2014 3 次提交
  7. 18 4月, 2014 1 次提交
  8. 24 2月, 2014 2 次提交
  9. 18 2月, 2014 1 次提交
  10. 22 11月, 2013 1 次提交
    • S
      qga: Fix compiler warnings (missing format attribute, wrong format strings) · d607a523
      Stefan Weil 提交于
      gcc 4.8.2 reports this warning when extra warnings are enabled (-Wextra):
      
        CC    qga/commands.o
      qga/commands.c: In function ‘slog’:
      qga/commands.c:28:5: error:
       function might be possible candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format]
           g_logv("syslog", G_LOG_LEVEL_INFO, fmt, ap);
           ^
      
      gcc 4.8.2 reports this warning when slog is declared with the
      gnu_printf format attribute:
      
      qga/commands-posix.c: In function ‘qmp_guest_file_open’:
      qga/commands-posix.c:404:5: warning:
       format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int64_t’ [-Wformat=]
           slog("guest-file-open, handle: %d", handle);
           ^
      
      On 32 bit hosts there are three more warnings which are also fixed here.
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      d607a523
  11. 16 11月, 2013 1 次提交
    • W
      qga: Fix shutdown command of guest agent to work with SysV · 485e741c
      whitearchey 提交于
      For now guest agent uses following command to shutdown system:
      shutdown -P +0 "blabla"
      but this syntax works only with shutdown command from systemd or upstart,
      because SysV shutdown requires -h switch.
      
      Following patch changes the command so it works with systemd, upstart and SysV
      
      With upstart/systemd qga use one of thee commands, depending on 'mode' parameter:
        shutdown -P +0 "..."
        shutdown -H +0 "..."
        shutdown -r +0 "..."
      SysV equivalents for these are:
        shutdown -h -P +0 "..."
        shutdown -h -H +0 "..."
        shutdown -h -r +0 "..."
      and these retain their meaning with upstart/systemd.
      
      According to FreeBSD manpages, shutdown does not accept -P and -H options. Commands should be:
        shutdown -p +0 "..."
        shutdown -h +0 "..."
        shutdown -r +0 "..."
      
      shutdown in Solaris does not accept any of -hHpPr and does not accept time in "+0" format
      Signed-off-by: NMichael Avdienko <whitearchey@gmail.com>
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      485e741c
  12. 11 10月, 2013 1 次提交
  13. 13 5月, 2013 2 次提交
  14. 07 5月, 2013 1 次提交
    • L
      qga: set umask 0077 when daemonizing (CVE-2013-2007) · c689b4f1
      Laszlo Ersek 提交于
      The qemu guest agent creates a bunch of files with insecure permissions
      when started in daemon mode. For example:
      
        -rw-rw-rw- 1 root root /var/log/qemu-ga.log
        -rw-rw-rw- 1 root root /var/run/qga.state
        -rw-rw-rw- 1 root root /var/log/qga-fsfreeze-hook.log
      
      In addition, at least all files created with the "guest-file-open" QMP
      command, and all files created with shell output redirection (or
      otherwise) by utilities invoked by the fsfreeze hook script are affected.
      
      For now mask all file mode bits for "group" and "others" in
      become_daemon().
      
      Temporarily, for compatibility reasons, stick with the 0666 file-mode in
      case of files newly created by the "guest-file-open" QMP call. Do so
      without changing the umask temporarily.
      Signed-off-by: NLaszlo Ersek <lersek@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      c689b4f1
  15. 22 3月, 2013 1 次提交
  16. 12 3月, 2013 6 次提交
  17. 29 1月, 2013 2 次提交
  18. 19 1月, 2013 1 次提交
  19. 09 1月, 2013 9 次提交