[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] bad022: qga: Support Unicode paths in guest-f
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] bad022: qga: Support Unicode paths in guest-file-open on w... |
Date: |
Thu, 01 Nov 2018 11:28:07 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: bad0227d3ac4f706673df9690b77840ed89dec40
https://github.com/qemu/qemu/commit/bad0227d3ac4f706673df9690b77840ed89dec40
Author: Jonathon Reinhart <address@hidden>
Date: 2018-10-30 (Tue, 30 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga: Support Unicode paths in guest-file-open on win32
Currently, the win32 port of QEMU Guest Agent does not properly handle Unicode
paths. The JSON decoder produces a valid UTF-8 path string, but this is passed
directly to CreateFileA, which is expecting an ANSI string and not UTF-8. This
leads to mangled filenames.
This patch follows the example of qmp_guest_set_user_password() and uses
g_utf8_to_utf16() to convert the string to UTF-16 and calls CreateFileW()
explicitly.
Signed-off-by: Jonathon Reinhart <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: 0692b03ee135f6295168082199af55c6f289794d
https://github.com/qemu/qemu/commit/0692b03ee135f6295168082199af55c6f289794d
Author: Chen Hanxiao <address@hidden>
Date: 2018-10-30 (Tue, 30 Oct 2018)
Changed paths:
M qga/commands-win32.c
M qga/main.c
M qga/vss-win32.c
M qga/vss-win32.h
M qga/vss-win32/requester.cpp
M qga/vss-win32/requester.h
Log Message:
-----------
qga-win: add support for qmp_guest_fsfreeze_freeze_list
This patch add support for freeze specified fs.
The valid mountpoints list member are [1]:
The path of a mounted folder, for example, Y:\MountX\
A drive letter, for example, D:\
A volume GUID path of the form \\?\Volume{GUID}\,
where GUID identifies the volume
A UNC path that specifies a remote file share,
for example, \\Clusterx\Share1\
[1]
https://docs.microsoft.com/en-us/windows/desktop/api/vsbackup/nf-vsbackup-ivssbackupcomponents-addtosnapshotset
Cc: Michael Roth <address@hidden>
Signed-off-by: Chen Hanxiao <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: b4bf912a6c19449e68af7b4173a8c6da21904d99
https://github.com/qemu/qemu/commit/b4bf912a6c19449e68af7b4173a8c6da21904d99
Author: Igor Mammedov <address@hidden>
Date: 2018-10-30 (Tue, 30 Oct 2018)
Changed paths:
M qga/commands-posix.c
Log Message:
-----------
qga: ignore non present cpus when handling qmp_guest_get_vcpus()
If VM has VCPUs plugged sparselly (for example a VM started with
3 VCPUs (cpu0, cpu1 and cpu2) and then cpu1 was hotunplugged so
only cpu0 and cpu2 are present), QGA will rise a error
error: internal error: unable to execute QEMU agent command 'guest-get-vcpus':
open("/sys/devices/system/cpu/cpu1/"): No such file or directory
when
virsh vcpucount FOO --guest
is executed.
Fix it by ignoring non present CPUs when fetching CPUs status from sysfs.
Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: Laszlo Ersek <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: 3efac6ebb88e4d099f07fef65178ebaa595ae770
https://github.com/qemu/qemu/commit/3efac6ebb88e4d099f07fef65178ebaa595ae770
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M configure
Log Message:
-----------
configure: add test for libudev
Signed-off-by: Tomáš Golembiovský <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
*make libudev optional to avoid breaking existing build/test environments
*disable libudev for --static builds
Signed-off-by: Michael Roth <address@hidden>
Commit: b616105a904bc350a409e12c39af0ae210900124
https://github.com/qemu/qemu/commit/b616105a904bc350a409e12c39af0ae210900124
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/Makefile.objs
M qga/commands-posix.c
M qga/qapi-schema.json
Log Message:
-----------
qga: linux: report disk serial number
Add reporting of disk serial number on Linux guests. The feature depends
on libudev.
Example:
{
"name": "dm-2",
"mountpoint": "/",
...
"disk": [
{
"serial": "SAMSUNG_MZ7LN512HCHP-000L1_S1ZKNXAG822493",
...
}
],
}
Signed-off-by: Tomáš Golembiovský <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: 6589ce35734e7e71463485650e5fb6e4bbe64729
https://github.com/qemu/qemu/commit/6589ce35734e7e71463485650e5fb6e4bbe64729
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-posix.c
M qga/qapi-schema.json
Log Message:
-----------
qga: linux: return disk device in guest-get-fsinfo
Report device node of the disk on Linux (e.g. "/dev/sda2").
Requirs libudev.
Signed-off-by: Tomáš Golembiovský <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: 0d7f937e2a3ef6d80e8cb3d2cbca95f7365b451e
https://github.com/qemu/qemu/commit/0d7f937e2a3ef6d80e8cb3d2cbca95f7365b451e
Author: Sameeh Jubran <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga-win: prevent crash when executing fsinfo command
The fsinfo command is currently implemented for Windows only and it's disk
parameter can be enabled by adding the define "CONFIG_QGA_NTDDSCSI" to the qga
code. When enabled and executed the qemu-ga crashed with the following message:
------------------------------------------------
File qapi/qapi-visit-core.c, Line 49
Expression: !(v->type & VISITOR_OUTPUT) || *obj)
------------------------------------------------
After some digging, turns out that the GuestPCIAddress is null and the
qapi visitor doesn't like that, so we can always allocate it instead and
initiate all it's members to -1.
Signed-off-by: Sameeh Jubran <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Signed-off-by: Tomáš Golembiovský <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: 6880b94f8a53e34833bf895b3004b2e48c0ffe74
https://github.com/qemu/qemu/commit/6880b94f8a53e34833bf895b3004b2e48c0ffe74
Author: Sameeh Jubran <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga-win: fsinfo: pci-info: allow partial info
The call to SetupDiGetDeviceRegistryProperty might fail because the
value doesn't exist in the registry, in this case we shouldn't exit from
the loop but instead continue to look for other available values in the
registry and set this value as unavailable (-1).
Signed-off-by: Sameeh Jubran <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Signed-off-by: Tomáš Golembiovský <address@hidden>
*squash in fix for when get_pci_info() returns NULL pci_controller field
*fix handling for error_set() cases in get_pci_info(), not just NULL return
*force all -1 PCI addr fields if any single one of them isn't found
Signed-off-by: Michael Roth <address@hidden>
Commit: 76dc75ca549109499a7a6e275a80662f2390f686
https://github.com/qemu/qemu/commit/76dc75ca549109499a7a6e275a80662f2390f686
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M configure
Log Message:
-----------
build: rename CONFIG_QGA_NTDDDISK to CONFIG_QGA_NTDDSCSI
There was inconsistency between commits:
50cbebb9a3 configure: add configure check for ntdddisk.h
a3ef3b2272 qga: added bus type and disk location path
The first commit added #define CONFIG_QGA_NTDDDISK but the second commit
expected the name to be CONFIG_QGA_NTDDSCSI. As a result the code in
second patch was never used.
Renaming the option to CONFIG_QGA_NTDDSCSI to match the name of header
file that is being checked for.
Signed-off-by: Tomáš Golembiovský <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Reviewed-by: Sameeh Jubran <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: 222682abb3800b9c644b7832543510ade3d5138b
https://github.com/qemu/qemu/commit/222682abb3800b9c644b7832543510ade3d5138b
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga-win: add debugging information
The windows code generaly lacks debug information (compared to posix
code). This patch adds some related to HW info in guest-get-fsinfo
command.
Signed-off-by: Tomáš Golembiovský <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: c76d70f498bd2dea9dafb7fcc2aa1b7a418f0f31
https://github.com/qemu/qemu/commit/c76d70f498bd2dea9dafb7fcc2aa1b7a418f0f31
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga-win: refactor disk properties (bus)
Refactor code that queries bus type to be more generic. The function
get_disk_bus_type() has been renamed to build_guest_disk_info().
Following commit(s) will extend this function.
Signed-off-by: Tomáš Golembiovský <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: fb08aa703f4c601155aa65943eb29c1ad3972386
https://github.com/qemu/qemu/commit/fb08aa703f4c601155aa65943eb29c1ad3972386
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga-win: report disk serial number
Signed-off-by: Tomáš Golembiovský <address@hidden>
*coding style fix-ups (declarations at beginning of block)
*improve readability for user-visible errors
*cover additional edge-cases with debug statements
Signed-off-by: Michael Roth <address@hidden>
Commit: 9e65fd659e1557c294d26a4daa3ae313312bcf68
https://github.com/qemu/qemu/commit/9e65fd659e1557c294d26a4daa3ae313312bcf68
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga-win: refactor disk info
Refactor building of disk info into a function that builds the list and
a function that returns infor for single disk. This will be used in
future commit that will handle multi-disk volumes.
Signed-off-by: Tomáš Golembiovský <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: b1ba8890e63ce9432c41c5c3fc229f54c87c9c99
https://github.com/qemu/qemu/commit/b1ba8890e63ce9432c41c5c3fc229f54c87c9c99
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga-win: handle multi-disk volumes
Probe the volume for disk extents and return list of all disks.
Originally only first disk of composite volume was returned.
Note that the patch changes get_pci_info() from one state of brokenness
into a different state of brokenness. In other words it still does not do
what it's supposed to do (see comment in code). If anyone knows how to
fix it, please step in.
Signed-off-by: Tomáš Golembiovský <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: 4550dee80fc1bba37bce141a3d6f83c3e390e719
https://github.com/qemu/qemu/commit/4550dee80fc1bba37bce141a3d6f83c3e390e719
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga-win: return disk device in guest-get-fsinfo
Report device UNC of the disk. It is reported as "\\.\PhysicalDriveX".
Signed-off-by: Tomáš Golembiovský <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: 7fae5184790680b39f4d627d069981816f4c3191
https://github.com/qemu/qemu/commit/7fae5184790680b39f4d627d069981816f4c3191
Author: Tomáš Golembiovský <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga-win: demystify namespace stripping
It was not obvious what exactly the cryptic string copying does to the
GUID. This change makes the intent clearer.
Signed-off-by: Tomáš Golembiovský <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: d9c85b6cc5a2597e72299bc6644c966236378e50
https://github.com/qemu/qemu/commit/d9c85b6cc5a2597e72299bc6644c966236378e50
Author: Li Qiang <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/commands-win32.c
Log Message:
-----------
qga: fix an off-by-one issue
Signed-off-by: Li Qiang <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: 50d5b3c465ffafbd6973acb8afde1f1e4ca5a2da
https://github.com/qemu/qemu/commit/50d5b3c465ffafbd6973acb8afde1f1e4ca5a2da
Author: Michael Roth <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/main.c
Log Message:
-----------
qga: group agent init/cleanup init separate routines
This patch better separates the init/cleanup routines out into
separate functions to make the start-up procedure a bit easier to
follow. This will be useful when we eventually break out the actual
start/stop of the agent's main loop into separates routines that
can be called multiple times after the init phase.
Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: 0f4d3a4912d1ca6585409b92d1d7fefb8baf60fa
https://github.com/qemu/qemu/commit/0f4d3a4912d1ca6585409b92d1d7fefb8baf60fa
Author: Michael Roth <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/main.c
Log Message:
-----------
qga: hang GAConfig/socket_activation off of GAState global
For w32 services we rely on the global GAState to access resources
associated with the agent within service_main(). Currently this is
sufficient for starting the agent since we open the channel once prior
to calling service_main(), and simply start the GMainLoop to start the
agent from within service_main().
Eventually we want to be able to also [re-]open the communication
channel from within service_main(), which requires access to
config/socket_activation variables, so we hang them off GAState in
preparation for that.
Signed-off-by: Michael Roth <address@hidden>
Signed-off-by: Sameeh Jubran <address@hidden>
*dont move GAConfig struct, just the typedef
*fix build bisect for w32
Signed-off-by: Michael Roth <address@hidden>
Commit: d88495a864011139683e62fb7f84db93c7b51881
https://github.com/qemu/qemu/commit/d88495a864011139683e62fb7f84db93c7b51881
Author: Michael Roth <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/main.c
Log Message:
-----------
qga: move w32 service handling out of run_agent()
Eventually we want a w32 service to be able to restart the qga main
loop from within service_main(). To allow for this we move service
handling out of run_agent() such that service_main() calls
run_agent() instead of the reverse.
Signed-off-by: Michael Roth <address@hidden>
Signed-off-by: Bishara AbuHattoum <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: d951fadad6cce10d83f736de691fc2003b89bac4
https://github.com/qemu/qemu/commit/d951fadad6cce10d83f736de691fc2003b89bac4
Author: Michael Roth <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/main.c
Log Message:
-----------
qga: add --retry-path option for re-initializing channel on failure
This adds an option to instruct the agent to periodically attempt
re-opening the communication channel after a channel error has
occurred. The main use-case for this is providing an OS-independent
way of allowing the agent to survive situations like hotplug/unplug of
the communication channel, or initial guest set up where the agent may
be installed/started prior to the installation of the channel device's
driver.
There are nicer ways of implementing this functionality via things
like systemd services, but this option is useful for platforms like
*BSD/w32.
Currently a channel error will result in the GSource for that channel
being removed from the GMainLoop, but the main loop continuing to run.
That behavior results in a dead loop when --retry-path isn't set, and
prevents us from knowing when to attempt re-opening the channel when
it is set, so we also force the loop to exit as part of this patch.
Signed-off-by: Michael Roth <address@hidden>
Commit: ebc88c0ecf1ab8cb64cea9cf7973d05a12ed45e6
https://github.com/qemu/qemu/commit/ebc88c0ecf1ab8cb64cea9cf7973d05a12ed45e6
Author: Michael Roth <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/installer/qemu-ga.wxs
Log Message:
-----------
qga-win: install service with --retry-path set by default
It's nicer from a management perspective that the agent can survive
hotplug/unplug of the channel device, or be started prior to the
installation of the channel device's driver without and still be able
to resume normal function afterward. On linux there are alternatives
like systemd to support this, but on w32 --retry-path is the only
option so it makes sense to set it by default when installed as a
w32 service.
Signed-off-by: Michael Roth <address@hidden>
Commit: a2c1ac4e22da848e0fef262086e0f29fbc6ff83a
https://github.com/qemu/qemu/commit/a2c1ac4e22da848e0fef262086e0f29fbc6ff83a
Author: Michael Roth <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/channel-win32.c
Log Message:
-----------
qga-win: report specific error when failing to open channel
Useful in general, but especially now that errors might occur more
frequently with --retry-path set.
Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: b70d6afe4d7f252259d3344e12daa2d6baf006e2
https://github.com/qemu/qemu/commit/b70d6afe4d7f252259d3344e12daa2d6baf006e2
Author: Bishara AbuHattoum <address@hidden>
Date: 2018-10-31 (Wed, 31 Oct 2018)
Changed paths:
M qga/main.c
M qga/service-win32.h
Log Message:
-----------
qga-win: changing --retry-path option behavior
Currently whenever the qemu-ga's service doesn't find the virtio-serial
the run_agent() loops in a QGA_RETRY_INTERVAL (default 5 seconds)
intervals and try to restart the qemu-ga which causes a synchronous loop.
Changed to wait and listen for the serial events by registering for
notifications a proper serial event handler that deals with events:
DBT_DEVICEARRIVAL indicates that the device has been inserted and
is available
DBT_DEVICEREMOVECOMPLETE indicates that the devive has been removed
Which allow us to determine when the channel path is available for the
qemu-ga to restart.
Signed-off-by: Bishara AbuHattoum <address@hidden>
Signed-off-by: Sameeh Jubran <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Commit: f96a3165ab1c36dbf4cb63e8761fa45457381aca
https://github.com/qemu/qemu/commit/f96a3165ab1c36dbf4cb63e8761fa45457381aca
Author: Peter Maydell <address@hidden>
Date: 2018-11-01 (Thu, 01 Nov 2018)
Changed paths:
M configure
M qga/Makefile.objs
M qga/channel-win32.c
M qga/commands-posix.c
M qga/commands-win32.c
M qga/installer/qemu-ga.wxs
M qga/main.c
M qga/qapi-schema.json
M qga/service-win32.h
M qga/vss-win32.c
M qga/vss-win32.h
M qga/vss-win32/requester.cpp
M qga/vss-win32/requester.h
Log Message:
-----------
Merge remote-tracking branch 'remotes/mdroth/tags/qga-pull-2018-10-30-v3-tag'
into staging
qemu-ga patch queue for soft-freeze
* support for --retry-path option for recovering from communication
path failures
* support for serial/device name in guest-get-fsinfo for linux/w32
* support for freezing individual mount points in guest-fsfreeze-*
* fixes for unicode paths on w32, not-present vcpus in guest-get-vcpus,
buffer overflow in guest-get-fsinfo for w32, and other minor fixes
v3:
* remove redundant check for --static in configure
* correct authorship on "qga-win: add debugging information"
v2:
* set libudev=off in configure for static builds
# gpg: Signature made Wed 31 Oct 2018 14:13:58 GMT
# gpg: using RSA key 3353C9CEF108B584
# gpg: Good signature from "Michael Roth <address@hidden>"
# gpg: aka "Michael Roth <address@hidden>"
# gpg: aka "Michael Roth <address@hidden>"
# Primary key fingerprint: CEAC C9E1 5534 EBAB B82D 3FA0 3353 C9CE F108 B584
* remotes/mdroth/tags/qga-pull-2018-10-30-v3-tag: (24 commits)
qga-win: changing --retry-path option behavior
qga-win: report specific error when failing to open channel
qga-win: install service with --retry-path set by default
qga: add --retry-path option for re-initializing channel on failure
qga: move w32 service handling out of run_agent()
qga: hang GAConfig/socket_activation off of GAState global
qga: group agent init/cleanup init separate routines
qga: fix an off-by-one issue
qga-win: demystify namespace stripping
qga-win: return disk device in guest-get-fsinfo
qga-win: handle multi-disk volumes
qga-win: refactor disk info
qga-win: report disk serial number
qga-win: refactor disk properties (bus)
qga-win: add debugging information
build: rename CONFIG_QGA_NTDDDISK to CONFIG_QGA_NTDDSCSI
qga-win: fsinfo: pci-info: allow partial info
qga-win: prevent crash when executing fsinfo command
qga: linux: return disk device in guest-get-fsinfo
qga: linux: report disk serial number
...
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/00878c95165d...f96a3165ab1c
**NOTE:** This service has been marked for deprecation:
https://developer.github.com/changes/2018-04-25-github-services-deprecation/
Functionality will be removed from GitHub.com on January 31st, 2019.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] bad022: qga: Support Unicode paths in guest-file-open on w...,
GitHub <=