[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.
13 years, 7 months
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’.
13 years, 7 months
[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
13 years, 7 months
[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'
13 years, 7 months
[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
13 years, 7 months
[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
13 years, 7 months
[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
13 years, 7 months
[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
13 years, 7 months
[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) {
13 years, 7 months
[libvirt] [PATCH] docs: <filesystem> attr is 'accessmode', not 'mode'
by Cole Robinson
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
docs/formatdomain.html.in | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 5013c48..dcfcd94 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -917,7 +917,7 @@
<source name='my-vm-template'/>
<target dir='/'/>
</filesystem>
- <filesystem type='mount' >
+ <filesystem type='mount' accessmode='passthrough'>
<source dir='/export/to/guest'/>
<target dir='/import/from/host'/>
<readonly/>
@@ -939,7 +939,7 @@
A host directory to mount in the guest. Used by LXC,
OpenVZ <span class="since">(since 0.6.2)</span>
and QEMU/KVM <span class="since">(since 0.8.5)</span>.
- This is the default <code>mode</code> if one is not specified.
+ This is the default <code>type</code> if one is not specified.
</dd>
<dt><code>type='template'</code></dt>
<dd>
@@ -955,27 +955,27 @@
</dd>
</dl>
- The filesystem block has an optional attribute <code>mode</code>
+ The filesystem block has an optional attribute <code>accessmode</code>
which specifies the security mode for accessing the source
<span class="since">(since 0.8.5)</span>. Currently this only works
with <code>type='mount'</code> for the QEMU/KVM driver. The possible
values are:
<dl>
- <dt><code>mode='passthrough'</code></dt>
+ <dt><code>accessmode='passthrough'</code></dt>
<dd>
The <code>source</code> is accessed with the permissions of the
- user inside the guest. This is the default <code>mode</code> if
+ user inside the guest. This is the default <code>accessmode</code> if
one is not specified.
<a href="http://lists.gnu.org/archive/html/qemu-devel/2010-05/msg02673.html">More info</a>
</dd>
- <dt><code>mode='mapped'</code></dt>
+ <dt><code>accessmode='mapped'</code></dt>
<dd>
The <code>source</code> is accessed with the permissions of the
hypervisor (QEMU process).
<a href="http://lists.gnu.org/archive/html/qemu-devel/2010-05/msg02673.html">More info</a>
</dd>
- <dt><code>mode='squash'</code></dt>
+ <dt><code>accessmode='squash'</code></dt>
<dd>
Similar to 'passthrough', the exception is that failure of
privileged operations like 'chown' are ignored. This makes a
--
1.7.4.4
13 years, 7 months