[libvirt] [PATCH 0/8] Introduce virDomainGetState API
by Jiri Denemark
This new API solves several problems:
- calling virDomainGetInfo for just getting domain status is an overkill since
it may result in sending requests to guest OS
- since virDomainGetInfo can hang when guest OS is not responding and it is
used by virsh list, listing domains can hang
- virDomainGetState provides additional info about what action led to domain's
current state, which can be used instead of listening to domain events
I'm undecided whether this API should support flags parameter or not. On one
hand the API seems simple and focused enough not to allow any fine-tuning but
on the other hand we've already had too many issues with APIs that didn't
support flags.
Another thing is that it would be nice to somehow report that a domain is
running but libvirt is currently waiting for reply from hypervisor and is not
able to do anything else with the domain until it gets the reply. In case of
qemu driver, this translates to the driver being stuck in comunication with
qemu monitor. I'm not sure if we should somehow integrate this into
virDomainGetState API. Probably not.
Jiri Denemark (8):
virDomainGetState public API
Internal driver API for virDomainGetState
virDomainGetState public API implementation
Wire protocol format and dispatcher for virDomainGetState
virsh: Prefer virDomainGetState over virDomainGetInfo
remote: Implement virDomainGetState
Implement basic virDomainGetState in all drivers
Implement domain state reason
daemon/remote.c | 33 ++++++
daemon/remote_dispatch_prototypes.h | 8 ++
daemon/remote_dispatch_table.h | 5 +
include/libvirt/libvirt.h.in | 55 ++++++++++
python/generator.py | 1 +
python/libvirt-override-api.xml | 5 +
python/libvirt-override.c | 26 +++++
src/conf/domain_conf.c | 163 ++++++++++++++++++++++++++++-
src/conf/domain_conf.h | 26 +++++-
src/driver.h | 5 +
src/esx/esx_driver.c | 53 ++++++++++
src/libvirt.c | 47 +++++++++
src/libvirt_private.syms | 4 +
src/libvirt_public.syms | 5 +
src/libxl/libxl_driver.c | 75 ++++++++++---
src/lxc/lxc_driver.c | 76 ++++++++++----
src/openvz/openvz_conf.c | 16 ++-
src/openvz/openvz_driver.c | 52 ++++++++--
src/phyp/phyp_driver.c | 11 ++
src/qemu/qemu_driver.c | 90 ++++++++++++-----
src/qemu/qemu_migration.c | 24 +++--
src/qemu/qemu_process.c | 61 +++++++-----
src/qemu/qemu_process.h | 12 ++-
src/remote/remote_driver.c | 30 ++++++
src/remote/remote_protocol.c | 20 ++++
src/remote/remote_protocol.h | 16 +++
src/remote/remote_protocol.x | 12 ++-
src/remote_protocol-structs | 7 ++
src/test/test_driver.c | 102 +++++++++++++------
src/uml/uml_driver.c | 53 ++++++++--
src/vbox/vbox_tmpl.c | 55 ++++++++++
src/vmware/vmware_conf.c | 3 +-
src/vmware/vmware_driver.c | 55 ++++++++---
src/xen/xen_driver.c | 17 +++
src/xen/xen_driver.h | 1 +
src/xen/xen_hypervisor.c | 33 ++++++
src/xen/xen_hypervisor.h | 4 +
src/xen/xen_inotify.c | 1 +
src/xen/xend_internal.c | 96 +++++++++++++-----
src/xen/xend_internal.h | 1 +
src/xen/xm_internal.c | 18 +++
src/xen/xm_internal.h | 1 +
src/xen/xs_internal.c | 31 ++++++
src/xen/xs_internal.h | 3 +
src/xenapi/xenapi_driver.c | 44 ++++++++
tools/virsh.c | 195 +++++++++++++++++++++++++++++------
46 files changed, 1415 insertions(+), 236 deletions(-)
--
1.7.5.rc3
14 years
[libvirt] libvirt commands during migration
by Dan Kenigsberg
Hi,
We've noticed that most of libvirt domain-specific calls block while
qemu is migrating.
Isn't it kind-of-a-bug? Migration can take a while; qemu allows to do it
in the background, and accepts monitor commands. So why should a libvirt
user be blocked from his favorite domblkstat?
Regards,
Dan.
14 years
Re: [libvirt] failure to build on rawhide
by Ludovic Courtès
Hi Eric,
Eric Blake <eblake(a)redhat.com> writes:
> I'm getting this when trying to build libvirt on rawhide (using the
> package gnutls-devel-2.12.3-1.fc16.x86_64):
>
> remote/remote_driver.c: In function 'negotiate_gnutls_on_connection':
> remote/remote_driver.c:1361:9: error:
> 'gnutls_certificate_type_set_priority' is deprecated (declared at
> /usr/include/gnutls/compat.h:347) [-Werror=deprecated-declarations]
>
> but I can't find anything in the gnutls man pages that says why it is
> deprecated or what to use in its place. Any ideas?
This has been replaced by “priority strings” (info "(gnutls) Priority
Strings"). ‘NEWS’ doesn’t seem to mention it, but I agree that it
should.
Thanks,
Ludo’.
14 years
[libvirt] converting save/dump output into physical memory image
by Andrew Tappert
A lot of people in the security community, myself included, are
interested in memory forensics these days. Virtualization is a natural
fit with memory forensics because it allows one to get access to a
guest's memory without having to introduce any extra software into the
guest or otherwise interfere with it. Incident responders are
particularly interested in getting memory dumps from systems they're
investigating.
Virsh has "save" and "dump" commands for storing the state of a guest to
a file on disk, but memory of KVM guests doesn't get saved in the
"standard" input format for memory forensics tools, which is a raw
physical memory image. (This is what you'd get via the classical "dd
/dev/mem" approach or the contemporary equivalent using the crash
driver; and VMware Server and Workstation produce .vmem files, which are
such raw physical memory images, when a guest is paused or snapshotted.)
In order to analyze the memory of Libvirt/KVM guests with my Linux
memory forensics software, Second Look, I've created a tool for
converting Libvirt-QEMU-save files (output of virsh save command) or
QEMU-savevm files (output of virsh dump command) to raw physical memory
images.
I've got a basic working capability, though I'm still tracking down some
problems with a guest allocated 8GB RAM--not all the memory seems to be
present in the save or dump file. And I haven't tested very extensively
yet, version support is limited to what I myself am currently running, etc.
I'd like to know if this is a capability that others are interested in.
Is this something that would be of interest to the Libvirt project if I
were to contribute the code, or to the KVM project, or do you think it
best exists as a separate project?
I've also got a proof-of-concept tool for converting hibernate images to
raw physical memory images. Perhaps a collection of tools for
converting various memory dump formats would be a good project. Anyone
else interested in this kind of stuff? As an author of commercial
memory forensics software I've got a vested interest in availability of
good memory acquisition capabilities. But there are a number of people
working on FOSS Linux memory analysis tools, too...
Andrew
14 years
[libvirt] [PATCH 0/5] Support for marking domains as "tainted" (v2)
by Daniel P. Berrange
There are various configurations for virtual domains that we allow,
but do not wish to actively support in production environments.
The support situation is similar to that of binary only or non-GPL
kernel modules, so borrow the kernel's idea of "tainting".
When an undesirable configuration is used on a running VM, set a
suitable taint flag and log a warning. OS distro bug triagers can
see these warnings and decide whether to support users filing bugs
in this scenarios
In v2:
- Split up the 3rd patch into 3 pieces
- Add a dedicated API for appending a formatted string to
the domain logfile (optionally opening the log if not
already opened)
- Use 'enum virDomainTaintFlags' for parameters instead of 'int'
14 years
[libvirt] [PATCH] rm daemon/remote_dispatch_table.h
by Hu Tao
1. this file is automatically generated at compile-time, so rm it
to avoid further commit to this file.
2. any update should made to file src/remote/remote_protocol.x.
---
daemon/remote_dispatch_table.h | 1054 ----------------------------------------
1 files changed, 0 insertions(+), 1054 deletions(-)
delete mode 100644 daemon/remote_dispatch_table.h
diff --git a/daemon/remote_dispatch_table.h b/daemon/remote_dispatch_table.h
deleted file mode 100644
index b39f7c2..0000000
--- a/daemon/remote_dispatch_table.h
+++ /dev/null
@@ -1,1054 +0,0 @@
-/* Automatically generated by remote_generate_stubs.pl.
- * Do not edit this file. Any changes you make will be lost.
- */
-
-{ /* (unused) => 0 */
- .fn = NULL,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* Open => 1 */
- .fn = (dispatch_fn) remoteDispatchOpen,
- .args_filter = (xdrproc_t) xdr_remote_open_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* Close => 2 */
- .fn = (dispatch_fn) remoteDispatchClose,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* GetType => 3 */
- .fn = (dispatch_fn) remoteDispatchGetType,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_get_type_ret,
-},
-{ /* GetVersion => 4 */
- .fn = (dispatch_fn) remoteDispatchGetVersion,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_get_version_ret,
-},
-{ /* GetMaxVcpus => 5 */
- .fn = (dispatch_fn) remoteDispatchGetMaxVcpus,
- .args_filter = (xdrproc_t) xdr_remote_get_max_vcpus_args,
- .ret_filter = (xdrproc_t) xdr_remote_get_max_vcpus_ret,
-},
-{ /* NodeGetInfo => 6 */
- .fn = (dispatch_fn) remoteDispatchNodeGetInfo,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_node_get_info_ret,
-},
-{ /* GetCapabilities => 7 */
- .fn = (dispatch_fn) remoteDispatchGetCapabilities,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_get_capabilities_ret,
-},
-{ /* DomainAttachDevice => 8 */
- .fn = (dispatch_fn) remoteDispatchDomainAttachDevice,
- .args_filter = (xdrproc_t) xdr_remote_domain_attach_device_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainCreate => 9 */
- .fn = (dispatch_fn) remoteDispatchDomainCreate,
- .args_filter = (xdrproc_t) xdr_remote_domain_create_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainCreateXml => 10 */
- .fn = (dispatch_fn) remoteDispatchDomainCreateXml,
- .args_filter = (xdrproc_t) xdr_remote_domain_create_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_create_xml_ret,
-},
-{ /* DomainDefineXml => 11 */
- .fn = (dispatch_fn) remoteDispatchDomainDefineXml,
- .args_filter = (xdrproc_t) xdr_remote_domain_define_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_define_xml_ret,
-},
-{ /* DomainDestroy => 12 */
- .fn = (dispatch_fn) remoteDispatchDomainDestroy,
- .args_filter = (xdrproc_t) xdr_remote_domain_destroy_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainDetachDevice => 13 */
- .fn = (dispatch_fn) remoteDispatchDomainDetachDevice,
- .args_filter = (xdrproc_t) xdr_remote_domain_detach_device_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainDumpXml => 14 */
- .fn = (dispatch_fn) remoteDispatchDomainDumpXml,
- .args_filter = (xdrproc_t) xdr_remote_domain_dump_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_dump_xml_ret,
-},
-{ /* DomainGetAutostart => 15 */
- .fn = (dispatch_fn) remoteDispatchDomainGetAutostart,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_autostart_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_autostart_ret,
-},
-{ /* DomainGetInfo => 16 */
- .fn = (dispatch_fn) remoteDispatchDomainGetInfo,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_info_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_info_ret,
-},
-{ /* DomainGetMaxMemory => 17 */
- .fn = (dispatch_fn) remoteDispatchDomainGetMaxMemory,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_max_memory_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_max_memory_ret,
-},
-{ /* DomainGetMaxVcpus => 18 */
- .fn = (dispatch_fn) remoteDispatchDomainGetMaxVcpus,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_max_vcpus_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_max_vcpus_ret,
-},
-{ /* DomainGetOsType => 19 */
- .fn = (dispatch_fn) remoteDispatchDomainGetOsType,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_os_type_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_os_type_ret,
-},
-{ /* DomainGetVcpus => 20 */
- .fn = (dispatch_fn) remoteDispatchDomainGetVcpus,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_vcpus_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_vcpus_ret,
-},
-{ /* ListDefinedDomains => 21 */
- .fn = (dispatch_fn) remoteDispatchListDefinedDomains,
- .args_filter = (xdrproc_t) xdr_remote_list_defined_domains_args,
- .ret_filter = (xdrproc_t) xdr_remote_list_defined_domains_ret,
-},
-{ /* DomainLookupById => 22 */
- .fn = (dispatch_fn) remoteDispatchDomainLookupById,
- .args_filter = (xdrproc_t) xdr_remote_domain_lookup_by_id_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_lookup_by_id_ret,
-},
-{ /* DomainLookupByName => 23 */
- .fn = (dispatch_fn) remoteDispatchDomainLookupByName,
- .args_filter = (xdrproc_t) xdr_remote_domain_lookup_by_name_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_lookup_by_name_ret,
-},
-{ /* DomainLookupByUuid => 24 */
- .fn = (dispatch_fn) remoteDispatchDomainLookupByUuid,
- .args_filter = (xdrproc_t) xdr_remote_domain_lookup_by_uuid_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_lookup_by_uuid_ret,
-},
-{ /* NumOfDefinedDomains => 25 */
- .fn = (dispatch_fn) remoteDispatchNumOfDefinedDomains,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_num_of_defined_domains_ret,
-},
-{ /* DomainPinVcpu => 26 */
- .fn = (dispatch_fn) remoteDispatchDomainPinVcpu,
- .args_filter = (xdrproc_t) xdr_remote_domain_pin_vcpu_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainReboot => 27 */
- .fn = (dispatch_fn) remoteDispatchDomainReboot,
- .args_filter = (xdrproc_t) xdr_remote_domain_reboot_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainResume => 28 */
- .fn = (dispatch_fn) remoteDispatchDomainResume,
- .args_filter = (xdrproc_t) xdr_remote_domain_resume_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainSetAutostart => 29 */
- .fn = (dispatch_fn) remoteDispatchDomainSetAutostart,
- .args_filter = (xdrproc_t) xdr_remote_domain_set_autostart_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainSetMaxMemory => 30 */
- .fn = (dispatch_fn) remoteDispatchDomainSetMaxMemory,
- .args_filter = (xdrproc_t) xdr_remote_domain_set_max_memory_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainSetMemory => 31 */
- .fn = (dispatch_fn) remoteDispatchDomainSetMemory,
- .args_filter = (xdrproc_t) xdr_remote_domain_set_memory_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainSetVcpus => 32 */
- .fn = (dispatch_fn) remoteDispatchDomainSetVcpus,
- .args_filter = (xdrproc_t) xdr_remote_domain_set_vcpus_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainShutdown => 33 */
- .fn = (dispatch_fn) remoteDispatchDomainShutdown,
- .args_filter = (xdrproc_t) xdr_remote_domain_shutdown_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainSuspend => 34 */
- .fn = (dispatch_fn) remoteDispatchDomainSuspend,
- .args_filter = (xdrproc_t) xdr_remote_domain_suspend_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainUndefine => 35 */
- .fn = (dispatch_fn) remoteDispatchDomainUndefine,
- .args_filter = (xdrproc_t) xdr_remote_domain_undefine_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* ListDefinedNetworks => 36 */
- .fn = (dispatch_fn) remoteDispatchListDefinedNetworks,
- .args_filter = (xdrproc_t) xdr_remote_list_defined_networks_args,
- .ret_filter = (xdrproc_t) xdr_remote_list_defined_networks_ret,
-},
-{ /* ListDomains => 37 */
- .fn = (dispatch_fn) remoteDispatchListDomains,
- .args_filter = (xdrproc_t) xdr_remote_list_domains_args,
- .ret_filter = (xdrproc_t) xdr_remote_list_domains_ret,
-},
-{ /* ListNetworks => 38 */
- .fn = (dispatch_fn) remoteDispatchListNetworks,
- .args_filter = (xdrproc_t) xdr_remote_list_networks_args,
- .ret_filter = (xdrproc_t) xdr_remote_list_networks_ret,
-},
-{ /* NetworkCreate => 39 */
- .fn = (dispatch_fn) remoteDispatchNetworkCreate,
- .args_filter = (xdrproc_t) xdr_remote_network_create_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* NetworkCreateXml => 40 */
- .fn = (dispatch_fn) remoteDispatchNetworkCreateXml,
- .args_filter = (xdrproc_t) xdr_remote_network_create_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_network_create_xml_ret,
-},
-{ /* NetworkDefineXml => 41 */
- .fn = (dispatch_fn) remoteDispatchNetworkDefineXml,
- .args_filter = (xdrproc_t) xdr_remote_network_define_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_network_define_xml_ret,
-},
-{ /* NetworkDestroy => 42 */
- .fn = (dispatch_fn) remoteDispatchNetworkDestroy,
- .args_filter = (xdrproc_t) xdr_remote_network_destroy_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* NetworkDumpXml => 43 */
- .fn = (dispatch_fn) remoteDispatchNetworkDumpXml,
- .args_filter = (xdrproc_t) xdr_remote_network_dump_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_network_dump_xml_ret,
-},
-{ /* NetworkGetAutostart => 44 */
- .fn = (dispatch_fn) remoteDispatchNetworkGetAutostart,
- .args_filter = (xdrproc_t) xdr_remote_network_get_autostart_args,
- .ret_filter = (xdrproc_t) xdr_remote_network_get_autostart_ret,
-},
-{ /* NetworkGetBridgeName => 45 */
- .fn = (dispatch_fn) remoteDispatchNetworkGetBridgeName,
- .args_filter = (xdrproc_t) xdr_remote_network_get_bridge_name_args,
- .ret_filter = (xdrproc_t) xdr_remote_network_get_bridge_name_ret,
-},
-{ /* NetworkLookupByName => 46 */
- .fn = (dispatch_fn) remoteDispatchNetworkLookupByName,
- .args_filter = (xdrproc_t) xdr_remote_network_lookup_by_name_args,
- .ret_filter = (xdrproc_t) xdr_remote_network_lookup_by_name_ret,
-},
-{ /* NetworkLookupByUuid => 47 */
- .fn = (dispatch_fn) remoteDispatchNetworkLookupByUuid,
- .args_filter = (xdrproc_t) xdr_remote_network_lookup_by_uuid_args,
- .ret_filter = (xdrproc_t) xdr_remote_network_lookup_by_uuid_ret,
-},
-{ /* NetworkSetAutostart => 48 */
- .fn = (dispatch_fn) remoteDispatchNetworkSetAutostart,
- .args_filter = (xdrproc_t) xdr_remote_network_set_autostart_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* NetworkUndefine => 49 */
- .fn = (dispatch_fn) remoteDispatchNetworkUndefine,
- .args_filter = (xdrproc_t) xdr_remote_network_undefine_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* NumOfDefinedNetworks => 50 */
- .fn = (dispatch_fn) remoteDispatchNumOfDefinedNetworks,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_num_of_defined_networks_ret,
-},
-{ /* NumOfDomains => 51 */
- .fn = (dispatch_fn) remoteDispatchNumOfDomains,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_num_of_domains_ret,
-},
-{ /* NumOfNetworks => 52 */
- .fn = (dispatch_fn) remoteDispatchNumOfNetworks,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_num_of_networks_ret,
-},
-{ /* DomainCoreDump => 53 */
- .fn = (dispatch_fn) remoteDispatchDomainCoreDump,
- .args_filter = (xdrproc_t) xdr_remote_domain_core_dump_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainRestore => 54 */
- .fn = (dispatch_fn) remoteDispatchDomainRestore,
- .args_filter = (xdrproc_t) xdr_remote_domain_restore_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainSave => 55 */
- .fn = (dispatch_fn) remoteDispatchDomainSave,
- .args_filter = (xdrproc_t) xdr_remote_domain_save_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainGetSchedulerType => 56 */
- .fn = (dispatch_fn) remoteDispatchDomainGetSchedulerType,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_scheduler_type_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_scheduler_type_ret,
-},
-{ /* DomainGetSchedulerParameters => 57 */
- .fn = (dispatch_fn) remoteDispatchDomainGetSchedulerParameters,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_scheduler_parameters_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_scheduler_parameters_ret,
-},
-{ /* DomainSetSchedulerParameters => 58 */
- .fn = (dispatch_fn) remoteDispatchDomainSetSchedulerParameters,
- .args_filter = (xdrproc_t) xdr_remote_domain_set_scheduler_parameters_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* GetHostname => 59 */
- .fn = (dispatch_fn) remoteDispatchGetHostname,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_get_hostname_ret,
-},
-{ /* SupportsFeature => 60 */
- .fn = (dispatch_fn) remoteDispatchSupportsFeature,
- .args_filter = (xdrproc_t) xdr_remote_supports_feature_args,
- .ret_filter = (xdrproc_t) xdr_remote_supports_feature_ret,
-},
-{ /* DomainMigratePrepare => 61 */
- .fn = (dispatch_fn) remoteDispatchDomainMigratePrepare,
- .args_filter = (xdrproc_t) xdr_remote_domain_migrate_prepare_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_migrate_prepare_ret,
-},
-{ /* DomainMigratePerform => 62 */
- .fn = (dispatch_fn) remoteDispatchDomainMigratePerform,
- .args_filter = (xdrproc_t) xdr_remote_domain_migrate_perform_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainMigrateFinish => 63 */
- .fn = (dispatch_fn) remoteDispatchDomainMigrateFinish,
- .args_filter = (xdrproc_t) xdr_remote_domain_migrate_finish_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_migrate_finish_ret,
-},
-{ /* DomainBlockStats => 64 */
- .fn = (dispatch_fn) remoteDispatchDomainBlockStats,
- .args_filter = (xdrproc_t) xdr_remote_domain_block_stats_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_block_stats_ret,
-},
-{ /* DomainInterfaceStats => 65 */
- .fn = (dispatch_fn) remoteDispatchDomainInterfaceStats,
- .args_filter = (xdrproc_t) xdr_remote_domain_interface_stats_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_interface_stats_ret,
-},
-{ /* AuthList => 66 */
- .fn = (dispatch_fn) remoteDispatchAuthList,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_auth_list_ret,
-},
-{ /* AuthSaslInit => 67 */
- .fn = (dispatch_fn) remoteDispatchAuthSaslInit,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_auth_sasl_init_ret,
-},
-{ /* AuthSaslStart => 68 */
- .fn = (dispatch_fn) remoteDispatchAuthSaslStart,
- .args_filter = (xdrproc_t) xdr_remote_auth_sasl_start_args,
- .ret_filter = (xdrproc_t) xdr_remote_auth_sasl_start_ret,
-},
-{ /* AuthSaslStep => 69 */
- .fn = (dispatch_fn) remoteDispatchAuthSaslStep,
- .args_filter = (xdrproc_t) xdr_remote_auth_sasl_step_args,
- .ret_filter = (xdrproc_t) xdr_remote_auth_sasl_step_ret,
-},
-{ /* AuthPolkit => 70 */
- .fn = (dispatch_fn) remoteDispatchAuthPolkit,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_auth_polkit_ret,
-},
-{ /* NumOfStoragePools => 71 */
- .fn = (dispatch_fn) remoteDispatchNumOfStoragePools,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_num_of_storage_pools_ret,
-},
-{ /* ListStoragePools => 72 */
- .fn = (dispatch_fn) remoteDispatchListStoragePools,
- .args_filter = (xdrproc_t) xdr_remote_list_storage_pools_args,
- .ret_filter = (xdrproc_t) xdr_remote_list_storage_pools_ret,
-},
-{ /* NumOfDefinedStoragePools => 73 */
- .fn = (dispatch_fn) remoteDispatchNumOfDefinedStoragePools,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_num_of_defined_storage_pools_ret,
-},
-{ /* ListDefinedStoragePools => 74 */
- .fn = (dispatch_fn) remoteDispatchListDefinedStoragePools,
- .args_filter = (xdrproc_t) xdr_remote_list_defined_storage_pools_args,
- .ret_filter = (xdrproc_t) xdr_remote_list_defined_storage_pools_ret,
-},
-{ /* FindStoragePoolSources => 75 */
- .fn = (dispatch_fn) remoteDispatchFindStoragePoolSources,
- .args_filter = (xdrproc_t) xdr_remote_find_storage_pool_sources_args,
- .ret_filter = (xdrproc_t) xdr_remote_find_storage_pool_sources_ret,
-},
-{ /* StoragePoolCreateXml => 76 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolCreateXml,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_create_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_create_xml_ret,
-},
-{ /* StoragePoolDefineXml => 77 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolDefineXml,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_define_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_define_xml_ret,
-},
-{ /* StoragePoolCreate => 78 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolCreate,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_create_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StoragePoolBuild => 79 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolBuild,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_build_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StoragePoolDestroy => 80 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolDestroy,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_destroy_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StoragePoolDelete => 81 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolDelete,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_delete_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StoragePoolUndefine => 82 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolUndefine,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_undefine_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StoragePoolRefresh => 83 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolRefresh,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_refresh_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StoragePoolLookupByName => 84 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolLookupByName,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_lookup_by_name_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_lookup_by_name_ret,
-},
-{ /* StoragePoolLookupByUuid => 85 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolLookupByUuid,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_lookup_by_uuid_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_lookup_by_uuid_ret,
-},
-{ /* StoragePoolLookupByVolume => 86 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolLookupByVolume,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_lookup_by_volume_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_lookup_by_volume_ret,
-},
-{ /* StoragePoolGetInfo => 87 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolGetInfo,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_get_info_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_get_info_ret,
-},
-{ /* StoragePoolDumpXml => 88 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolDumpXml,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_dump_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_dump_xml_ret,
-},
-{ /* StoragePoolGetAutostart => 89 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolGetAutostart,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_get_autostart_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_get_autostart_ret,
-},
-{ /* StoragePoolSetAutostart => 90 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolSetAutostart,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_set_autostart_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StoragePoolNumOfVolumes => 91 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolNumOfVolumes,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_num_of_volumes_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_num_of_volumes_ret,
-},
-{ /* StoragePoolListVolumes => 92 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolListVolumes,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_list_volumes_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_list_volumes_ret,
-},
-{ /* StorageVolCreateXml => 93 */
- .fn = (dispatch_fn) remoteDispatchStorageVolCreateXml,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_create_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_vol_create_xml_ret,
-},
-{ /* StorageVolDelete => 94 */
- .fn = (dispatch_fn) remoteDispatchStorageVolDelete,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_delete_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StorageVolLookupByName => 95 */
- .fn = (dispatch_fn) remoteDispatchStorageVolLookupByName,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_lookup_by_name_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_vol_lookup_by_name_ret,
-},
-{ /* StorageVolLookupByKey => 96 */
- .fn = (dispatch_fn) remoteDispatchStorageVolLookupByKey,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_lookup_by_key_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_vol_lookup_by_key_ret,
-},
-{ /* StorageVolLookupByPath => 97 */
- .fn = (dispatch_fn) remoteDispatchStorageVolLookupByPath,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_lookup_by_path_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_vol_lookup_by_path_ret,
-},
-{ /* StorageVolGetInfo => 98 */
- .fn = (dispatch_fn) remoteDispatchStorageVolGetInfo,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_get_info_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_vol_get_info_ret,
-},
-{ /* StorageVolDumpXml => 99 */
- .fn = (dispatch_fn) remoteDispatchStorageVolDumpXml,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_dump_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_vol_dump_xml_ret,
-},
-{ /* StorageVolGetPath => 100 */
- .fn = (dispatch_fn) remoteDispatchStorageVolGetPath,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_get_path_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_vol_get_path_ret,
-},
-{ /* NodeGetCellsFreeMemory => 101 */
- .fn = (dispatch_fn) remoteDispatchNodeGetCellsFreeMemory,
- .args_filter = (xdrproc_t) xdr_remote_node_get_cells_free_memory_args,
- .ret_filter = (xdrproc_t) xdr_remote_node_get_cells_free_memory_ret,
-},
-{ /* NodeGetFreeMemory => 102 */
- .fn = (dispatch_fn) remoteDispatchNodeGetFreeMemory,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_node_get_free_memory_ret,
-},
-{ /* DomainBlockPeek => 103 */
- .fn = (dispatch_fn) remoteDispatchDomainBlockPeek,
- .args_filter = (xdrproc_t) xdr_remote_domain_block_peek_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_block_peek_ret,
-},
-{ /* DomainMemoryPeek => 104 */
- .fn = (dispatch_fn) remoteDispatchDomainMemoryPeek,
- .args_filter = (xdrproc_t) xdr_remote_domain_memory_peek_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_memory_peek_ret,
-},
-{ /* DomainEventsRegister => 105 */
- .fn = (dispatch_fn) remoteDispatchDomainEventsRegister,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_domain_events_register_ret,
-},
-{ /* DomainEventsDeregister => 106 */
- .fn = (dispatch_fn) remoteDispatchDomainEventsDeregister,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_domain_events_deregister_ret,
-},
-{ /* Async event DomainEventLifecycle => 107 */
- .fn = NULL,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainMigratePrepare2 => 108 */
- .fn = (dispatch_fn) remoteDispatchDomainMigratePrepare2,
- .args_filter = (xdrproc_t) xdr_remote_domain_migrate_prepare2_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_migrate_prepare2_ret,
-},
-{ /* DomainMigrateFinish2 => 109 */
- .fn = (dispatch_fn) remoteDispatchDomainMigrateFinish2,
- .args_filter = (xdrproc_t) xdr_remote_domain_migrate_finish2_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_migrate_finish2_ret,
-},
-{ /* GetUri => 110 */
- .fn = (dispatch_fn) remoteDispatchGetUri,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_get_uri_ret,
-},
-{ /* NodeNumOfDevices => 111 */
- .fn = (dispatch_fn) remoteDispatchNodeNumOfDevices,
- .args_filter = (xdrproc_t) xdr_remote_node_num_of_devices_args,
- .ret_filter = (xdrproc_t) xdr_remote_node_num_of_devices_ret,
-},
-{ /* NodeListDevices => 112 */
- .fn = (dispatch_fn) remoteDispatchNodeListDevices,
- .args_filter = (xdrproc_t) xdr_remote_node_list_devices_args,
- .ret_filter = (xdrproc_t) xdr_remote_node_list_devices_ret,
-},
-{ /* NodeDeviceLookupByName => 113 */
- .fn = (dispatch_fn) remoteDispatchNodeDeviceLookupByName,
- .args_filter = (xdrproc_t) xdr_remote_node_device_lookup_by_name_args,
- .ret_filter = (xdrproc_t) xdr_remote_node_device_lookup_by_name_ret,
-},
-{ /* NodeDeviceDumpXml => 114 */
- .fn = (dispatch_fn) remoteDispatchNodeDeviceDumpXml,
- .args_filter = (xdrproc_t) xdr_remote_node_device_dump_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_node_device_dump_xml_ret,
-},
-{ /* NodeDeviceGetParent => 115 */
- .fn = (dispatch_fn) remoteDispatchNodeDeviceGetParent,
- .args_filter = (xdrproc_t) xdr_remote_node_device_get_parent_args,
- .ret_filter = (xdrproc_t) xdr_remote_node_device_get_parent_ret,
-},
-{ /* NodeDeviceNumOfCaps => 116 */
- .fn = (dispatch_fn) remoteDispatchNodeDeviceNumOfCaps,
- .args_filter = (xdrproc_t) xdr_remote_node_device_num_of_caps_args,
- .ret_filter = (xdrproc_t) xdr_remote_node_device_num_of_caps_ret,
-},
-{ /* NodeDeviceListCaps => 117 */
- .fn = (dispatch_fn) remoteDispatchNodeDeviceListCaps,
- .args_filter = (xdrproc_t) xdr_remote_node_device_list_caps_args,
- .ret_filter = (xdrproc_t) xdr_remote_node_device_list_caps_ret,
-},
-{ /* NodeDeviceDettach => 118 */
- .fn = (dispatch_fn) remoteDispatchNodeDeviceDettach,
- .args_filter = (xdrproc_t) xdr_remote_node_device_dettach_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* NodeDeviceReAttach => 119 */
- .fn = (dispatch_fn) remoteDispatchNodeDeviceReAttach,
- .args_filter = (xdrproc_t) xdr_remote_node_device_re_attach_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* NodeDeviceReset => 120 */
- .fn = (dispatch_fn) remoteDispatchNodeDeviceReset,
- .args_filter = (xdrproc_t) xdr_remote_node_device_reset_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainGetSecurityLabel => 121 */
- .fn = (dispatch_fn) remoteDispatchDomainGetSecurityLabel,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_security_label_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_security_label_ret,
-},
-{ /* NodeGetSecurityModel => 122 */
- .fn = (dispatch_fn) remoteDispatchNodeGetSecurityModel,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_node_get_security_model_ret,
-},
-{ /* NodeDeviceCreateXml => 123 */
- .fn = (dispatch_fn) remoteDispatchNodeDeviceCreateXml,
- .args_filter = (xdrproc_t) xdr_remote_node_device_create_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_node_device_create_xml_ret,
-},
-{ /* NodeDeviceDestroy => 124 */
- .fn = (dispatch_fn) remoteDispatchNodeDeviceDestroy,
- .args_filter = (xdrproc_t) xdr_remote_node_device_destroy_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StorageVolCreateXmlFrom => 125 */
- .fn = (dispatch_fn) remoteDispatchStorageVolCreateXmlFrom,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_create_xml_from_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_vol_create_xml_from_ret,
-},
-{ /* NumOfInterfaces => 126 */
- .fn = (dispatch_fn) remoteDispatchNumOfInterfaces,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_num_of_interfaces_ret,
-},
-{ /* ListInterfaces => 127 */
- .fn = (dispatch_fn) remoteDispatchListInterfaces,
- .args_filter = (xdrproc_t) xdr_remote_list_interfaces_args,
- .ret_filter = (xdrproc_t) xdr_remote_list_interfaces_ret,
-},
-{ /* InterfaceLookupByName => 128 */
- .fn = (dispatch_fn) remoteDispatchInterfaceLookupByName,
- .args_filter = (xdrproc_t) xdr_remote_interface_lookup_by_name_args,
- .ret_filter = (xdrproc_t) xdr_remote_interface_lookup_by_name_ret,
-},
-{ /* InterfaceLookupByMacString => 129 */
- .fn = (dispatch_fn) remoteDispatchInterfaceLookupByMacString,
- .args_filter = (xdrproc_t) xdr_remote_interface_lookup_by_mac_string_args,
- .ret_filter = (xdrproc_t) xdr_remote_interface_lookup_by_mac_string_ret,
-},
-{ /* InterfaceGetXmlDesc => 130 */
- .fn = (dispatch_fn) remoteDispatchInterfaceGetXmlDesc,
- .args_filter = (xdrproc_t) xdr_remote_interface_get_xml_desc_args,
- .ret_filter = (xdrproc_t) xdr_remote_interface_get_xml_desc_ret,
-},
-{ /* InterfaceDefineXml => 131 */
- .fn = (dispatch_fn) remoteDispatchInterfaceDefineXml,
- .args_filter = (xdrproc_t) xdr_remote_interface_define_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_interface_define_xml_ret,
-},
-{ /* InterfaceUndefine => 132 */
- .fn = (dispatch_fn) remoteDispatchInterfaceUndefine,
- .args_filter = (xdrproc_t) xdr_remote_interface_undefine_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* InterfaceCreate => 133 */
- .fn = (dispatch_fn) remoteDispatchInterfaceCreate,
- .args_filter = (xdrproc_t) xdr_remote_interface_create_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* InterfaceDestroy => 134 */
- .fn = (dispatch_fn) remoteDispatchInterfaceDestroy,
- .args_filter = (xdrproc_t) xdr_remote_interface_destroy_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainXmlFromNative => 135 */
- .fn = (dispatch_fn) remoteDispatchDomainXmlFromNative,
- .args_filter = (xdrproc_t) xdr_remote_domain_xml_from_native_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_xml_from_native_ret,
-},
-{ /* DomainXmlToNative => 136 */
- .fn = (dispatch_fn) remoteDispatchDomainXmlToNative,
- .args_filter = (xdrproc_t) xdr_remote_domain_xml_to_native_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_xml_to_native_ret,
-},
-{ /* NumOfDefinedInterfaces => 137 */
- .fn = (dispatch_fn) remoteDispatchNumOfDefinedInterfaces,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_num_of_defined_interfaces_ret,
-},
-{ /* ListDefinedInterfaces => 138 */
- .fn = (dispatch_fn) remoteDispatchListDefinedInterfaces,
- .args_filter = (xdrproc_t) xdr_remote_list_defined_interfaces_args,
- .ret_filter = (xdrproc_t) xdr_remote_list_defined_interfaces_ret,
-},
-{ /* NumOfSecrets => 139 */
- .fn = (dispatch_fn) remoteDispatchNumOfSecrets,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_num_of_secrets_ret,
-},
-{ /* ListSecrets => 140 */
- .fn = (dispatch_fn) remoteDispatchListSecrets,
- .args_filter = (xdrproc_t) xdr_remote_list_secrets_args,
- .ret_filter = (xdrproc_t) xdr_remote_list_secrets_ret,
-},
-{ /* SecretLookupByUuid => 141 */
- .fn = (dispatch_fn) remoteDispatchSecretLookupByUuid,
- .args_filter = (xdrproc_t) xdr_remote_secret_lookup_by_uuid_args,
- .ret_filter = (xdrproc_t) xdr_remote_secret_lookup_by_uuid_ret,
-},
-{ /* SecretDefineXml => 142 */
- .fn = (dispatch_fn) remoteDispatchSecretDefineXml,
- .args_filter = (xdrproc_t) xdr_remote_secret_define_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_secret_define_xml_ret,
-},
-{ /* SecretGetXmlDesc => 143 */
- .fn = (dispatch_fn) remoteDispatchSecretGetXmlDesc,
- .args_filter = (xdrproc_t) xdr_remote_secret_get_xml_desc_args,
- .ret_filter = (xdrproc_t) xdr_remote_secret_get_xml_desc_ret,
-},
-{ /* SecretSetValue => 144 */
- .fn = (dispatch_fn) remoteDispatchSecretSetValue,
- .args_filter = (xdrproc_t) xdr_remote_secret_set_value_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* SecretGetValue => 145 */
- .fn = (dispatch_fn) remoteDispatchSecretGetValue,
- .args_filter = (xdrproc_t) xdr_remote_secret_get_value_args,
- .ret_filter = (xdrproc_t) xdr_remote_secret_get_value_ret,
-},
-{ /* SecretUndefine => 146 */
- .fn = (dispatch_fn) remoteDispatchSecretUndefine,
- .args_filter = (xdrproc_t) xdr_remote_secret_undefine_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* SecretLookupByUsage => 147 */
- .fn = (dispatch_fn) remoteDispatchSecretLookupByUsage,
- .args_filter = (xdrproc_t) xdr_remote_secret_lookup_by_usage_args,
- .ret_filter = (xdrproc_t) xdr_remote_secret_lookup_by_usage_ret,
-},
-{ /* DomainMigratePrepareTunnel => 148 */
- .fn = (dispatch_fn) remoteDispatchDomainMigratePrepareTunnel,
- .args_filter = (xdrproc_t) xdr_remote_domain_migrate_prepare_tunnel_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* IsSecure => 149 */
- .fn = (dispatch_fn) remoteDispatchIsSecure,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_is_secure_ret,
-},
-{ /* DomainIsActive => 150 */
- .fn = (dispatch_fn) remoteDispatchDomainIsActive,
- .args_filter = (xdrproc_t) xdr_remote_domain_is_active_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_is_active_ret,
-},
-{ /* DomainIsPersistent => 151 */
- .fn = (dispatch_fn) remoteDispatchDomainIsPersistent,
- .args_filter = (xdrproc_t) xdr_remote_domain_is_persistent_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_is_persistent_ret,
-},
-{ /* NetworkIsActive => 152 */
- .fn = (dispatch_fn) remoteDispatchNetworkIsActive,
- .args_filter = (xdrproc_t) xdr_remote_network_is_active_args,
- .ret_filter = (xdrproc_t) xdr_remote_network_is_active_ret,
-},
-{ /* NetworkIsPersistent => 153 */
- .fn = (dispatch_fn) remoteDispatchNetworkIsPersistent,
- .args_filter = (xdrproc_t) xdr_remote_network_is_persistent_args,
- .ret_filter = (xdrproc_t) xdr_remote_network_is_persistent_ret,
-},
-{ /* StoragePoolIsActive => 154 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolIsActive,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_is_active_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_is_active_ret,
-},
-{ /* StoragePoolIsPersistent => 155 */
- .fn = (dispatch_fn) remoteDispatchStoragePoolIsPersistent,
- .args_filter = (xdrproc_t) xdr_remote_storage_pool_is_persistent_args,
- .ret_filter = (xdrproc_t) xdr_remote_storage_pool_is_persistent_ret,
-},
-{ /* InterfaceIsActive => 156 */
- .fn = (dispatch_fn) remoteDispatchInterfaceIsActive,
- .args_filter = (xdrproc_t) xdr_remote_interface_is_active_args,
- .ret_filter = (xdrproc_t) xdr_remote_interface_is_active_ret,
-},
-{ /* GetLibVersion => 157 */
- .fn = (dispatch_fn) remoteDispatchGetLibVersion,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_get_lib_version_ret,
-},
-{ /* CpuCompare => 158 */
- .fn = (dispatch_fn) remoteDispatchCpuCompare,
- .args_filter = (xdrproc_t) xdr_remote_cpu_compare_args,
- .ret_filter = (xdrproc_t) xdr_remote_cpu_compare_ret,
-},
-{ /* DomainMemoryStats => 159 */
- .fn = (dispatch_fn) remoteDispatchDomainMemoryStats,
- .args_filter = (xdrproc_t) xdr_remote_domain_memory_stats_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_memory_stats_ret,
-},
-{ /* DomainAttachDeviceFlags => 160 */
- .fn = (dispatch_fn) remoteDispatchDomainAttachDeviceFlags,
- .args_filter = (xdrproc_t) xdr_remote_domain_attach_device_flags_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainDetachDeviceFlags => 161 */
- .fn = (dispatch_fn) remoteDispatchDomainDetachDeviceFlags,
- .args_filter = (xdrproc_t) xdr_remote_domain_detach_device_flags_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* CpuBaseline => 162 */
- .fn = (dispatch_fn) remoteDispatchCpuBaseline,
- .args_filter = (xdrproc_t) xdr_remote_cpu_baseline_args,
- .ret_filter = (xdrproc_t) xdr_remote_cpu_baseline_ret,
-},
-{ /* DomainGetJobInfo => 163 */
- .fn = (dispatch_fn) remoteDispatchDomainGetJobInfo,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_job_info_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_job_info_ret,
-},
-{ /* DomainAbortJob => 164 */
- .fn = (dispatch_fn) remoteDispatchDomainAbortJob,
- .args_filter = (xdrproc_t) xdr_remote_domain_abort_job_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StorageVolWipe => 165 */
- .fn = (dispatch_fn) remoteDispatchStorageVolWipe,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_wipe_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainMigrateSetMaxDowntime => 166 */
- .fn = (dispatch_fn) remoteDispatchDomainMigrateSetMaxDowntime,
- .args_filter = (xdrproc_t) xdr_remote_domain_migrate_set_max_downtime_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainEventsRegisterAny => 167 */
- .fn = (dispatch_fn) remoteDispatchDomainEventsRegisterAny,
- .args_filter = (xdrproc_t) xdr_remote_domain_events_register_any_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainEventsDeregisterAny => 168 */
- .fn = (dispatch_fn) remoteDispatchDomainEventsDeregisterAny,
- .args_filter = (xdrproc_t) xdr_remote_domain_events_deregister_any_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* Async event DomainEventReboot => 169 */
- .fn = NULL,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* Async event DomainEventRtcChange => 170 */
- .fn = NULL,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* Async event DomainEventWatchdog => 171 */
- .fn = NULL,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* Async event DomainEventIoError => 172 */
- .fn = NULL,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* Async event DomainEventGraphics => 173 */
- .fn = NULL,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainUpdateDeviceFlags => 174 */
- .fn = (dispatch_fn) remoteDispatchDomainUpdateDeviceFlags,
- .args_filter = (xdrproc_t) xdr_remote_domain_update_device_flags_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* NwfilterLookupByName => 175 */
- .fn = (dispatch_fn) remoteDispatchNwfilterLookupByName,
- .args_filter = (xdrproc_t) xdr_remote_nwfilter_lookup_by_name_args,
- .ret_filter = (xdrproc_t) xdr_remote_nwfilter_lookup_by_name_ret,
-},
-{ /* NwfilterLookupByUuid => 176 */
- .fn = (dispatch_fn) remoteDispatchNwfilterLookupByUuid,
- .args_filter = (xdrproc_t) xdr_remote_nwfilter_lookup_by_uuid_args,
- .ret_filter = (xdrproc_t) xdr_remote_nwfilter_lookup_by_uuid_ret,
-},
-{ /* NwfilterGetXmlDesc => 177 */
- .fn = (dispatch_fn) remoteDispatchNwfilterGetXmlDesc,
- .args_filter = (xdrproc_t) xdr_remote_nwfilter_get_xml_desc_args,
- .ret_filter = (xdrproc_t) xdr_remote_nwfilter_get_xml_desc_ret,
-},
-{ /* NumOfNwfilters => 178 */
- .fn = (dispatch_fn) remoteDispatchNumOfNwfilters,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_remote_num_of_nwfilters_ret,
-},
-{ /* ListNwfilters => 179 */
- .fn = (dispatch_fn) remoteDispatchListNwfilters,
- .args_filter = (xdrproc_t) xdr_remote_list_nwfilters_args,
- .ret_filter = (xdrproc_t) xdr_remote_list_nwfilters_ret,
-},
-{ /* NwfilterDefineXml => 180 */
- .fn = (dispatch_fn) remoteDispatchNwfilterDefineXml,
- .args_filter = (xdrproc_t) xdr_remote_nwfilter_define_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_nwfilter_define_xml_ret,
-},
-{ /* NwfilterUndefine => 181 */
- .fn = (dispatch_fn) remoteDispatchNwfilterUndefine,
- .args_filter = (xdrproc_t) xdr_remote_nwfilter_undefine_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainManagedSave => 182 */
- .fn = (dispatch_fn) remoteDispatchDomainManagedSave,
- .args_filter = (xdrproc_t) xdr_remote_domain_managed_save_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainHasManagedSaveImage => 183 */
- .fn = (dispatch_fn) remoteDispatchDomainHasManagedSaveImage,
- .args_filter = (xdrproc_t) xdr_remote_domain_has_managed_save_image_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_has_managed_save_image_ret,
-},
-{ /* DomainManagedSaveRemove => 184 */
- .fn = (dispatch_fn) remoteDispatchDomainManagedSaveRemove,
- .args_filter = (xdrproc_t) xdr_remote_domain_managed_save_remove_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainSnapshotCreateXml => 185 */
- .fn = (dispatch_fn) remoteDispatchDomainSnapshotCreateXml,
- .args_filter = (xdrproc_t) xdr_remote_domain_snapshot_create_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_snapshot_create_xml_ret,
-},
-{ /* DomainSnapshotDumpXml => 186 */
- .fn = (dispatch_fn) remoteDispatchDomainSnapshotDumpXml,
- .args_filter = (xdrproc_t) xdr_remote_domain_snapshot_dump_xml_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_snapshot_dump_xml_ret,
-},
-{ /* DomainSnapshotNum => 187 */
- .fn = (dispatch_fn) remoteDispatchDomainSnapshotNum,
- .args_filter = (xdrproc_t) xdr_remote_domain_snapshot_num_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_snapshot_num_ret,
-},
-{ /* DomainSnapshotListNames => 188 */
- .fn = (dispatch_fn) remoteDispatchDomainSnapshotListNames,
- .args_filter = (xdrproc_t) xdr_remote_domain_snapshot_list_names_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_snapshot_list_names_ret,
-},
-{ /* DomainSnapshotLookupByName => 189 */
- .fn = (dispatch_fn) remoteDispatchDomainSnapshotLookupByName,
- .args_filter = (xdrproc_t) xdr_remote_domain_snapshot_lookup_by_name_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_snapshot_lookup_by_name_ret,
-},
-{ /* DomainHasCurrentSnapshot => 190 */
- .fn = (dispatch_fn) remoteDispatchDomainHasCurrentSnapshot,
- .args_filter = (xdrproc_t) xdr_remote_domain_has_current_snapshot_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_has_current_snapshot_ret,
-},
-{ /* DomainSnapshotCurrent => 191 */
- .fn = (dispatch_fn) remoteDispatchDomainSnapshotCurrent,
- .args_filter = (xdrproc_t) xdr_remote_domain_snapshot_current_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_snapshot_current_ret,
-},
-{ /* DomainRevertToSnapshot => 192 */
- .fn = (dispatch_fn) remoteDispatchDomainRevertToSnapshot,
- .args_filter = (xdrproc_t) xdr_remote_domain_revert_to_snapshot_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainSnapshotDelete => 193 */
- .fn = (dispatch_fn) remoteDispatchDomainSnapshotDelete,
- .args_filter = (xdrproc_t) xdr_remote_domain_snapshot_delete_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainGetBlockInfo => 194 */
- .fn = (dispatch_fn) remoteDispatchDomainGetBlockInfo,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_block_info_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_block_info_ret,
-},
-{ /* Async event DomainEventIoErrorReason => 195 */
- .fn = NULL,
- .args_filter = (xdrproc_t) xdr_void,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainCreateWithFlags => 196 */
- .fn = (dispatch_fn) remoteDispatchDomainCreateWithFlags,
- .args_filter = (xdrproc_t) xdr_remote_domain_create_with_flags_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_create_with_flags_ret,
-},
-{ /* DomainSetMemoryParameters => 197 */
- .fn = (dispatch_fn) remoteDispatchDomainSetMemoryParameters,
- .args_filter = (xdrproc_t) xdr_remote_domain_set_memory_parameters_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainGetMemoryParameters => 198 */
- .fn = (dispatch_fn) remoteDispatchDomainGetMemoryParameters,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_memory_parameters_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_memory_parameters_ret,
-},
-{ /* DomainSetVcpusFlags => 199 */
- .fn = (dispatch_fn) remoteDispatchDomainSetVcpusFlags,
- .args_filter = (xdrproc_t) xdr_remote_domain_set_vcpus_flags_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainGetVcpusFlags => 200 */
- .fn = (dispatch_fn) remoteDispatchDomainGetVcpusFlags,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_vcpus_flags_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_vcpus_flags_ret,
-},
-{ /* DomainOpenConsole => 201 */
- .fn = (dispatch_fn) remoteDispatchDomainOpenConsole,
- .args_filter = (xdrproc_t) xdr_remote_domain_open_console_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainIsUpdated => 202 */
- .fn = (dispatch_fn) remoteDispatchDomainIsUpdated,
- .args_filter = (xdrproc_t) xdr_remote_domain_is_updated_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_is_updated_ret,
-},
-{ /* GetSysinfo => 203 */
- .fn = (dispatch_fn) remoteDispatchGetSysinfo,
- .args_filter = (xdrproc_t) xdr_remote_get_sysinfo_args,
- .ret_filter = (xdrproc_t) xdr_remote_get_sysinfo_ret,
-},
-{ /* DomainSetMemoryFlags => 204 */
- .fn = (dispatch_fn) remoteDispatchDomainSetMemoryFlags,
- .args_filter = (xdrproc_t) xdr_remote_domain_set_memory_flags_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainSetBlkioParameters => 205 */
- .fn = (dispatch_fn) remoteDispatchDomainSetBlkioParameters,
- .args_filter = (xdrproc_t) xdr_remote_domain_set_blkio_parameters_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* DomainGetBlkioParameters => 206 */
- .fn = (dispatch_fn) remoteDispatchDomainGetBlkioParameters,
- .args_filter = (xdrproc_t) xdr_remote_domain_get_blkio_parameters_args,
- .ret_filter = (xdrproc_t) xdr_remote_domain_get_blkio_parameters_ret,
-},
-{ /* DomainMigrateSetMaxSpeed => 207 */
- .fn = (dispatch_fn) remoteDispatchDomainMigrateSetMaxSpeed,
- .args_filter = (xdrproc_t) xdr_remote_domain_migrate_set_max_speed_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StorageVolUpload => 208 */
- .fn = (dispatch_fn) remoteDispatchStorageVolUpload,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_upload_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
-{ /* StorageVolDownload => 209 */
- .fn = (dispatch_fn) remoteDispatchStorageVolDownload,
- .args_filter = (xdrproc_t) xdr_remote_storage_vol_download_args,
- .ret_filter = (xdrproc_t) xdr_void,
-},
--
1.7.3.1
--
Thanks,
Hu Tao
14 years
[libvirt] [PATCH 0/4] support for changing cpu.shares for inactive domains from virsh cmd
by Hu Tao
Currently cpu.shares can only be configured by editing domains' xmls.
this series enables us to change cpu.shares from virsh cmd schedinfo
even when domain is inactive.
Hu Tao (4):
introduce virDomainSetSchedulerParametersFlags
qemu: introduce qemuSetSchedulerParametersFlags
remote: introduce remoteSetSchedulerParametersFlags
virsh: add --persistent to cmd schedinfo
daemon/remote.c | 71 +++++++++++++++++++++++++++++++++++
daemon/remote_dispatch_args.h | 1 +
daemon/remote_dispatch_prototypes.h | 8 ++++
daemon/remote_dispatch_table.h | 5 ++
include/libvirt/libvirt.h.in | 13 ++++++
python/generator.py | 1 +
src/driver.h | 8 ++++
src/esx/esx_driver.c | 1 +
src/libvirt.c | 62 ++++++++++++++++++++++++++++++
src/libvirt_public.syms | 5 ++
src/libxl/libxl_driver.c | 1 +
src/lxc/lxc_driver.c | 1 +
src/openvz/openvz_driver.c | 1 +
src/phyp/phyp_driver.c | 1 +
src/qemu/qemu_driver.c | 66 +++++++++++++++++++++++++-------
src/remote/remote_driver.c | 69 ++++++++++++++++++++++++++++++++++
src/remote/remote_protocol.c | 15 +++++++
src/remote/remote_protocol.h | 12 ++++++
src/remote/remote_protocol.x | 10 ++++-
src/test/test_driver.c | 1 +
src/uml/uml_driver.c | 1 +
src/vbox/vbox_tmpl.c | 1 +
src/vmware/vmware_driver.c | 1 +
src/xen/xen_driver.c | 1 +
src/xenapi/xenapi_driver.c | 1 +
tools/virsh.c | 14 ++++++-
26 files changed, 354 insertions(+), 17 deletions(-)
--
1.7.3.1
--
Thanks,
Hu Tao
14 years
[libvirt] [PATCH] virsh: improve TLS certificate error messages
by Doug Goldstein
Print the name of the CA cert, certificate, and key file that resulted
in the failure so that the user has an idea what to troubleshoot.
Signed-off-by: Doug Goldstein <cardoe(a)gentoo.org>
---
src/remote/remote_driver.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index e30780c..4c3bdf3 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -1268,8 +1268,8 @@ initialize_gnutls(char *pkipath, int flags)
GNUTLS_X509_FMT_PEM);
if (err < 0) {
remoteError(VIR_ERR_GNUTLS_ERROR,
- _("unable to load CA certificate: %s"),
- gnutls_strerror (err));
+ _("unable to load CA certificate '%s': %s"),
+ libvirt_cacert, gnutls_strerror (err));
goto error;
}
@@ -1283,8 +1283,9 @@ initialize_gnutls(char *pkipath, int flags)
GNUTLS_X509_FMT_PEM);
if (err < 0) {
remoteError(VIR_ERR_GNUTLS_ERROR,
- _("unable to load private key/certificate: %s"),
- gnutls_strerror (err));
+ _("unable to load private key '%s' and/or "
+ "certificate '%s': %s"), libvirt_clientkey,
+ libvirt_clientcert, gnutls_strerror (err));
goto error;
}
--
1.7.5.rc3
14 years
[libvirt] [PATCH v2] Add warning message to XML definition files stored on disk
by Michal Privoznik
Users often edit XML file stored in configuration directory
thinking of modifying a domain/network/pool/etc. Thus it is wise
to let them know they are using the wrong way and give them hint.
---
diff to v1:
- instead of pointing users to web, write down the actual virsh command
- write to passed FD instead of buffer
src/conf/domain_conf.c | 10 +++++--
src/conf/domain_conf.h | 3 +-
src/conf/network_conf.c | 8 ++++-
src/conf/network_conf.h | 3 +-
src/conf/nwfilter_conf.c | 14 ++++++++--
src/conf/nwfilter_conf.h | 6 +++-
src/conf/storage_conf.c | 6 ++++-
src/conf/storage_conf.h | 3 +-
src/libvirt_private.syms | 1 +
src/nwfilter/nwfilter_driver.c | 3 +-
src/storage/storage_driver.c | 3 +-
src/util/util.c | 50 ++++++++++++++++++++++++++++++++++++++++
src/util/util.h | 20 ++++++++++++++++
13 files changed, 114 insertions(+), 16 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 2a681d9..a4be770 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8485,7 +8485,8 @@ error:
int virDomainSaveXML(const char *configDir,
virDomainDefPtr def,
- const char *xml)
+ const char *xml,
+ unsigned int flags)
{
char *configFile = NULL;
int fd = -1, ret = -1;
@@ -8510,6 +8511,9 @@ int virDomainSaveXML(const char *configDir,
goto cleanup;
}
+ if (flags & VIR_XML_EMIT_WARNING)
+ virEmitXMLWarning(fd, def->name, VIR_XML_EDIT_COMMAND_DOMAIN);
+
towrite = strlen(xml);
if (safewrite(fd, xml, towrite) < 0) {
virReportSystemError(errno,
@@ -8543,7 +8547,7 @@ int virDomainSaveConfig(const char *configDir,
VIR_DOMAIN_XML_WRITE_FLAGS)))
goto cleanup;
- if (virDomainSaveXML(configDir, def, xml))
+ if (virDomainSaveXML(configDir, def, xml, VIR_XML_EMIT_WARNING))
goto cleanup;
ret = 0;
@@ -8563,7 +8567,7 @@ int virDomainSaveStatus(virCapsPtr caps,
if (!(xml = virDomainObjFormat(caps, obj, flags)))
goto cleanup;
- if (virDomainSaveXML(statusDir, obj->def, xml))
+ if (virDomainSaveXML(statusDir, obj->def, xml, VIR_XML_EMIT_WARNING))
goto cleanup;
ret = 0;
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 1dadf98..3841f1b 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1346,7 +1346,8 @@ void virDomainControllerInsertPreAlloced(virDomainDefPtr def,
int virDomainSaveXML(const char *configDir,
virDomainDefPtr def,
- const char *xml);
+ const char *xml,
+ unsigned int flags);
int virDomainSaveConfig(const char *configDir,
virDomainDefPtr def);
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index 5738757..012caa8 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -899,7 +899,8 @@ char *virNetworkDefFormat(const virNetworkDefPtr def)
int virNetworkSaveXML(const char *configDir,
virNetworkDefPtr def,
- const char *xml)
+ const char *xml,
+ unsigned int flags)
{
char *configFile = NULL;
int fd = -1, ret = -1;
@@ -925,6 +926,9 @@ int virNetworkSaveXML(const char *configDir,
goto cleanup;
}
+ if (flags & VIR_XML_EMIT_WARNING)
+ virEmitXMLWarning(fd, def->name, VIR_XML_EDIT_COMMAND_NETWORK);
+
towrite = strlen(xml);
if (safewrite(fd, xml, towrite) < 0) {
virReportSystemError(errno,
@@ -959,7 +963,7 @@ int virNetworkSaveConfig(const char *configDir,
if (!(xml = virNetworkDefFormat(def)))
goto cleanup;
- if (virNetworkSaveXML(configDir, def, xml))
+ if (virNetworkSaveXML(configDir, def, xml, VIR_XML_EMIT_WARNING))
goto cleanup;
ret = 0;
diff --git a/src/conf/network_conf.h b/src/conf/network_conf.h
index 281124b..6e39234 100644
--- a/src/conf/network_conf.h
+++ b/src/conf/network_conf.h
@@ -162,7 +162,8 @@ int virNetworkIpDefNetmask(const virNetworkIpDefPtr def,
int virNetworkSaveXML(const char *configDir,
virNetworkDefPtr def,
- const char *xml);
+ const char *xml,
+ unsigned int flags);
int virNetworkSaveConfig(const char *configDir,
virNetworkDefPtr def);
diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c
index 615c0f1..66a31d1 100644
--- a/src/conf/nwfilter_conf.c
+++ b/src/conf/nwfilter_conf.c
@@ -2223,7 +2223,8 @@ virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, const char *name)
int virNWFilterSaveXML(const char *configDir,
virNWFilterDefPtr def,
- const char *xml)
+ const char *xml,
+ unsigned int flags)
{
char *configFile = NULL;
int fd = -1, ret = -1;
@@ -2249,6 +2250,9 @@ int virNWFilterSaveXML(const char *configDir,
goto cleanup;
}
+ if (flags & VIR_XML_EMIT_WARNING)
+ virEmitXMLWarning(fd, def->name, VIR_XML_EDIT_COMMAND_NWFILTER);
+
towrite = strlen(xml);
if (safewrite(fd, xml, towrite) < 0) {
virReportSystemError(errno,
@@ -2283,7 +2287,7 @@ int virNWFilterSaveConfig(const char *configDir,
if (!(xml = virNWFilterDefFormat(def)))
goto cleanup;
- if (virNWFilterSaveXML(configDir, def, xml))
+ if (virNWFilterSaveXML(configDir, def, xml, VIR_XML_EMIT_WARNING))
goto cleanup;
ret = 0;
@@ -2608,7 +2612,8 @@ virNWFilterLoadAllConfigs(virConnectPtr conn,
int
virNWFilterObjSaveDef(virNWFilterDriverStatePtr driver,
virNWFilterObjPtr nwfilter,
- virNWFilterDefPtr def)
+ virNWFilterDefPtr def,
+ unsigned int flags)
{
char *xml;
int fd = -1, ret = -1;
@@ -2645,6 +2650,9 @@ virNWFilterObjSaveDef(virNWFilterDriverStatePtr driver,
goto cleanup;
}
+ if (flags & VIR_XML_EMIT_WARNING)
+ virEmitXMLWarning(fd, def->name, VIR_XML_EDIT_COMMAND_NWFILTER);
+
towrite = strlen(xml);
if (safewrite(fd, xml, towrite) != towrite) {
virReportSystemError(errno,
diff --git a/src/conf/nwfilter_conf.h b/src/conf/nwfilter_conf.h
index 12e2a5c..219bf7e 100644
--- a/src/conf/nwfilter_conf.h
+++ b/src/conf/nwfilter_conf.h
@@ -603,7 +603,8 @@ virNWFilterObjPtr virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters,
int virNWFilterObjSaveDef(virNWFilterDriverStatePtr driver,
virNWFilterObjPtr nwfilter,
- virNWFilterDefPtr def);
+ virNWFilterDefPtr def,
+ unsigned int flags);
int virNWFilterObjDeleteDef(virNWFilterObjPtr nwfilter);
@@ -621,7 +622,8 @@ char *virNWFilterDefFormat(virNWFilterDefPtr def);
int virNWFilterSaveXML(const char *configDir,
virNWFilterDefPtr def,
- const char *xml);
+ const char *xml,
+ unsigned int flags);
int virNWFilterSaveConfig(const char *configDir,
virNWFilterDefPtr def);
diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index 116898d..b729bbe 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -1509,7 +1509,8 @@ virStoragePoolLoadAllConfigs(virStoragePoolObjListPtr pools,
int
virStoragePoolObjSaveDef(virStorageDriverStatePtr driver,
virStoragePoolObjPtr pool,
- virStoragePoolDefPtr def) {
+ virStoragePoolDefPtr def,
+ unsigned int flags) {
char *xml;
int fd = -1, ret = -1;
ssize_t towrite;
@@ -1551,6 +1552,9 @@ virStoragePoolObjSaveDef(virStorageDriverStatePtr driver,
goto cleanup;
}
+ if (flags & VIR_XML_EMIT_WARNING)
+ virEmitXMLWarning(fd, def->name, VIR_XML_EDIT_COMMAND_STORAGE_POOL);
+
towrite = strlen(xml);
if (safewrite(fd, xml, towrite) != towrite) {
virReportSystemError(errno,
diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h
index 271441a..9bbc25d 100644
--- a/src/conf/storage_conf.h
+++ b/src/conf/storage_conf.h
@@ -366,7 +366,8 @@ virStoragePoolObjPtr virStoragePoolObjAssignDef(virStoragePoolObjListPtr pools,
int virStoragePoolObjSaveDef(virStorageDriverStatePtr driver,
virStoragePoolObjPtr pool,
- virStoragePoolDefPtr def);
+ virStoragePoolDefPtr def,
+ unsigned int flags);
int virStoragePoolObjDeleteDef(virStoragePoolObjPtr pool);
void virStorageVolDefFree(virStorageVolDefPtr def);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 1b22be6..2cbec44 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -897,6 +897,7 @@ virArgvToString;
virAsprintf;
virBuildPathInternal;
virDirCreate;
+virEmitXMLWarning;
virEnumFromString;
virEnumToString;
virEventAddHandle;
diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c
index 8af3f8a..2d0db73 100644
--- a/src/nwfilter/nwfilter_driver.c
+++ b/src/nwfilter/nwfilter_driver.c
@@ -343,7 +343,8 @@ nwfilterDefine(virConnectPtr conn,
if (!(nwfilter = virNWFilterObjAssignDef(conn, &driver->nwfilters, def)))
goto cleanup;
- if (virNWFilterObjSaveDef(driver, nwfilter, def) < 0) {
+ if (virNWFilterObjSaveDef(driver, nwfilter, def,
+ VIR_XML_EMIT_WARNING) < 0) {
virNWFilterObjRemove(&driver->nwfilters, nwfilter);
def = NULL;
goto cleanup;
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 5118ffb..acfc791 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -586,7 +586,8 @@ storagePoolDefine(virConnectPtr conn,
if (!(pool = virStoragePoolObjAssignDef(&driver->pools, def)))
goto cleanup;
- if (virStoragePoolObjSaveDef(driver, pool, def) < 0) {
+ if (virStoragePoolObjSaveDef(driver, pool, def,
+ VIR_XML_EMIT_WARNING) < 0) {
virStoragePoolObjRemove(&driver->pools, pool);
def = NULL;
goto cleanup;
diff --git a/src/util/util.c b/src/util/util.c
index 9041ab6..a622e08 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -3207,3 +3207,53 @@ bool virIsDevMapperDevice(const char *devname ATTRIBUTE_UNUSED)
return false;
}
#endif
+
+VIR_ENUM_IMPL(virXMLEditCommand, VIR_XML_EDIT_COMMAND_LAST,
+ "",
+ "edit",
+ "net-edit",
+ "nwfilter-edit",
+ "pool-edit")
+
+int virEmitXMLWarning(int fd,
+ const char *name,
+ unsigned int cmd) {
+ size_t len;
+ const char *cmd_str = virXMLEditCommandTypeToString(cmd);
+ const char *prologue = _("<!--\n\
+WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE \n\
+OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:\n\
+virsh ");
+ const char *epilogue = _("\n\
+or other application using the libvirt API.\n\
+-->\n\n");
+
+ if (fd < 0 || !name)
+ return -1;
+
+ if (!cmd_str || STREQ(cmd_str, "")) {
+ VIR_WARN("unknown command code %d", cmd);
+ return -1;
+ }
+
+ len = strlen(prologue);
+ if (safewrite(fd, prologue, len) != len)
+ return -1;
+
+ len = strlen(cmd_str);
+ if (safewrite(fd, cmd_str, len) != len)
+ return -1;
+
+ if (safewrite(fd, " ", 1) != 1)
+ return -1;
+
+ len = strlen(name);
+ if (safewrite(fd, name, len) != len)
+ return -1;
+
+ len = strlen(epilogue);
+ if (safewrite(fd, epilogue, len) != len)
+ return -1;
+
+ return 0;
+}
diff --git a/src/util/util.h b/src/util/util.h
index d320c40..c0ca5f4 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -299,4 +299,24 @@ int virBuildPathInternal(char **path, ...) ATTRIBUTE_SENTINEL;
char *virTimestamp(void);
bool virIsDevMapperDevice(const char *devname) ATTRIBUTE_NONNULL(1);
+
+enum {
+ VIR_XML_EMIT_WARNING = (1 << 0),
+};
+
+enum virXMLEditCommand {
+ VIR_XML_EDIT_COMMAND_UNKNOWN = 0,
+ VIR_XML_EDIT_COMMAND_DOMAIN,
+ VIR_XML_EDIT_COMMAND_NETWORK,
+ VIR_XML_EDIT_COMMAND_NWFILTER,
+ VIR_XML_EDIT_COMMAND_STORAGE_POOL,
+
+ VIR_XML_EDIT_COMMAND_LAST
+};
+
+VIR_ENUM_DECL(virXMLEditCommand)
+
+int virEmitXMLWarning(int fd,
+ const char *name,
+ unsigned int cmd) ATTRIBUTE_NONNULL(2);
#endif /* __VIR_UTIL_H__ */
--
1.7.4.4
14 years
[libvirt] [PATCH] virsh: fix regression in log to file
by Supriya Kannery
Commit 36deff04 introduced a regression due to which virsh is not able
to log to a file - msg_buf was changed from an array to a pointer
without corresponding change to usage of "sizeof()".
Fix regression in virsh logging
Signed-off-by: Supriya Kannery <supriyak(a)in.ibm.com>
---
tools/virsh.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: libvirt/tools/virsh.c
===================================================================
--- libvirt.orig/tools/virsh.c
+++ libvirt/tools/virsh.c
@@ -12257,7 +12257,7 @@ vshOutputLogFile(vshControl *ctl, int lo
*/
gettimeofday(&stTimeval, NULL);
stTm = localtime(&stTimeval.tv_sec);
- snprintf(msg_buf, sizeof(msg_buf),
+ snprintf(msg_buf, MSG_BUFFER,
"[%d.%02d.%02d %02d:%02d:%02d ",
(1900 + stTm->tm_year),
(1 + stTm->tm_mon),
@@ -12265,7 +12265,7 @@ vshOutputLogFile(vshControl *ctl, int lo
(stTm->tm_hour),
(stTm->tm_min),
(stTm->tm_sec));
- snprintf(msg_buf + strlen(msg_buf), sizeof(msg_buf) - strlen(msg_buf),
+ snprintf(msg_buf + strlen(msg_buf), MSG_BUFFER - strlen(msg_buf),
"%s] ", SIGN_NAME);
switch (log_level) {
case VSH_ERR_DEBUG:
@@ -12287,13 +12287,13 @@ vshOutputLogFile(vshControl *ctl, int lo
lvl = LVL_DEBUG;
break;
}
- snprintf(msg_buf + strlen(msg_buf), sizeof(msg_buf) - strlen(msg_buf),
+ snprintf(msg_buf + strlen(msg_buf), MSG_BUFFER - strlen(msg_buf),
"%s ", lvl);
- vsnprintf(msg_buf + strlen(msg_buf), sizeof(msg_buf) - strlen(msg_buf),
+ vsnprintf(msg_buf + strlen(msg_buf), MSG_BUFFER - strlen(msg_buf),
msg_format, ap);
if (msg_buf[strlen(msg_buf) - 1] != '\n')
- snprintf(msg_buf + strlen(msg_buf), sizeof(msg_buf) -
strlen(msg_buf), "\n");
+ snprintf(msg_buf + strlen(msg_buf), MSG_BUFFER -
strlen(msg_buf), "\n");
/* write log */
if (safewrite(ctl->log_fd, msg_buf, strlen(msg_buf)) < 0) {
14 years