libvirt/src/remote/remote_protocol.h

2551 lines
102 KiB
C
Raw Normal View History

/*
* Please do not edit this file.
* It was generated using rpcgen.
*/
#ifndef _RP_H_RPCGEN
#define _RP_H_RPCGEN
#include <rpc/rpc.h>
#ifdef __cplusplus
extern "C" {
#endif
#include "internal.h"
#include <arpa/inet.h>
#define REMOTE_MESSAGE_MAX 262144
#define REMOTE_MESSAGE_HEADER_MAX 24
#define REMOTE_MESSAGE_PAYLOAD_MAX 262120
#define REMOTE_STRING_MAX 65536
typedef char *remote_nonnull_string;
typedef remote_nonnull_string *remote_string;
#define REMOTE_DOMAIN_ID_LIST_MAX 16384
#define REMOTE_DOMAIN_NAME_LIST_MAX 1024
#define REMOTE_CPUMAP_MAX 256
#define REMOTE_VCPUINFO_MAX 2048
#define REMOTE_CPUMAPS_MAX 16384
#define REMOTE_MIGRATE_COOKIE_MAX 256
#define REMOTE_NETWORK_NAME_LIST_MAX 256
#define REMOTE_INTERFACE_NAME_LIST_MAX 256
#define REMOTE_DEFINED_INTERFACE_NAME_LIST_MAX 256
#define REMOTE_STORAGE_POOL_NAME_LIST_MAX 256
#define REMOTE_STORAGE_VOL_NAME_LIST_MAX 1024
#define REMOTE_NODE_DEVICE_NAME_LIST_MAX 16384
#define REMOTE_NODE_DEVICE_CAPS_LIST_MAX 16384
#define REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX 16
#define REMOTE_NODE_MAX_CELLS 1024
#define REMOTE_AUTH_SASL_DATA_MAX 65536
#define REMOTE_AUTH_TYPE_LIST_MAX 20
#define REMOTE_DOMAIN_MEMORY_STATS_MAX 1024
#define REMOTE_DOMAIN_BLOCK_PEEK_BUFFER_MAX 65536
#define REMOTE_DOMAIN_MEMORY_PEEK_BUFFER_MAX 65536
#define REMOTE_SECURITY_MODEL_MAX VIR_SECURITY_MODEL_BUFLEN
#define REMOTE_SECURITY_LABEL_MAX VIR_SECURITY_LABEL_BUFLEN
#define REMOTE_SECURITY_DOI_MAX VIR_SECURITY_DOI_BUFLEN
#define REMOTE_SECRET_VALUE_MAX 65536
#define REMOTE_SECRET_UUID_LIST_MAX 16384
#define REMOTE_CPU_BASELINE_MAX 256
typedef char remote_uuid[VIR_UUID_BUFLEN];
struct remote_nonnull_domain {
remote_nonnull_string name;
remote_uuid uuid;
int id;
};
typedef struct remote_nonnull_domain remote_nonnull_domain;
struct remote_nonnull_network {
remote_nonnull_string name;
remote_uuid uuid;
};
typedef struct remote_nonnull_network remote_nonnull_network;
struct remote_nonnull_interface {
remote_nonnull_string name;
remote_nonnull_string mac;
};
typedef struct remote_nonnull_interface remote_nonnull_interface;
struct remote_nonnull_storage_pool {
remote_nonnull_string name;
remote_uuid uuid;
};
typedef struct remote_nonnull_storage_pool remote_nonnull_storage_pool;
struct remote_nonnull_storage_vol {
remote_nonnull_string pool;
remote_nonnull_string name;
remote_nonnull_string key;
};
typedef struct remote_nonnull_storage_vol remote_nonnull_storage_vol;
struct remote_nonnull_node_device {
remote_nonnull_string name;
};
typedef struct remote_nonnull_node_device remote_nonnull_node_device;
struct remote_nonnull_secret {
Fix UUID handling in secrets/storage encryption APIs Convert all the secret/storage encryption APIs / wire format to handle UUIDs in raw format instead of non-canonical printable format. Guarentees data format correctness. * docs/schemas/storageencryption.rng: Make UUID mandatory for a secret and validate fully * docs/schemas/secret.rng: Fully validate UUID * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add virSecretLookupByUUID and virSecretGetUUID. Make virSecretGetUUIDString follow normal API design pattern * python/generator.py: Skip generation of virSecretGetUUID, virSecretGetUUIDString and virSecretLookupByUUID * python/libvir.c, python/libvirt-python-api.xml: Manual impl of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID * qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/ Fix get_nonnull_secret/make_nonnull_secret to use unsigned char * qemud/remote_protocol.x: Fix remote_nonnull_secret to use a remote_uuid instead of remote_nonnull_string for UUID field. Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an remote_uuid value * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h, qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate * src/datatypes.h, src/datatypes.c: Store UUID in raw format instead of printable. Change virGetSecret to use raw format UUID * src/driver.h: Rename virDrvSecretLookupByUUIDString to virDrvSecretLookupByUUID and use raw format UUID * src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID and re-implement virSecretLookupByUUIDString and virSecretGetUUIDString in terms of those * src/libvirt_public.syms: Add virSecretLookupByUUID and virSecretGetUUID * src/remote_internal.c: Rename remoteSecretLookupByUUIDString to remoteSecretLookupByUUID. Fix typo in args for remoteSecretDefineXML impl. Use raw UUID format for get_nonnull_secret and make_nonnull_secret * src/storage_encryption_conf.c, src/storage_encryption_conf.h: Storage UUID in raw format, and require it to be present in XML. Use UUID parser to validate. * secret_conf.h, secret_conf.c: Generate a UUID if none is provided. Storage UUID in raw format. * src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets in a filed with printable UUID, instead of base64 UUID. * src/virsh.c: Adjust for changed public API contract of virSecretGetUUIDString. * src/storage_Backend.c: DOn't undefine secret we just generated upon successful volume creation. Fix to handle raw UUIDs. Generate a non-clashing UUID * src/qemu_driver.c: Change to use lookupByUUID instead of lookupByUUIDString
2009-09-10 16:44:12 +00:00
remote_uuid uuid;
int usageType;
remote_nonnull_string usageID;
};
typedef struct remote_nonnull_secret remote_nonnull_secret;
typedef remote_nonnull_domain *remote_domain;
typedef remote_nonnull_network *remote_network;
typedef remote_nonnull_storage_pool *remote_storage_pool;
typedef remote_nonnull_storage_vol *remote_storage_vol;
typedef remote_nonnull_node_device *remote_node_device;
struct remote_error {
int code;
int domain;
remote_string message;
int level;
remote_domain dom;
remote_string str1;
remote_string str2;
remote_string str3;
int int1;
int int2;
remote_network net;
};
typedef struct remote_error remote_error;
enum remote_auth_type {
REMOTE_AUTH_NONE = 0,
REMOTE_AUTH_SASL = 1,
REMOTE_AUTH_POLKIT = 2,
};
typedef enum remote_auth_type remote_auth_type;
struct remote_vcpu_info {
u_int number;
int state;
uint64_t cpu_time;
int cpu;
};
typedef struct remote_vcpu_info remote_vcpu_info;
struct remote_sched_param_value {
int type;
union {
int i;
u_int ui;
int64_t l;
uint64_t ul;
double d;
int b;
} remote_sched_param_value_u;
};
typedef struct remote_sched_param_value remote_sched_param_value;
struct remote_sched_param {
remote_nonnull_string field;
remote_sched_param_value value;
};
typedef struct remote_sched_param remote_sched_param;
struct remote_open_args {
remote_string name;
int flags;
};
typedef struct remote_open_args remote_open_args;
struct remote_supports_feature_args {
int feature;
};
typedef struct remote_supports_feature_args remote_supports_feature_args;
struct remote_supports_feature_ret {
int supported;
};
typedef struct remote_supports_feature_ret remote_supports_feature_ret;
struct remote_get_type_ret {
remote_nonnull_string type;
};
typedef struct remote_get_type_ret remote_get_type_ret;
struct remote_get_version_ret {
int64_t hv_ver;
};
typedef struct remote_get_version_ret remote_get_version_ret;
struct remote_get_lib_version_ret {
int64_t lib_ver;
};
typedef struct remote_get_lib_version_ret remote_get_lib_version_ret;
struct remote_get_hostname_ret {
remote_nonnull_string hostname;
};
typedef struct remote_get_hostname_ret remote_get_hostname_ret;
struct remote_get_uri_ret {
remote_nonnull_string uri;
};
typedef struct remote_get_uri_ret remote_get_uri_ret;
struct remote_get_max_vcpus_args {
remote_string type;
};
typedef struct remote_get_max_vcpus_args remote_get_max_vcpus_args;
struct remote_get_max_vcpus_ret {
int max_vcpus;
};
typedef struct remote_get_max_vcpus_ret remote_get_max_vcpus_ret;
struct remote_node_get_info_ret {
char model[32];
int64_t memory;
int cpus;
int mhz;
int nodes;
int sockets;
int cores;
int threads;
};
typedef struct remote_node_get_info_ret remote_node_get_info_ret;
struct remote_get_capabilities_ret {
remote_nonnull_string capabilities;
};
typedef struct remote_get_capabilities_ret remote_get_capabilities_ret;
struct remote_node_get_cells_free_memory_args {
int startCell;
int maxCells;
};
typedef struct remote_node_get_cells_free_memory_args remote_node_get_cells_free_memory_args;
struct remote_node_get_cells_free_memory_ret {
struct {
u_int freeMems_len;
int64_t *freeMems_val;
} freeMems;
};
typedef struct remote_node_get_cells_free_memory_ret remote_node_get_cells_free_memory_ret;
struct remote_node_get_free_memory_ret {
int64_t freeMem;
};
typedef struct remote_node_get_free_memory_ret remote_node_get_free_memory_ret;
struct remote_domain_get_scheduler_type_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_get_scheduler_type_args remote_domain_get_scheduler_type_args;
struct remote_domain_get_scheduler_type_ret {
remote_nonnull_string type;
int nparams;
};
typedef struct remote_domain_get_scheduler_type_ret remote_domain_get_scheduler_type_ret;
struct remote_domain_get_scheduler_parameters_args {
remote_nonnull_domain dom;
int nparams;
};
typedef struct remote_domain_get_scheduler_parameters_args remote_domain_get_scheduler_parameters_args;
struct remote_domain_get_scheduler_parameters_ret {
struct {
u_int params_len;
remote_sched_param *params_val;
} params;
};
typedef struct remote_domain_get_scheduler_parameters_ret remote_domain_get_scheduler_parameters_ret;
struct remote_domain_set_scheduler_parameters_args {
remote_nonnull_domain dom;
struct {
u_int params_len;
remote_sched_param *params_val;
} params;
};
typedef struct remote_domain_set_scheduler_parameters_args remote_domain_set_scheduler_parameters_args;
struct remote_domain_block_stats_args {
remote_nonnull_domain dom;
remote_nonnull_string path;
};
typedef struct remote_domain_block_stats_args remote_domain_block_stats_args;
struct remote_domain_block_stats_ret {
int64_t rd_req;
int64_t rd_bytes;
int64_t wr_req;
int64_t wr_bytes;
int64_t errs;
};
typedef struct remote_domain_block_stats_ret remote_domain_block_stats_ret;
struct remote_domain_interface_stats_args {
remote_nonnull_domain dom;
remote_nonnull_string path;
};
typedef struct remote_domain_interface_stats_args remote_domain_interface_stats_args;
struct remote_domain_interface_stats_ret {
int64_t rx_bytes;
int64_t rx_packets;
int64_t rx_errs;
int64_t rx_drop;
int64_t tx_bytes;
int64_t tx_packets;
int64_t tx_errs;
int64_t tx_drop;
};
typedef struct remote_domain_interface_stats_ret remote_domain_interface_stats_ret;
struct remote_domain_memory_stats_args {
remote_nonnull_domain dom;
u_int maxStats;
u_int flags;
};
typedef struct remote_domain_memory_stats_args remote_domain_memory_stats_args;
struct remote_domain_memory_stat {
int tag;
uint64_t val;
};
typedef struct remote_domain_memory_stat remote_domain_memory_stat;
struct remote_domain_memory_stats_ret {
struct {
u_int stats_len;
remote_domain_memory_stat *stats_val;
} stats;
};
typedef struct remote_domain_memory_stats_ret remote_domain_memory_stats_ret;
struct remote_domain_block_peek_args {
remote_nonnull_domain dom;
remote_nonnull_string path;
uint64_t offset;
u_int size;
u_int flags;
};
typedef struct remote_domain_block_peek_args remote_domain_block_peek_args;
struct remote_domain_block_peek_ret {
struct {
u_int buffer_len;
char *buffer_val;
} buffer;
};
typedef struct remote_domain_block_peek_ret remote_domain_block_peek_ret;
struct remote_domain_memory_peek_args {
remote_nonnull_domain dom;
uint64_t offset;
u_int size;
u_int flags;
};
typedef struct remote_domain_memory_peek_args remote_domain_memory_peek_args;
struct remote_domain_memory_peek_ret {
struct {
u_int buffer_len;
char *buffer_val;
} buffer;
};
typedef struct remote_domain_memory_peek_ret remote_domain_memory_peek_ret;
struct remote_list_domains_args {
int maxids;
};
typedef struct remote_list_domains_args remote_list_domains_args;
struct remote_list_domains_ret {
struct {
u_int ids_len;
int *ids_val;
} ids;
};
typedef struct remote_list_domains_ret remote_list_domains_ret;
struct remote_num_of_domains_ret {
int num;
};
typedef struct remote_num_of_domains_ret remote_num_of_domains_ret;
struct remote_domain_create_xml_args {
remote_nonnull_string xml_desc;
int flags;
};
typedef struct remote_domain_create_xml_args remote_domain_create_xml_args;
struct remote_domain_create_xml_ret {
remote_nonnull_domain dom;
};
typedef struct remote_domain_create_xml_ret remote_domain_create_xml_ret;
struct remote_domain_lookup_by_id_args {
int id;
};
typedef struct remote_domain_lookup_by_id_args remote_domain_lookup_by_id_args;
struct remote_domain_lookup_by_id_ret {
remote_nonnull_domain dom;
};
typedef struct remote_domain_lookup_by_id_ret remote_domain_lookup_by_id_ret;
struct remote_domain_lookup_by_uuid_args {
remote_uuid uuid;
};
typedef struct remote_domain_lookup_by_uuid_args remote_domain_lookup_by_uuid_args;
struct remote_domain_lookup_by_uuid_ret {
remote_nonnull_domain dom;
};
typedef struct remote_domain_lookup_by_uuid_ret remote_domain_lookup_by_uuid_ret;
struct remote_domain_lookup_by_name_args {
remote_nonnull_string name;
};
typedef struct remote_domain_lookup_by_name_args remote_domain_lookup_by_name_args;
struct remote_domain_lookup_by_name_ret {
remote_nonnull_domain dom;
};
typedef struct remote_domain_lookup_by_name_ret remote_domain_lookup_by_name_ret;
struct remote_domain_suspend_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_suspend_args remote_domain_suspend_args;
struct remote_domain_resume_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_resume_args remote_domain_resume_args;
struct remote_domain_shutdown_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_shutdown_args remote_domain_shutdown_args;
struct remote_domain_reboot_args {
remote_nonnull_domain dom;
int flags;
};
typedef struct remote_domain_reboot_args remote_domain_reboot_args;
struct remote_domain_destroy_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_destroy_args remote_domain_destroy_args;
struct remote_domain_get_os_type_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_get_os_type_args remote_domain_get_os_type_args;
struct remote_domain_get_os_type_ret {
remote_nonnull_string type;
};
typedef struct remote_domain_get_os_type_ret remote_domain_get_os_type_ret;
struct remote_domain_get_max_memory_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_get_max_memory_args remote_domain_get_max_memory_args;
struct remote_domain_get_max_memory_ret {
uint64_t memory;
};
typedef struct remote_domain_get_max_memory_ret remote_domain_get_max_memory_ret;
struct remote_domain_set_max_memory_args {
remote_nonnull_domain dom;
uint64_t memory;
};
typedef struct remote_domain_set_max_memory_args remote_domain_set_max_memory_args;
struct remote_domain_set_memory_args {
remote_nonnull_domain dom;
uint64_t memory;
};
typedef struct remote_domain_set_memory_args remote_domain_set_memory_args;
struct remote_domain_get_info_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_get_info_args remote_domain_get_info_args;
struct remote_domain_get_info_ret {
u_char state;
uint64_t max_mem;
uint64_t memory;
u_short nr_virt_cpu;
uint64_t cpu_time;
};
typedef struct remote_domain_get_info_ret remote_domain_get_info_ret;
struct remote_domain_save_args {
remote_nonnull_domain dom;
remote_nonnull_string to;
};
typedef struct remote_domain_save_args remote_domain_save_args;
struct remote_domain_restore_args {
remote_nonnull_string from;
};
typedef struct remote_domain_restore_args remote_domain_restore_args;
struct remote_domain_core_dump_args {
remote_nonnull_domain dom;
remote_nonnull_string to;
int flags;
};
typedef struct remote_domain_core_dump_args remote_domain_core_dump_args;
struct remote_domain_dump_xml_args {
remote_nonnull_domain dom;
int flags;
};
typedef struct remote_domain_dump_xml_args remote_domain_dump_xml_args;
struct remote_domain_dump_xml_ret {
remote_nonnull_string xml;
};
typedef struct remote_domain_dump_xml_ret remote_domain_dump_xml_ret;
struct remote_domain_migrate_prepare_args {
remote_string uri_in;
uint64_t flags;
remote_string dname;
uint64_t resource;
};
typedef struct remote_domain_migrate_prepare_args remote_domain_migrate_prepare_args;
struct remote_domain_migrate_prepare_ret {
struct {
u_int cookie_len;
char *cookie_val;
} cookie;
remote_string uri_out;
};
typedef struct remote_domain_migrate_prepare_ret remote_domain_migrate_prepare_ret;
struct remote_domain_migrate_perform_args {
remote_nonnull_domain dom;
struct {
u_int cookie_len;
char *cookie_val;
} cookie;
remote_nonnull_string uri;
uint64_t flags;
remote_string dname;
uint64_t resource;
};
typedef struct remote_domain_migrate_perform_args remote_domain_migrate_perform_args;
struct remote_domain_migrate_finish_args {
remote_nonnull_string dname;
struct {
u_int cookie_len;
char *cookie_val;
} cookie;
remote_nonnull_string uri;
uint64_t flags;
};
typedef struct remote_domain_migrate_finish_args remote_domain_migrate_finish_args;
struct remote_domain_migrate_finish_ret {
remote_nonnull_domain ddom;
};
typedef struct remote_domain_migrate_finish_ret remote_domain_migrate_finish_ret;
struct remote_domain_migrate_prepare2_args {
remote_string uri_in;
uint64_t flags;
remote_string dname;
uint64_t resource;
remote_nonnull_string dom_xml;
};
typedef struct remote_domain_migrate_prepare2_args remote_domain_migrate_prepare2_args;
struct remote_domain_migrate_prepare2_ret {
struct {
u_int cookie_len;
char *cookie_val;
} cookie;
remote_string uri_out;
};
typedef struct remote_domain_migrate_prepare2_ret remote_domain_migrate_prepare2_ret;
struct remote_domain_migrate_finish2_args {
remote_nonnull_string dname;
struct {
u_int cookie_len;
char *cookie_val;
} cookie;
remote_nonnull_string uri;
uint64_t flags;
int retcode;
};
typedef struct remote_domain_migrate_finish2_args remote_domain_migrate_finish2_args;
struct remote_domain_migrate_finish2_ret {
remote_nonnull_domain ddom;
};
typedef struct remote_domain_migrate_finish2_ret remote_domain_migrate_finish2_ret;
struct remote_list_defined_domains_args {
int maxnames;
};
typedef struct remote_list_defined_domains_args remote_list_defined_domains_args;
struct remote_list_defined_domains_ret {
struct {
u_int names_len;
remote_nonnull_string *names_val;
} names;
};
typedef struct remote_list_defined_domains_ret remote_list_defined_domains_ret;
struct remote_num_of_defined_domains_ret {
int num;
};
typedef struct remote_num_of_defined_domains_ret remote_num_of_defined_domains_ret;
struct remote_domain_create_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_create_args remote_domain_create_args;
struct remote_domain_define_xml_args {
remote_nonnull_string xml;
};
typedef struct remote_domain_define_xml_args remote_domain_define_xml_args;
struct remote_domain_define_xml_ret {
remote_nonnull_domain dom;
};
typedef struct remote_domain_define_xml_ret remote_domain_define_xml_ret;
struct remote_domain_undefine_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_undefine_args remote_domain_undefine_args;
struct remote_domain_set_vcpus_args {
remote_nonnull_domain dom;
int nvcpus;
};
typedef struct remote_domain_set_vcpus_args remote_domain_set_vcpus_args;
struct remote_domain_pin_vcpu_args {
remote_nonnull_domain dom;
int vcpu;
struct {
u_int cpumap_len;
char *cpumap_val;
} cpumap;
};
typedef struct remote_domain_pin_vcpu_args remote_domain_pin_vcpu_args;
struct remote_domain_get_vcpus_args {
remote_nonnull_domain dom;
int maxinfo;
int maplen;
};
typedef struct remote_domain_get_vcpus_args remote_domain_get_vcpus_args;
struct remote_domain_get_vcpus_ret {
struct {
u_int info_len;
remote_vcpu_info *info_val;
} info;
struct {
u_int cpumaps_len;
char *cpumaps_val;
} cpumaps;
};
typedef struct remote_domain_get_vcpus_ret remote_domain_get_vcpus_ret;
struct remote_domain_get_max_vcpus_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_get_max_vcpus_args remote_domain_get_max_vcpus_args;
struct remote_domain_get_max_vcpus_ret {
int num;
};
typedef struct remote_domain_get_max_vcpus_ret remote_domain_get_max_vcpus_ret;
struct remote_domain_get_security_label_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_get_security_label_args remote_domain_get_security_label_args;
struct remote_domain_get_security_label_ret {
struct {
u_int label_len;
char *label_val;
} label;
int enforcing;
};
typedef struct remote_domain_get_security_label_ret remote_domain_get_security_label_ret;
struct remote_node_get_security_model_ret {
struct {
u_int model_len;
char *model_val;
} model;
struct {
u_int doi_len;
char *doi_val;
} doi;
};
typedef struct remote_node_get_security_model_ret remote_node_get_security_model_ret;
struct remote_domain_attach_device_args {
remote_nonnull_domain dom;
remote_nonnull_string xml;
};
typedef struct remote_domain_attach_device_args remote_domain_attach_device_args;
struct remote_domain_attach_device_flags_args {
remote_nonnull_domain dom;
remote_nonnull_string xml;
u_int flags;
};
typedef struct remote_domain_attach_device_flags_args remote_domain_attach_device_flags_args;
struct remote_domain_detach_device_args {
remote_nonnull_domain dom;
remote_nonnull_string xml;
};
typedef struct remote_domain_detach_device_args remote_domain_detach_device_args;
struct remote_domain_detach_device_flags_args {
remote_nonnull_domain dom;
remote_nonnull_string xml;
u_int flags;
};
typedef struct remote_domain_detach_device_flags_args remote_domain_detach_device_flags_args;
struct remote_domain_get_autostart_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_get_autostart_args remote_domain_get_autostart_args;
struct remote_domain_get_autostart_ret {
int autostart;
};
typedef struct remote_domain_get_autostart_ret remote_domain_get_autostart_ret;
struct remote_domain_set_autostart_args {
remote_nonnull_domain dom;
int autostart;
};
typedef struct remote_domain_set_autostart_args remote_domain_set_autostart_args;
struct remote_num_of_networks_ret {
int num;
};
typedef struct remote_num_of_networks_ret remote_num_of_networks_ret;
struct remote_list_networks_args {
int maxnames;
};
typedef struct remote_list_networks_args remote_list_networks_args;
struct remote_list_networks_ret {
struct {
u_int names_len;
remote_nonnull_string *names_val;
} names;
};
typedef struct remote_list_networks_ret remote_list_networks_ret;
struct remote_num_of_defined_networks_ret {
int num;
};
typedef struct remote_num_of_defined_networks_ret remote_num_of_defined_networks_ret;
struct remote_list_defined_networks_args {
int maxnames;
};
typedef struct remote_list_defined_networks_args remote_list_defined_networks_args;
struct remote_list_defined_networks_ret {
struct {
u_int names_len;
remote_nonnull_string *names_val;
} names;
};
typedef struct remote_list_defined_networks_ret remote_list_defined_networks_ret;
struct remote_network_lookup_by_uuid_args {
remote_uuid uuid;
};
typedef struct remote_network_lookup_by_uuid_args remote_network_lookup_by_uuid_args;
struct remote_network_lookup_by_uuid_ret {
remote_nonnull_network net;
};
typedef struct remote_network_lookup_by_uuid_ret remote_network_lookup_by_uuid_ret;
struct remote_network_lookup_by_name_args {
remote_nonnull_string name;
};
typedef struct remote_network_lookup_by_name_args remote_network_lookup_by_name_args;
struct remote_network_lookup_by_name_ret {
remote_nonnull_network net;
};
typedef struct remote_network_lookup_by_name_ret remote_network_lookup_by_name_ret;
struct remote_network_create_xml_args {
remote_nonnull_string xml;
};
typedef struct remote_network_create_xml_args remote_network_create_xml_args;
struct remote_network_create_xml_ret {
remote_nonnull_network net;
};
typedef struct remote_network_create_xml_ret remote_network_create_xml_ret;
struct remote_network_define_xml_args {
remote_nonnull_string xml;
};
typedef struct remote_network_define_xml_args remote_network_define_xml_args;
struct remote_network_define_xml_ret {
remote_nonnull_network net;
};
typedef struct remote_network_define_xml_ret remote_network_define_xml_ret;
struct remote_network_undefine_args {
remote_nonnull_network net;
};
typedef struct remote_network_undefine_args remote_network_undefine_args;
struct remote_network_create_args {
remote_nonnull_network net;
};
typedef struct remote_network_create_args remote_network_create_args;
struct remote_network_destroy_args {
remote_nonnull_network net;
};
typedef struct remote_network_destroy_args remote_network_destroy_args;
struct remote_network_dump_xml_args {
remote_nonnull_network net;
int flags;
};
typedef struct remote_network_dump_xml_args remote_network_dump_xml_args;
struct remote_network_dump_xml_ret {
remote_nonnull_string xml;
};
typedef struct remote_network_dump_xml_ret remote_network_dump_xml_ret;
struct remote_network_get_bridge_name_args {
remote_nonnull_network net;
};
typedef struct remote_network_get_bridge_name_args remote_network_get_bridge_name_args;
struct remote_network_get_bridge_name_ret {
remote_nonnull_string name;
};
typedef struct remote_network_get_bridge_name_ret remote_network_get_bridge_name_ret;
struct remote_network_get_autostart_args {
remote_nonnull_network net;
};
typedef struct remote_network_get_autostart_args remote_network_get_autostart_args;
struct remote_network_get_autostart_ret {
int autostart;
};
typedef struct remote_network_get_autostart_ret remote_network_get_autostart_ret;
struct remote_network_set_autostart_args {
remote_nonnull_network net;
int autostart;
};
typedef struct remote_network_set_autostart_args remote_network_set_autostart_args;
struct remote_num_of_interfaces_ret {
int num;
};
typedef struct remote_num_of_interfaces_ret remote_num_of_interfaces_ret;
struct remote_list_interfaces_args {
int maxnames;
};
typedef struct remote_list_interfaces_args remote_list_interfaces_args;
struct remote_list_interfaces_ret {
struct {
u_int names_len;
remote_nonnull_string *names_val;
} names;
};
typedef struct remote_list_interfaces_ret remote_list_interfaces_ret;
struct remote_num_of_defined_interfaces_ret {
int num;
};
typedef struct remote_num_of_defined_interfaces_ret remote_num_of_defined_interfaces_ret;
struct remote_list_defined_interfaces_args {
int maxnames;
};
typedef struct remote_list_defined_interfaces_args remote_list_defined_interfaces_args;
struct remote_list_defined_interfaces_ret {
struct {
u_int names_len;
remote_nonnull_string *names_val;
} names;
};
typedef struct remote_list_defined_interfaces_ret remote_list_defined_interfaces_ret;
struct remote_interface_lookup_by_name_args {
remote_nonnull_string name;
};
typedef struct remote_interface_lookup_by_name_args remote_interface_lookup_by_name_args;
struct remote_interface_lookup_by_name_ret {
remote_nonnull_interface iface;
};
typedef struct remote_interface_lookup_by_name_ret remote_interface_lookup_by_name_ret;
struct remote_interface_lookup_by_mac_string_args {
remote_nonnull_string mac;
};
typedef struct remote_interface_lookup_by_mac_string_args remote_interface_lookup_by_mac_string_args;
struct remote_interface_lookup_by_mac_string_ret {
remote_nonnull_interface iface;
};
typedef struct remote_interface_lookup_by_mac_string_ret remote_interface_lookup_by_mac_string_ret;
struct remote_interface_get_xml_desc_args {
remote_nonnull_interface iface;
u_int flags;
};
typedef struct remote_interface_get_xml_desc_args remote_interface_get_xml_desc_args;
struct remote_interface_get_xml_desc_ret {
remote_nonnull_string xml;
};
typedef struct remote_interface_get_xml_desc_ret remote_interface_get_xml_desc_ret;
struct remote_interface_define_xml_args {
remote_nonnull_string xml;
u_int flags;
};
typedef struct remote_interface_define_xml_args remote_interface_define_xml_args;
struct remote_interface_define_xml_ret {
remote_nonnull_interface iface;
};
typedef struct remote_interface_define_xml_ret remote_interface_define_xml_ret;
struct remote_interface_undefine_args {
remote_nonnull_interface iface;
};
typedef struct remote_interface_undefine_args remote_interface_undefine_args;
struct remote_interface_create_args {
remote_nonnull_interface iface;
u_int flags;
};
typedef struct remote_interface_create_args remote_interface_create_args;
struct remote_interface_destroy_args {
remote_nonnull_interface iface;
u_int flags;
};
typedef struct remote_interface_destroy_args remote_interface_destroy_args;
struct remote_auth_list_ret {
struct {
u_int types_len;
remote_auth_type *types_val;
} types;
};
typedef struct remote_auth_list_ret remote_auth_list_ret;
struct remote_auth_sasl_init_ret {
remote_nonnull_string mechlist;
};
typedef struct remote_auth_sasl_init_ret remote_auth_sasl_init_ret;
struct remote_auth_sasl_start_args {
remote_nonnull_string mech;
int nil;
struct {
u_int data_len;
char *data_val;
} data;
};
typedef struct remote_auth_sasl_start_args remote_auth_sasl_start_args;
struct remote_auth_sasl_start_ret {
int complete;
int nil;
struct {
u_int data_len;
char *data_val;
} data;
};
typedef struct remote_auth_sasl_start_ret remote_auth_sasl_start_ret;
struct remote_auth_sasl_step_args {
int nil;
struct {
u_int data_len;
char *data_val;
} data;
};
typedef struct remote_auth_sasl_step_args remote_auth_sasl_step_args;
struct remote_auth_sasl_step_ret {
int complete;
int nil;
struct {
u_int data_len;
char *data_val;
} data;
};
typedef struct remote_auth_sasl_step_ret remote_auth_sasl_step_ret;
2007-12-05 18:21:27 +00:00
struct remote_auth_polkit_ret {
int complete;
2007-12-05 18:21:27 +00:00
};
typedef struct remote_auth_polkit_ret remote_auth_polkit_ret;
struct remote_num_of_storage_pools_ret {
int num;
};
typedef struct remote_num_of_storage_pools_ret remote_num_of_storage_pools_ret;
struct remote_list_storage_pools_args {
int maxnames;
};
typedef struct remote_list_storage_pools_args remote_list_storage_pools_args;
struct remote_list_storage_pools_ret {
struct {
u_int names_len;
remote_nonnull_string *names_val;
} names;
};
typedef struct remote_list_storage_pools_ret remote_list_storage_pools_ret;
struct remote_num_of_defined_storage_pools_ret {
int num;
};
typedef struct remote_num_of_defined_storage_pools_ret remote_num_of_defined_storage_pools_ret;
struct remote_list_defined_storage_pools_args {
int maxnames;
};
typedef struct remote_list_defined_storage_pools_args remote_list_defined_storage_pools_args;
struct remote_list_defined_storage_pools_ret {
struct {
u_int names_len;
remote_nonnull_string *names_val;
} names;
};
typedef struct remote_list_defined_storage_pools_ret remote_list_defined_storage_pools_ret;
struct remote_find_storage_pool_sources_args {
remote_nonnull_string type;
remote_string srcSpec;
u_int flags;
};
typedef struct remote_find_storage_pool_sources_args remote_find_storage_pool_sources_args;
struct remote_find_storage_pool_sources_ret {
remote_nonnull_string xml;
};
typedef struct remote_find_storage_pool_sources_ret remote_find_storage_pool_sources_ret;
struct remote_storage_pool_lookup_by_uuid_args {
remote_uuid uuid;
};
typedef struct remote_storage_pool_lookup_by_uuid_args remote_storage_pool_lookup_by_uuid_args;
struct remote_storage_pool_lookup_by_uuid_ret {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_lookup_by_uuid_ret remote_storage_pool_lookup_by_uuid_ret;
struct remote_storage_pool_lookup_by_name_args {
remote_nonnull_string name;
};
typedef struct remote_storage_pool_lookup_by_name_args remote_storage_pool_lookup_by_name_args;
struct remote_storage_pool_lookup_by_name_ret {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_lookup_by_name_ret remote_storage_pool_lookup_by_name_ret;
struct remote_storage_pool_lookup_by_volume_args {
remote_nonnull_storage_vol vol;
};
typedef struct remote_storage_pool_lookup_by_volume_args remote_storage_pool_lookup_by_volume_args;
struct remote_storage_pool_lookup_by_volume_ret {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_lookup_by_volume_ret remote_storage_pool_lookup_by_volume_ret;
struct remote_storage_pool_create_xml_args {
remote_nonnull_string xml;
u_int flags;
};
typedef struct remote_storage_pool_create_xml_args remote_storage_pool_create_xml_args;
struct remote_storage_pool_create_xml_ret {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_create_xml_ret remote_storage_pool_create_xml_ret;
struct remote_storage_pool_define_xml_args {
remote_nonnull_string xml;
u_int flags;
};
typedef struct remote_storage_pool_define_xml_args remote_storage_pool_define_xml_args;
struct remote_storage_pool_define_xml_ret {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_define_xml_ret remote_storage_pool_define_xml_ret;
struct remote_storage_pool_build_args {
remote_nonnull_storage_pool pool;
u_int flags;
};
typedef struct remote_storage_pool_build_args remote_storage_pool_build_args;
struct remote_storage_pool_undefine_args {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_undefine_args remote_storage_pool_undefine_args;
struct remote_storage_pool_create_args {
remote_nonnull_storage_pool pool;
u_int flags;
};
typedef struct remote_storage_pool_create_args remote_storage_pool_create_args;
struct remote_storage_pool_destroy_args {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_destroy_args remote_storage_pool_destroy_args;
struct remote_storage_pool_delete_args {
remote_nonnull_storage_pool pool;
u_int flags;
};
typedef struct remote_storage_pool_delete_args remote_storage_pool_delete_args;
struct remote_storage_pool_refresh_args {
remote_nonnull_storage_pool pool;
u_int flags;
};
typedef struct remote_storage_pool_refresh_args remote_storage_pool_refresh_args;
struct remote_storage_pool_dump_xml_args {
remote_nonnull_storage_pool pool;
u_int flags;
};
typedef struct remote_storage_pool_dump_xml_args remote_storage_pool_dump_xml_args;
struct remote_storage_pool_dump_xml_ret {
remote_nonnull_string xml;
};
typedef struct remote_storage_pool_dump_xml_ret remote_storage_pool_dump_xml_ret;
struct remote_storage_pool_get_info_args {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_get_info_args remote_storage_pool_get_info_args;
struct remote_storage_pool_get_info_ret {
u_char state;
uint64_t capacity;
uint64_t allocation;
uint64_t available;
};
typedef struct remote_storage_pool_get_info_ret remote_storage_pool_get_info_ret;
struct remote_storage_pool_get_autostart_args {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_get_autostart_args remote_storage_pool_get_autostart_args;
struct remote_storage_pool_get_autostart_ret {
int autostart;
};
typedef struct remote_storage_pool_get_autostart_ret remote_storage_pool_get_autostart_ret;
struct remote_storage_pool_set_autostart_args {
remote_nonnull_storage_pool pool;
int autostart;
};
typedef struct remote_storage_pool_set_autostart_args remote_storage_pool_set_autostart_args;
struct remote_storage_pool_num_of_volumes_args {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_num_of_volumes_args remote_storage_pool_num_of_volumes_args;
struct remote_storage_pool_num_of_volumes_ret {
int num;
};
typedef struct remote_storage_pool_num_of_volumes_ret remote_storage_pool_num_of_volumes_ret;
struct remote_storage_pool_list_volumes_args {
remote_nonnull_storage_pool pool;
int maxnames;
};
typedef struct remote_storage_pool_list_volumes_args remote_storage_pool_list_volumes_args;
struct remote_storage_pool_list_volumes_ret {
struct {
u_int names_len;
remote_nonnull_string *names_val;
} names;
};
typedef struct remote_storage_pool_list_volumes_ret remote_storage_pool_list_volumes_ret;
struct remote_storage_vol_lookup_by_name_args {
remote_nonnull_storage_pool pool;
remote_nonnull_string name;
};
typedef struct remote_storage_vol_lookup_by_name_args remote_storage_vol_lookup_by_name_args;
struct remote_storage_vol_lookup_by_name_ret {
remote_nonnull_storage_vol vol;
};
typedef struct remote_storage_vol_lookup_by_name_ret remote_storage_vol_lookup_by_name_ret;
struct remote_storage_vol_lookup_by_key_args {
remote_nonnull_string key;
};
typedef struct remote_storage_vol_lookup_by_key_args remote_storage_vol_lookup_by_key_args;
struct remote_storage_vol_lookup_by_key_ret {
remote_nonnull_storage_vol vol;
};
typedef struct remote_storage_vol_lookup_by_key_ret remote_storage_vol_lookup_by_key_ret;
struct remote_storage_vol_lookup_by_path_args {
remote_nonnull_string path;
};
typedef struct remote_storage_vol_lookup_by_path_args remote_storage_vol_lookup_by_path_args;
struct remote_storage_vol_lookup_by_path_ret {
remote_nonnull_storage_vol vol;
};
typedef struct remote_storage_vol_lookup_by_path_ret remote_storage_vol_lookup_by_path_ret;
struct remote_storage_vol_create_xml_args {
remote_nonnull_storage_pool pool;
remote_nonnull_string xml;
u_int flags;
};
typedef struct remote_storage_vol_create_xml_args remote_storage_vol_create_xml_args;
struct remote_storage_vol_create_xml_ret {
remote_nonnull_storage_vol vol;
};
typedef struct remote_storage_vol_create_xml_ret remote_storage_vol_create_xml_ret;
struct remote_storage_vol_create_xml_from_args {
remote_nonnull_storage_pool pool;
remote_nonnull_string xml;
remote_nonnull_storage_vol clonevol;
u_int flags;
};
typedef struct remote_storage_vol_create_xml_from_args remote_storage_vol_create_xml_from_args;
struct remote_storage_vol_create_xml_from_ret {
remote_nonnull_storage_vol vol;
};
typedef struct remote_storage_vol_create_xml_from_ret remote_storage_vol_create_xml_from_ret;
struct remote_storage_vol_delete_args {
remote_nonnull_storage_vol vol;
u_int flags;
};
typedef struct remote_storage_vol_delete_args remote_storage_vol_delete_args;
2010-03-01 20:32:35 +00:00
struct remote_storage_vol_wipe_args {
remote_nonnull_storage_vol vol;
u_int flags;
};
typedef struct remote_storage_vol_wipe_args remote_storage_vol_wipe_args;
struct remote_storage_vol_dump_xml_args {
remote_nonnull_storage_vol vol;
u_int flags;
};
typedef struct remote_storage_vol_dump_xml_args remote_storage_vol_dump_xml_args;
struct remote_storage_vol_dump_xml_ret {
remote_nonnull_string xml;
};
typedef struct remote_storage_vol_dump_xml_ret remote_storage_vol_dump_xml_ret;
struct remote_storage_vol_get_info_args {
remote_nonnull_storage_vol vol;
};
typedef struct remote_storage_vol_get_info_args remote_storage_vol_get_info_args;
struct remote_storage_vol_get_info_ret {
char type;
uint64_t capacity;
uint64_t allocation;
};
typedef struct remote_storage_vol_get_info_ret remote_storage_vol_get_info_ret;
struct remote_storage_vol_get_path_args {
remote_nonnull_storage_vol vol;
};
typedef struct remote_storage_vol_get_path_args remote_storage_vol_get_path_args;
struct remote_storage_vol_get_path_ret {
remote_nonnull_string name;
};
typedef struct remote_storage_vol_get_path_ret remote_storage_vol_get_path_ret;
struct remote_node_num_of_devices_args {
remote_string cap;
u_int flags;
};
typedef struct remote_node_num_of_devices_args remote_node_num_of_devices_args;
struct remote_node_num_of_devices_ret {
int num;
};
typedef struct remote_node_num_of_devices_ret remote_node_num_of_devices_ret;
struct remote_node_list_devices_args {
remote_string cap;
int maxnames;
u_int flags;
};
typedef struct remote_node_list_devices_args remote_node_list_devices_args;
struct remote_node_list_devices_ret {
struct {
u_int names_len;
remote_nonnull_string *names_val;
} names;
};
typedef struct remote_node_list_devices_ret remote_node_list_devices_ret;
struct remote_node_device_lookup_by_name_args {
remote_nonnull_string name;
};
typedef struct remote_node_device_lookup_by_name_args remote_node_device_lookup_by_name_args;
struct remote_node_device_lookup_by_name_ret {
remote_nonnull_node_device dev;
};
typedef struct remote_node_device_lookup_by_name_ret remote_node_device_lookup_by_name_ret;
struct remote_node_device_dump_xml_args {
remote_nonnull_string name;
u_int flags;
};
typedef struct remote_node_device_dump_xml_args remote_node_device_dump_xml_args;
struct remote_node_device_dump_xml_ret {
remote_nonnull_string xml;
};
typedef struct remote_node_device_dump_xml_ret remote_node_device_dump_xml_ret;
struct remote_node_device_get_parent_args {
remote_nonnull_string name;
};
typedef struct remote_node_device_get_parent_args remote_node_device_get_parent_args;
struct remote_node_device_get_parent_ret {
remote_string parent;
};
typedef struct remote_node_device_get_parent_ret remote_node_device_get_parent_ret;
struct remote_node_device_num_of_caps_args {
remote_nonnull_string name;
};
typedef struct remote_node_device_num_of_caps_args remote_node_device_num_of_caps_args;
struct remote_node_device_num_of_caps_ret {
int num;
};
typedef struct remote_node_device_num_of_caps_ret remote_node_device_num_of_caps_ret;
struct remote_node_device_list_caps_args {
remote_nonnull_string name;
int maxnames;
};
typedef struct remote_node_device_list_caps_args remote_node_device_list_caps_args;
struct remote_node_device_list_caps_ret {
struct {
u_int names_len;
remote_nonnull_string *names_val;
} names;
};
typedef struct remote_node_device_list_caps_ret remote_node_device_list_caps_ret;
struct remote_node_device_dettach_args {
remote_nonnull_string name;
};
typedef struct remote_node_device_dettach_args remote_node_device_dettach_args;
struct remote_node_device_re_attach_args {
remote_nonnull_string name;
};
typedef struct remote_node_device_re_attach_args remote_node_device_re_attach_args;
struct remote_node_device_reset_args {
remote_nonnull_string name;
};
typedef struct remote_node_device_reset_args remote_node_device_reset_args;
struct remote_node_device_create_xml_args {
remote_nonnull_string xml_desc;
int flags;
};
typedef struct remote_node_device_create_xml_args remote_node_device_create_xml_args;
struct remote_node_device_create_xml_ret {
remote_nonnull_node_device dev;
};
typedef struct remote_node_device_create_xml_ret remote_node_device_create_xml_ret;
struct remote_node_device_destroy_args {
remote_nonnull_string name;
};
typedef struct remote_node_device_destroy_args remote_node_device_destroy_args;
struct remote_domain_events_register_ret {
int cb_registered;
};
typedef struct remote_domain_events_register_ret remote_domain_events_register_ret;
struct remote_domain_events_deregister_ret {
int cb_registered;
};
typedef struct remote_domain_events_deregister_ret remote_domain_events_deregister_ret;
struct remote_domain_event_lifecycle_msg {
remote_nonnull_domain dom;
int event;
2008-11-17 16:43:00 +00:00
int detail;
};
typedef struct remote_domain_event_lifecycle_msg remote_domain_event_lifecycle_msg;
struct remote_domain_xml_from_native_args {
remote_nonnull_string nativeFormat;
remote_nonnull_string nativeConfig;
u_int flags;
};
typedef struct remote_domain_xml_from_native_args remote_domain_xml_from_native_args;
struct remote_domain_xml_from_native_ret {
remote_nonnull_string domainXml;
};
typedef struct remote_domain_xml_from_native_ret remote_domain_xml_from_native_ret;
struct remote_domain_xml_to_native_args {
remote_nonnull_string nativeFormat;
remote_nonnull_string domainXml;
u_int flags;
};
typedef struct remote_domain_xml_to_native_args remote_domain_xml_to_native_args;
struct remote_domain_xml_to_native_ret {
remote_nonnull_string nativeConfig;
};
typedef struct remote_domain_xml_to_native_ret remote_domain_xml_to_native_ret;
struct remote_num_of_secrets_ret {
int num;
};
typedef struct remote_num_of_secrets_ret remote_num_of_secrets_ret;
struct remote_list_secrets_args {
int maxuuids;
};
typedef struct remote_list_secrets_args remote_list_secrets_args;
struct remote_list_secrets_ret {
struct {
u_int uuids_len;
remote_nonnull_string *uuids_val;
} uuids;
};
typedef struct remote_list_secrets_ret remote_list_secrets_ret;
Fix UUID handling in secrets/storage encryption APIs Convert all the secret/storage encryption APIs / wire format to handle UUIDs in raw format instead of non-canonical printable format. Guarentees data format correctness. * docs/schemas/storageencryption.rng: Make UUID mandatory for a secret and validate fully * docs/schemas/secret.rng: Fully validate UUID * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add virSecretLookupByUUID and virSecretGetUUID. Make virSecretGetUUIDString follow normal API design pattern * python/generator.py: Skip generation of virSecretGetUUID, virSecretGetUUIDString and virSecretLookupByUUID * python/libvir.c, python/libvirt-python-api.xml: Manual impl of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID * qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/ Fix get_nonnull_secret/make_nonnull_secret to use unsigned char * qemud/remote_protocol.x: Fix remote_nonnull_secret to use a remote_uuid instead of remote_nonnull_string for UUID field. Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an remote_uuid value * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h, qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate * src/datatypes.h, src/datatypes.c: Store UUID in raw format instead of printable. Change virGetSecret to use raw format UUID * src/driver.h: Rename virDrvSecretLookupByUUIDString to virDrvSecretLookupByUUID and use raw format UUID * src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID and re-implement virSecretLookupByUUIDString and virSecretGetUUIDString in terms of those * src/libvirt_public.syms: Add virSecretLookupByUUID and virSecretGetUUID * src/remote_internal.c: Rename remoteSecretLookupByUUIDString to remoteSecretLookupByUUID. Fix typo in args for remoteSecretDefineXML impl. Use raw UUID format for get_nonnull_secret and make_nonnull_secret * src/storage_encryption_conf.c, src/storage_encryption_conf.h: Storage UUID in raw format, and require it to be present in XML. Use UUID parser to validate. * secret_conf.h, secret_conf.c: Generate a UUID if none is provided. Storage UUID in raw format. * src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets in a filed with printable UUID, instead of base64 UUID. * src/virsh.c: Adjust for changed public API contract of virSecretGetUUIDString. * src/storage_Backend.c: DOn't undefine secret we just generated upon successful volume creation. Fix to handle raw UUIDs. Generate a non-clashing UUID * src/qemu_driver.c: Change to use lookupByUUID instead of lookupByUUIDString
2009-09-10 16:44:12 +00:00
struct remote_secret_lookup_by_uuid_args {
remote_uuid uuid;
};
Fix UUID handling in secrets/storage encryption APIs Convert all the secret/storage encryption APIs / wire format to handle UUIDs in raw format instead of non-canonical printable format. Guarentees data format correctness. * docs/schemas/storageencryption.rng: Make UUID mandatory for a secret and validate fully * docs/schemas/secret.rng: Fully validate UUID * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add virSecretLookupByUUID and virSecretGetUUID. Make virSecretGetUUIDString follow normal API design pattern * python/generator.py: Skip generation of virSecretGetUUID, virSecretGetUUIDString and virSecretLookupByUUID * python/libvir.c, python/libvirt-python-api.xml: Manual impl of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID * qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/ Fix get_nonnull_secret/make_nonnull_secret to use unsigned char * qemud/remote_protocol.x: Fix remote_nonnull_secret to use a remote_uuid instead of remote_nonnull_string for UUID field. Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an remote_uuid value * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h, qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate * src/datatypes.h, src/datatypes.c: Store UUID in raw format instead of printable. Change virGetSecret to use raw format UUID * src/driver.h: Rename virDrvSecretLookupByUUIDString to virDrvSecretLookupByUUID and use raw format UUID * src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID and re-implement virSecretLookupByUUIDString and virSecretGetUUIDString in terms of those * src/libvirt_public.syms: Add virSecretLookupByUUID and virSecretGetUUID * src/remote_internal.c: Rename remoteSecretLookupByUUIDString to remoteSecretLookupByUUID. Fix typo in args for remoteSecretDefineXML impl. Use raw UUID format for get_nonnull_secret and make_nonnull_secret * src/storage_encryption_conf.c, src/storage_encryption_conf.h: Storage UUID in raw format, and require it to be present in XML. Use UUID parser to validate. * secret_conf.h, secret_conf.c: Generate a UUID if none is provided. Storage UUID in raw format. * src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets in a filed with printable UUID, instead of base64 UUID. * src/virsh.c: Adjust for changed public API contract of virSecretGetUUIDString. * src/storage_Backend.c: DOn't undefine secret we just generated upon successful volume creation. Fix to handle raw UUIDs. Generate a non-clashing UUID * src/qemu_driver.c: Change to use lookupByUUID instead of lookupByUUIDString
2009-09-10 16:44:12 +00:00
typedef struct remote_secret_lookup_by_uuid_args remote_secret_lookup_by_uuid_args;
Fix UUID handling in secrets/storage encryption APIs Convert all the secret/storage encryption APIs / wire format to handle UUIDs in raw format instead of non-canonical printable format. Guarentees data format correctness. * docs/schemas/storageencryption.rng: Make UUID mandatory for a secret and validate fully * docs/schemas/secret.rng: Fully validate UUID * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add virSecretLookupByUUID and virSecretGetUUID. Make virSecretGetUUIDString follow normal API design pattern * python/generator.py: Skip generation of virSecretGetUUID, virSecretGetUUIDString and virSecretLookupByUUID * python/libvir.c, python/libvirt-python-api.xml: Manual impl of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID * qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/ Fix get_nonnull_secret/make_nonnull_secret to use unsigned char * qemud/remote_protocol.x: Fix remote_nonnull_secret to use a remote_uuid instead of remote_nonnull_string for UUID field. Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an remote_uuid value * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h, qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate * src/datatypes.h, src/datatypes.c: Store UUID in raw format instead of printable. Change virGetSecret to use raw format UUID * src/driver.h: Rename virDrvSecretLookupByUUIDString to virDrvSecretLookupByUUID and use raw format UUID * src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID and re-implement virSecretLookupByUUIDString and virSecretGetUUIDString in terms of those * src/libvirt_public.syms: Add virSecretLookupByUUID and virSecretGetUUID * src/remote_internal.c: Rename remoteSecretLookupByUUIDString to remoteSecretLookupByUUID. Fix typo in args for remoteSecretDefineXML impl. Use raw UUID format for get_nonnull_secret and make_nonnull_secret * src/storage_encryption_conf.c, src/storage_encryption_conf.h: Storage UUID in raw format, and require it to be present in XML. Use UUID parser to validate. * secret_conf.h, secret_conf.c: Generate a UUID if none is provided. Storage UUID in raw format. * src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets in a filed with printable UUID, instead of base64 UUID. * src/virsh.c: Adjust for changed public API contract of virSecretGetUUIDString. * src/storage_Backend.c: DOn't undefine secret we just generated upon successful volume creation. Fix to handle raw UUIDs. Generate a non-clashing UUID * src/qemu_driver.c: Change to use lookupByUUID instead of lookupByUUIDString
2009-09-10 16:44:12 +00:00
struct remote_secret_lookup_by_uuid_ret {
remote_nonnull_secret secret;
};
Fix UUID handling in secrets/storage encryption APIs Convert all the secret/storage encryption APIs / wire format to handle UUIDs in raw format instead of non-canonical printable format. Guarentees data format correctness. * docs/schemas/storageencryption.rng: Make UUID mandatory for a secret and validate fully * docs/schemas/secret.rng: Fully validate UUID * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add virSecretLookupByUUID and virSecretGetUUID. Make virSecretGetUUIDString follow normal API design pattern * python/generator.py: Skip generation of virSecretGetUUID, virSecretGetUUIDString and virSecretLookupByUUID * python/libvir.c, python/libvirt-python-api.xml: Manual impl of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID * qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/ Fix get_nonnull_secret/make_nonnull_secret to use unsigned char * qemud/remote_protocol.x: Fix remote_nonnull_secret to use a remote_uuid instead of remote_nonnull_string for UUID field. Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an remote_uuid value * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h, qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate * src/datatypes.h, src/datatypes.c: Store UUID in raw format instead of printable. Change virGetSecret to use raw format UUID * src/driver.h: Rename virDrvSecretLookupByUUIDString to virDrvSecretLookupByUUID and use raw format UUID * src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID and re-implement virSecretLookupByUUIDString and virSecretGetUUIDString in terms of those * src/libvirt_public.syms: Add virSecretLookupByUUID and virSecretGetUUID * src/remote_internal.c: Rename remoteSecretLookupByUUIDString to remoteSecretLookupByUUID. Fix typo in args for remoteSecretDefineXML impl. Use raw UUID format for get_nonnull_secret and make_nonnull_secret * src/storage_encryption_conf.c, src/storage_encryption_conf.h: Storage UUID in raw format, and require it to be present in XML. Use UUID parser to validate. * secret_conf.h, secret_conf.c: Generate a UUID if none is provided. Storage UUID in raw format. * src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets in a filed with printable UUID, instead of base64 UUID. * src/virsh.c: Adjust for changed public API contract of virSecretGetUUIDString. * src/storage_Backend.c: DOn't undefine secret we just generated upon successful volume creation. Fix to handle raw UUIDs. Generate a non-clashing UUID * src/qemu_driver.c: Change to use lookupByUUID instead of lookupByUUIDString
2009-09-10 16:44:12 +00:00
typedef struct remote_secret_lookup_by_uuid_ret remote_secret_lookup_by_uuid_ret;
struct remote_secret_define_xml_args {
remote_nonnull_string xml;
u_int flags;
};
typedef struct remote_secret_define_xml_args remote_secret_define_xml_args;
struct remote_secret_define_xml_ret {
remote_nonnull_secret secret;
};
typedef struct remote_secret_define_xml_ret remote_secret_define_xml_ret;
struct remote_secret_get_xml_desc_args {
remote_nonnull_secret secret;
u_int flags;
};
typedef struct remote_secret_get_xml_desc_args remote_secret_get_xml_desc_args;
struct remote_secret_get_xml_desc_ret {
remote_nonnull_string xml;
};
typedef struct remote_secret_get_xml_desc_ret remote_secret_get_xml_desc_ret;
struct remote_secret_set_value_args {
remote_nonnull_secret secret;
struct {
u_int value_len;
char *value_val;
} value;
u_int flags;
};
typedef struct remote_secret_set_value_args remote_secret_set_value_args;
struct remote_secret_get_value_args {
remote_nonnull_secret secret;
u_int flags;
};
typedef struct remote_secret_get_value_args remote_secret_get_value_args;
struct remote_secret_get_value_ret {
struct {
u_int value_len;
char *value_val;
} value;
};
typedef struct remote_secret_get_value_ret remote_secret_get_value_ret;
struct remote_secret_undefine_args {
remote_nonnull_secret secret;
};
typedef struct remote_secret_undefine_args remote_secret_undefine_args;
struct remote_secret_lookup_by_usage_args {
int usageType;
remote_nonnull_string usageID;
};
typedef struct remote_secret_lookup_by_usage_args remote_secret_lookup_by_usage_args;
struct remote_secret_lookup_by_usage_ret {
remote_nonnull_secret secret;
};
typedef struct remote_secret_lookup_by_usage_ret remote_secret_lookup_by_usage_ret;
struct remote_domain_migrate_prepare_tunnel_args {
uint64_t flags;
remote_string dname;
uint64_t resource;
remote_nonnull_string dom_xml;
};
typedef struct remote_domain_migrate_prepare_tunnel_args remote_domain_migrate_prepare_tunnel_args;
struct remote_is_secure_ret {
int secure;
};
typedef struct remote_is_secure_ret remote_is_secure_ret;
struct remote_domain_is_active_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_is_active_args remote_domain_is_active_args;
struct remote_domain_is_active_ret {
int active;
};
typedef struct remote_domain_is_active_ret remote_domain_is_active_ret;
struct remote_domain_is_persistent_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_is_persistent_args remote_domain_is_persistent_args;
struct remote_domain_is_persistent_ret {
int persistent;
};
typedef struct remote_domain_is_persistent_ret remote_domain_is_persistent_ret;
struct remote_network_is_active_args {
remote_nonnull_network net;
};
typedef struct remote_network_is_active_args remote_network_is_active_args;
struct remote_network_is_active_ret {
int active;
};
typedef struct remote_network_is_active_ret remote_network_is_active_ret;
struct remote_network_is_persistent_args {
remote_nonnull_network net;
};
typedef struct remote_network_is_persistent_args remote_network_is_persistent_args;
struct remote_network_is_persistent_ret {
int persistent;
};
typedef struct remote_network_is_persistent_ret remote_network_is_persistent_ret;
struct remote_storage_pool_is_active_args {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_is_active_args remote_storage_pool_is_active_args;
struct remote_storage_pool_is_active_ret {
int active;
};
typedef struct remote_storage_pool_is_active_ret remote_storage_pool_is_active_ret;
struct remote_storage_pool_is_persistent_args {
remote_nonnull_storage_pool pool;
};
typedef struct remote_storage_pool_is_persistent_args remote_storage_pool_is_persistent_args;
struct remote_storage_pool_is_persistent_ret {
int persistent;
};
typedef struct remote_storage_pool_is_persistent_ret remote_storage_pool_is_persistent_ret;
struct remote_interface_is_active_args {
remote_nonnull_interface iface;
};
typedef struct remote_interface_is_active_args remote_interface_is_active_args;
struct remote_interface_is_active_ret {
int active;
};
typedef struct remote_interface_is_active_ret remote_interface_is_active_ret;
struct remote_cpu_compare_args {
remote_nonnull_string xml;
u_int flags;
};
typedef struct remote_cpu_compare_args remote_cpu_compare_args;
struct remote_cpu_compare_ret {
int result;
};
typedef struct remote_cpu_compare_ret remote_cpu_compare_ret;
struct remote_cpu_baseline_args {
struct {
u_int xmlCPUs_len;
remote_nonnull_string *xmlCPUs_val;
} xmlCPUs;
u_int flags;
};
typedef struct remote_cpu_baseline_args remote_cpu_baseline_args;
struct remote_cpu_baseline_ret {
remote_nonnull_string cpu;
};
typedef struct remote_cpu_baseline_ret remote_cpu_baseline_ret;
struct remote_domain_get_job_info_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_get_job_info_args remote_domain_get_job_info_args;
struct remote_domain_get_job_info_ret {
int type;
uint64_t timeElapsed;
uint64_t timeRemaining;
uint64_t dataTotal;
uint64_t dataProcessed;
uint64_t dataRemaining;
uint64_t memTotal;
uint64_t memProcessed;
uint64_t memRemaining;
uint64_t fileTotal;
uint64_t fileProcessed;
uint64_t fileRemaining;
};
typedef struct remote_domain_get_job_info_ret remote_domain_get_job_info_ret;
struct remote_domain_abort_job_args {
remote_nonnull_domain dom;
};
typedef struct remote_domain_abort_job_args remote_domain_abort_job_args;
struct remote_domain_migrate_set_max_downtime_args {
remote_nonnull_domain dom;
uint64_t downtime;
u_int flags;
};
typedef struct remote_domain_migrate_set_max_downtime_args remote_domain_migrate_set_max_downtime_args;
Remote driver & daemon impl of new event API This wires up the remote driver to handle the new events APIs. The public API allows an application to request a callback filters events to a specific domain object, and register multiple callbacks for the same event type. On the wire there are two strategies for this - Register multiple callbacks with the remote daemon, each with filtering as needed - Register only one callback per event type, with no filtering Both approaches have potential inefficiency. In the first scheme, the same event gets sent over the wire many times if multiple callbacks are registered. With the second scheme, unneccessary events get sent over the wire if a per-domain filter is set on the client. The second scheme is far easier to implement though, so this patch takes that approach. * daemon/dispatch.h: Don't export remoteRelayDomainEvent since it is no longer needed for unregistering callbacks, instead the unique callback ID is used * daemon/libvirtd.c, daemon/libvirtd.h: Track and unregister callbacks based on callback ID, instead of function pointer * daemon/remote.c: Switch over to using virConnectDomainEventRegisterAny instead of legacy virConnectDomainEventRegister function. Refactor remoteDispatchDomainEventSend() to cope with arbitrary event types * src/driver.h, src/driver.c: Move verify() call into source file instead of header, to avoid polluting the global namespace with the verify function name * src/remote/remote_driver.c: Implement new APIs for event registration. Refactor processCallDispatchMessage() to cope with arbitrary incoming event types. Merge remoteDomainQueueEvent() into processCallDispatchMessage() to avoid duplication of code. Rename remoteDomainReadEvent() to remoteDomainReadEventLifecycle() * src/remote/remote_protocol.x: Define wire format for the new virConnectDomainEventRegisterAny and virConnectDomainEventDeregisterAny functions
2010-03-18 14:56:56 +00:00
struct remote_domain_events_register_any_args {
int eventID;
};
typedef struct remote_domain_events_register_any_args remote_domain_events_register_any_args;
struct remote_domain_events_deregister_any_args {
int eventID;
};
typedef struct remote_domain_events_deregister_any_args remote_domain_events_deregister_any_args;
struct remote_domain_event_reboot_msg {
remote_nonnull_domain dom;
};
typedef struct remote_domain_event_reboot_msg remote_domain_event_reboot_msg;
struct remote_domain_event_rtc_change_msg {
remote_nonnull_domain dom;
int64_t offset;
};
typedef struct remote_domain_event_rtc_change_msg remote_domain_event_rtc_change_msg;
struct remote_domain_event_watchdog_msg {
remote_nonnull_domain dom;
int action;
};
typedef struct remote_domain_event_watchdog_msg remote_domain_event_watchdog_msg;
Add support for an explicit IO error event This introduces a new event type VIR_DOMAIN_EVENT_ID_IO_ERROR This event includes the action that is about to be taken as a result of the watchdog triggering typedef enum { VIR_DOMAIN_EVENT_IO_ERROR_NONE = 0, VIR_DOMAIN_EVENT_IO_ERROR_PAUSE, VIR_DOMAIN_EVENT_IO_ERROR_REPORT, } virDomainEventIOErrorAction; In addition it has the source path of the disk that had the error and its unique device alias. It does not include the target device name (/dev/sda), since this would preclude triggering IO errors from other file backed devices (eg serial ports connected to a file) Thus there is a new callback definition for this event type typedef void (*virConnectDomainEventIOErrorCallback)(virConnectPtr conn, virDomainPtr dom, const char *srcPath, const char *devAlias, int action, void *opaque); This is currently wired up to the QEMU block IO error events * daemon/remote.c: Dispatch IO error events to client * examples/domain-events/events-c/event-test.c: Watch for IO error events * include/libvirt/libvirt.h.in: Define new IO error event ID and callback signature * src/conf/domain_event.c, src/conf/domain_event.h, src/libvirt_private.syms: Extend API to handle IO error events * src/qemu/qemu_driver.c: Connect to the QEMU monitor event for block IO errors and emit a libvirt IO error event * src/remote/remote_driver.c: Receive and dispatch IO error events to application * src/remote/remote_protocol.x: Wire protocol definition for IO error events * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h, src/qemu/qemu_monitor_json.c: Watch for BLOCK_IO_ERROR event from QEMU monitor
2010-03-18 19:37:44 +00:00
struct remote_domain_event_io_error_msg {
remote_nonnull_domain dom;
remote_nonnull_string srcPath;
remote_nonnull_string devAlias;
int action;
};
typedef struct remote_domain_event_io_error_msg remote_domain_event_io_error_msg;
#define REMOTE_PROGRAM 0x20008086
#define REMOTE_PROTOCOL_VERSION 1
enum remote_procedure {
REMOTE_PROC_OPEN = 1,
REMOTE_PROC_CLOSE = 2,
REMOTE_PROC_GET_TYPE = 3,
REMOTE_PROC_GET_VERSION = 4,
REMOTE_PROC_GET_MAX_VCPUS = 5,
REMOTE_PROC_NODE_GET_INFO = 6,
REMOTE_PROC_GET_CAPABILITIES = 7,
REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8,
REMOTE_PROC_DOMAIN_CREATE = 9,
REMOTE_PROC_DOMAIN_CREATE_XML = 10,
REMOTE_PROC_DOMAIN_DEFINE_XML = 11,
REMOTE_PROC_DOMAIN_DESTROY = 12,
REMOTE_PROC_DOMAIN_DETACH_DEVICE = 13,
REMOTE_PROC_DOMAIN_DUMP_XML = 14,
REMOTE_PROC_DOMAIN_GET_AUTOSTART = 15,
REMOTE_PROC_DOMAIN_GET_INFO = 16,
REMOTE_PROC_DOMAIN_GET_MAX_MEMORY = 17,
REMOTE_PROC_DOMAIN_GET_MAX_VCPUS = 18,
REMOTE_PROC_DOMAIN_GET_OS_TYPE = 19,
REMOTE_PROC_DOMAIN_GET_VCPUS = 20,
REMOTE_PROC_LIST_DEFINED_DOMAINS = 21,
REMOTE_PROC_DOMAIN_LOOKUP_BY_ID = 22,
REMOTE_PROC_DOMAIN_LOOKUP_BY_NAME = 23,
REMOTE_PROC_DOMAIN_LOOKUP_BY_UUID = 24,
REMOTE_PROC_NUM_OF_DEFINED_DOMAINS = 25,
REMOTE_PROC_DOMAIN_PIN_VCPU = 26,
REMOTE_PROC_DOMAIN_REBOOT = 27,
REMOTE_PROC_DOMAIN_RESUME = 28,
REMOTE_PROC_DOMAIN_SET_AUTOSTART = 29,
REMOTE_PROC_DOMAIN_SET_MAX_MEMORY = 30,
REMOTE_PROC_DOMAIN_SET_MEMORY = 31,
REMOTE_PROC_DOMAIN_SET_VCPUS = 32,
REMOTE_PROC_DOMAIN_SHUTDOWN = 33,
REMOTE_PROC_DOMAIN_SUSPEND = 34,
REMOTE_PROC_DOMAIN_UNDEFINE = 35,
REMOTE_PROC_LIST_DEFINED_NETWORKS = 36,
REMOTE_PROC_LIST_DOMAINS = 37,
REMOTE_PROC_LIST_NETWORKS = 38,
REMOTE_PROC_NETWORK_CREATE = 39,
REMOTE_PROC_NETWORK_CREATE_XML = 40,
REMOTE_PROC_NETWORK_DEFINE_XML = 41,
REMOTE_PROC_NETWORK_DESTROY = 42,
REMOTE_PROC_NETWORK_DUMP_XML = 43,
REMOTE_PROC_NETWORK_GET_AUTOSTART = 44,
REMOTE_PROC_NETWORK_GET_BRIDGE_NAME = 45,
REMOTE_PROC_NETWORK_LOOKUP_BY_NAME = 46,
REMOTE_PROC_NETWORK_LOOKUP_BY_UUID = 47,
REMOTE_PROC_NETWORK_SET_AUTOSTART = 48,
REMOTE_PROC_NETWORK_UNDEFINE = 49,
REMOTE_PROC_NUM_OF_DEFINED_NETWORKS = 50,
REMOTE_PROC_NUM_OF_DOMAINS = 51,
REMOTE_PROC_NUM_OF_NETWORKS = 52,
REMOTE_PROC_DOMAIN_CORE_DUMP = 53,
REMOTE_PROC_DOMAIN_RESTORE = 54,
REMOTE_PROC_DOMAIN_SAVE = 55,
REMOTE_PROC_DOMAIN_GET_SCHEDULER_TYPE = 56,
REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS = 57,
REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS = 58,
REMOTE_PROC_GET_HOSTNAME = 59,
REMOTE_PROC_SUPPORTS_FEATURE = 60,
REMOTE_PROC_DOMAIN_MIGRATE_PREPARE = 61,
REMOTE_PROC_DOMAIN_MIGRATE_PERFORM = 62,
REMOTE_PROC_DOMAIN_MIGRATE_FINISH = 63,
REMOTE_PROC_DOMAIN_BLOCK_STATS = 64,
REMOTE_PROC_DOMAIN_INTERFACE_STATS = 65,
REMOTE_PROC_AUTH_LIST = 66,
REMOTE_PROC_AUTH_SASL_INIT = 67,
REMOTE_PROC_AUTH_SASL_START = 68,
REMOTE_PROC_AUTH_SASL_STEP = 69,
REMOTE_PROC_AUTH_POLKIT = 70,
REMOTE_PROC_NUM_OF_STORAGE_POOLS = 71,
REMOTE_PROC_LIST_STORAGE_POOLS = 72,
REMOTE_PROC_NUM_OF_DEFINED_STORAGE_POOLS = 73,
REMOTE_PROC_LIST_DEFINED_STORAGE_POOLS = 74,
REMOTE_PROC_FIND_STORAGE_POOL_SOURCES = 75,
REMOTE_PROC_STORAGE_POOL_CREATE_XML = 76,
REMOTE_PROC_STORAGE_POOL_DEFINE_XML = 77,
REMOTE_PROC_STORAGE_POOL_CREATE = 78,
REMOTE_PROC_STORAGE_POOL_BUILD = 79,
REMOTE_PROC_STORAGE_POOL_DESTROY = 80,
REMOTE_PROC_STORAGE_POOL_DELETE = 81,
REMOTE_PROC_STORAGE_POOL_UNDEFINE = 82,
REMOTE_PROC_STORAGE_POOL_REFRESH = 83,
REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_NAME = 84,
REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_UUID = 85,
REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_VOLUME = 86,
REMOTE_PROC_STORAGE_POOL_GET_INFO = 87,
REMOTE_PROC_STORAGE_POOL_DUMP_XML = 88,
REMOTE_PROC_STORAGE_POOL_GET_AUTOSTART = 89,
REMOTE_PROC_STORAGE_POOL_SET_AUTOSTART = 90,
REMOTE_PROC_STORAGE_POOL_NUM_OF_VOLUMES = 91,
REMOTE_PROC_STORAGE_POOL_LIST_VOLUMES = 92,
REMOTE_PROC_STORAGE_VOL_CREATE_XML = 93,
REMOTE_PROC_STORAGE_VOL_DELETE = 94,
REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_NAME = 95,
REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_KEY = 96,
REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_PATH = 97,
REMOTE_PROC_STORAGE_VOL_GET_INFO = 98,
REMOTE_PROC_STORAGE_VOL_DUMP_XML = 99,
REMOTE_PROC_STORAGE_VOL_GET_PATH = 100,
REMOTE_PROC_NODE_GET_CELLS_FREE_MEMORY = 101,
REMOTE_PROC_NODE_GET_FREE_MEMORY = 102,
REMOTE_PROC_DOMAIN_BLOCK_PEEK = 103,
REMOTE_PROC_DOMAIN_MEMORY_PEEK = 104,
REMOTE_PROC_DOMAIN_EVENTS_REGISTER = 105,
REMOTE_PROC_DOMAIN_EVENTS_DEREGISTER = 106,
REMOTE_PROC_DOMAIN_EVENT_LIFECYCLE = 107,
REMOTE_PROC_DOMAIN_MIGRATE_PREPARE2 = 108,
REMOTE_PROC_DOMAIN_MIGRATE_FINISH2 = 109,
REMOTE_PROC_GET_URI = 110,
REMOTE_PROC_NODE_NUM_OF_DEVICES = 111,
REMOTE_PROC_NODE_LIST_DEVICES = 112,
REMOTE_PROC_NODE_DEVICE_LOOKUP_BY_NAME = 113,
REMOTE_PROC_NODE_DEVICE_DUMP_XML = 114,
REMOTE_PROC_NODE_DEVICE_GET_PARENT = 115,
REMOTE_PROC_NODE_DEVICE_NUM_OF_CAPS = 116,
REMOTE_PROC_NODE_DEVICE_LIST_CAPS = 117,
REMOTE_PROC_NODE_DEVICE_DETTACH = 118,
REMOTE_PROC_NODE_DEVICE_RE_ATTACH = 119,
REMOTE_PROC_NODE_DEVICE_RESET = 120,
REMOTE_PROC_DOMAIN_GET_SECURITY_LABEL = 121,
REMOTE_PROC_NODE_GET_SECURITY_MODEL = 122,
REMOTE_PROC_NODE_DEVICE_CREATE_XML = 123,
REMOTE_PROC_NODE_DEVICE_DESTROY = 124,
REMOTE_PROC_STORAGE_VOL_CREATE_XML_FROM = 125,
REMOTE_PROC_NUM_OF_INTERFACES = 126,
REMOTE_PROC_LIST_INTERFACES = 127,
REMOTE_PROC_INTERFACE_LOOKUP_BY_NAME = 128,
REMOTE_PROC_INTERFACE_LOOKUP_BY_MAC_STRING = 129,
REMOTE_PROC_INTERFACE_GET_XML_DESC = 130,
REMOTE_PROC_INTERFACE_DEFINE_XML = 131,
REMOTE_PROC_INTERFACE_UNDEFINE = 132,
REMOTE_PROC_INTERFACE_CREATE = 133,
REMOTE_PROC_INTERFACE_DESTROY = 134,
REMOTE_PROC_DOMAIN_XML_FROM_NATIVE = 135,
REMOTE_PROC_DOMAIN_XML_TO_NATIVE = 136,
REMOTE_PROC_NUM_OF_DEFINED_INTERFACES = 137,
REMOTE_PROC_LIST_DEFINED_INTERFACES = 138,
REMOTE_PROC_NUM_OF_SECRETS = 139,
REMOTE_PROC_LIST_SECRETS = 140,
Fix UUID handling in secrets/storage encryption APIs Convert all the secret/storage encryption APIs / wire format to handle UUIDs in raw format instead of non-canonical printable format. Guarentees data format correctness. * docs/schemas/storageencryption.rng: Make UUID mandatory for a secret and validate fully * docs/schemas/secret.rng: Fully validate UUID * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add virSecretLookupByUUID and virSecretGetUUID. Make virSecretGetUUIDString follow normal API design pattern * python/generator.py: Skip generation of virSecretGetUUID, virSecretGetUUIDString and virSecretLookupByUUID * python/libvir.c, python/libvirt-python-api.xml: Manual impl of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID * qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/ Fix get_nonnull_secret/make_nonnull_secret to use unsigned char * qemud/remote_protocol.x: Fix remote_nonnull_secret to use a remote_uuid instead of remote_nonnull_string for UUID field. Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an remote_uuid value * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h, qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate * src/datatypes.h, src/datatypes.c: Store UUID in raw format instead of printable. Change virGetSecret to use raw format UUID * src/driver.h: Rename virDrvSecretLookupByUUIDString to virDrvSecretLookupByUUID and use raw format UUID * src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID and re-implement virSecretLookupByUUIDString and virSecretGetUUIDString in terms of those * src/libvirt_public.syms: Add virSecretLookupByUUID and virSecretGetUUID * src/remote_internal.c: Rename remoteSecretLookupByUUIDString to remoteSecretLookupByUUID. Fix typo in args for remoteSecretDefineXML impl. Use raw UUID format for get_nonnull_secret and make_nonnull_secret * src/storage_encryption_conf.c, src/storage_encryption_conf.h: Storage UUID in raw format, and require it to be present in XML. Use UUID parser to validate. * secret_conf.h, secret_conf.c: Generate a UUID if none is provided. Storage UUID in raw format. * src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets in a filed with printable UUID, instead of base64 UUID. * src/virsh.c: Adjust for changed public API contract of virSecretGetUUIDString. * src/storage_Backend.c: DOn't undefine secret we just generated upon successful volume creation. Fix to handle raw UUIDs. Generate a non-clashing UUID * src/qemu_driver.c: Change to use lookupByUUID instead of lookupByUUIDString
2009-09-10 16:44:12 +00:00
REMOTE_PROC_SECRET_LOOKUP_BY_UUID = 141,
REMOTE_PROC_SECRET_DEFINE_XML = 142,
REMOTE_PROC_SECRET_GET_XML_DESC = 143,
REMOTE_PROC_SECRET_SET_VALUE = 144,
REMOTE_PROC_SECRET_GET_VALUE = 145,
REMOTE_PROC_SECRET_UNDEFINE = 146,
REMOTE_PROC_SECRET_LOOKUP_BY_USAGE = 147,
REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL = 148,
REMOTE_PROC_IS_SECURE = 149,
REMOTE_PROC_DOMAIN_IS_ACTIVE = 150,
REMOTE_PROC_DOMAIN_IS_PERSISTENT = 151,
REMOTE_PROC_NETWORK_IS_ACTIVE = 152,
REMOTE_PROC_NETWORK_IS_PERSISTENT = 153,
REMOTE_PROC_STORAGE_POOL_IS_ACTIVE = 154,
REMOTE_PROC_STORAGE_POOL_IS_PERSISTENT = 155,
REMOTE_PROC_INTERFACE_IS_ACTIVE = 156,
REMOTE_PROC_GET_LIB_VERSION = 157,
REMOTE_PROC_CPU_COMPARE = 158,
REMOTE_PROC_DOMAIN_MEMORY_STATS = 159,
REMOTE_PROC_DOMAIN_ATTACH_DEVICE_FLAGS = 160,
REMOTE_PROC_DOMAIN_DETACH_DEVICE_FLAGS = 161,
REMOTE_PROC_CPU_BASELINE = 162,
REMOTE_PROC_DOMAIN_GET_JOB_INFO = 163,
REMOTE_PROC_DOMAIN_ABORT_JOB = 164,
2010-03-01 20:32:35 +00:00
REMOTE_PROC_STORAGE_VOL_WIPE = 165,
REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_DOWNTIME = 166,
Remote driver & daemon impl of new event API This wires up the remote driver to handle the new events APIs. The public API allows an application to request a callback filters events to a specific domain object, and register multiple callbacks for the same event type. On the wire there are two strategies for this - Register multiple callbacks with the remote daemon, each with filtering as needed - Register only one callback per event type, with no filtering Both approaches have potential inefficiency. In the first scheme, the same event gets sent over the wire many times if multiple callbacks are registered. With the second scheme, unneccessary events get sent over the wire if a per-domain filter is set on the client. The second scheme is far easier to implement though, so this patch takes that approach. * daemon/dispatch.h: Don't export remoteRelayDomainEvent since it is no longer needed for unregistering callbacks, instead the unique callback ID is used * daemon/libvirtd.c, daemon/libvirtd.h: Track and unregister callbacks based on callback ID, instead of function pointer * daemon/remote.c: Switch over to using virConnectDomainEventRegisterAny instead of legacy virConnectDomainEventRegister function. Refactor remoteDispatchDomainEventSend() to cope with arbitrary event types * src/driver.h, src/driver.c: Move verify() call into source file instead of header, to avoid polluting the global namespace with the verify function name * src/remote/remote_driver.c: Implement new APIs for event registration. Refactor processCallDispatchMessage() to cope with arbitrary incoming event types. Merge remoteDomainQueueEvent() into processCallDispatchMessage() to avoid duplication of code. Rename remoteDomainReadEvent() to remoteDomainReadEventLifecycle() * src/remote/remote_protocol.x: Define wire format for the new virConnectDomainEventRegisterAny and virConnectDomainEventDeregisterAny functions
2010-03-18 14:56:56 +00:00
REMOTE_PROC_DOMAIN_EVENTS_REGISTER_ANY = 167,
REMOTE_PROC_DOMAIN_EVENTS_DEREGISTER_ANY = 168,
REMOTE_PROC_DOMAIN_EVENT_REBOOT = 169,
REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE = 170,
REMOTE_PROC_DOMAIN_EVENT_WATCHDOG = 171,
Add support for an explicit IO error event This introduces a new event type VIR_DOMAIN_EVENT_ID_IO_ERROR This event includes the action that is about to be taken as a result of the watchdog triggering typedef enum { VIR_DOMAIN_EVENT_IO_ERROR_NONE = 0, VIR_DOMAIN_EVENT_IO_ERROR_PAUSE, VIR_DOMAIN_EVENT_IO_ERROR_REPORT, } virDomainEventIOErrorAction; In addition it has the source path of the disk that had the error and its unique device alias. It does not include the target device name (/dev/sda), since this would preclude triggering IO errors from other file backed devices (eg serial ports connected to a file) Thus there is a new callback definition for this event type typedef void (*virConnectDomainEventIOErrorCallback)(virConnectPtr conn, virDomainPtr dom, const char *srcPath, const char *devAlias, int action, void *opaque); This is currently wired up to the QEMU block IO error events * daemon/remote.c: Dispatch IO error events to client * examples/domain-events/events-c/event-test.c: Watch for IO error events * include/libvirt/libvirt.h.in: Define new IO error event ID and callback signature * src/conf/domain_event.c, src/conf/domain_event.h, src/libvirt_private.syms: Extend API to handle IO error events * src/qemu/qemu_driver.c: Connect to the QEMU monitor event for block IO errors and emit a libvirt IO error event * src/remote/remote_driver.c: Receive and dispatch IO error events to application * src/remote/remote_protocol.x: Wire protocol definition for IO error events * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h, src/qemu/qemu_monitor_json.c: Watch for BLOCK_IO_ERROR event from QEMU monitor
2010-03-18 19:37:44 +00:00
REMOTE_PROC_DOMAIN_EVENT_IO_ERROR = 172,
};
typedef enum remote_procedure remote_procedure;
enum remote_message_type {
REMOTE_CALL = 0,
REMOTE_REPLY = 1,
REMOTE_MESSAGE = 2,
Helper functions for processing data streams in libvirtd Defines the extensions to the remote protocol for generic data streams. Adds a bunch of helper code to the libvirtd daemon for working with data streams. * daemon/Makefile.am: Add stream.c/stream.h to build * daemon/stream.c, qemud/stream.h: Generic helper functions for creating new streams, associating streams with clients, finding existing streams for a client and removing/deleting streams. * src/remote/remote_protocol.x: Add a new 'REMOTE_STREAM' constant for the 'enum remote_message_type' for encoding stream data in wire messages. Add a new 'REMOTE_CONTINUE' constant to 'enum remote_message_status' to indicate further data stream messsages are expected to follow. Document how the remote_message_header is used to encode data streams * src/remote/remote_protocol.h: Regenerate * daemon/dispatch.c: Remove assumption that a error message sent to client is always type=REMOTE_REPLY. It may now also be type=REMOTE_STREAM. Add convenient method for sending outgoing stream data packets. Log and ignore non-filtered incoming stream packets. Add a method for serializing a stream error message * daemon/dispatch.h: Add API for serializing stream errors and sending stream data packets * daemon/qemud.h: Add struct qemud_client_stream for tracking active data streams for clients. Tweak filter function operation so that it accepts a client object too. * daemon/qemud.c: Refactor code for free'ing message objects which have been fully transmitted into separate method. Release all active streams when client shuts down. Change filter function to be responsible for queueing the message
2009-07-10 12:06:36 +00:00
REMOTE_STREAM = 3,
};
typedef enum remote_message_type remote_message_type;
enum remote_message_status {
REMOTE_OK = 0,
REMOTE_ERROR = 1,
Helper functions for processing data streams in libvirtd Defines the extensions to the remote protocol for generic data streams. Adds a bunch of helper code to the libvirtd daemon for working with data streams. * daemon/Makefile.am: Add stream.c/stream.h to build * daemon/stream.c, qemud/stream.h: Generic helper functions for creating new streams, associating streams with clients, finding existing streams for a client and removing/deleting streams. * src/remote/remote_protocol.x: Add a new 'REMOTE_STREAM' constant for the 'enum remote_message_type' for encoding stream data in wire messages. Add a new 'REMOTE_CONTINUE' constant to 'enum remote_message_status' to indicate further data stream messsages are expected to follow. Document how the remote_message_header is used to encode data streams * src/remote/remote_protocol.h: Regenerate * daemon/dispatch.c: Remove assumption that a error message sent to client is always type=REMOTE_REPLY. It may now also be type=REMOTE_STREAM. Add convenient method for sending outgoing stream data packets. Log and ignore non-filtered incoming stream packets. Add a method for serializing a stream error message * daemon/dispatch.h: Add API for serializing stream errors and sending stream data packets * daemon/qemud.h: Add struct qemud_client_stream for tracking active data streams for clients. Tweak filter function operation so that it accepts a client object too. * daemon/qemud.c: Refactor code for free'ing message objects which have been fully transmitted into separate method. Release all active streams when client shuts down. Change filter function to be responsible for queueing the message
2009-07-10 12:06:36 +00:00
REMOTE_CONTINUE = 2,
};
typedef enum remote_message_status remote_message_status;
#define REMOTE_MESSAGE_HEADER_XDR_LEN 4
struct remote_message_header {
u_int prog;
u_int vers;
remote_procedure proc;
remote_message_type type;
u_int serial;
remote_message_status status;
};
typedef struct remote_message_header remote_message_header;
/* the xdr functions */
#if defined(__STDC__) || defined(__cplusplus)
extern bool_t xdr_remote_nonnull_string (XDR *, remote_nonnull_string*);
extern bool_t xdr_remote_string (XDR *, remote_string*);
extern bool_t xdr_remote_uuid (XDR *, remote_uuid);
extern bool_t xdr_remote_nonnull_domain (XDR *, remote_nonnull_domain*);
extern bool_t xdr_remote_nonnull_network (XDR *, remote_nonnull_network*);
extern bool_t xdr_remote_nonnull_interface (XDR *, remote_nonnull_interface*);
extern bool_t xdr_remote_nonnull_storage_pool (XDR *, remote_nonnull_storage_pool*);
extern bool_t xdr_remote_nonnull_storage_vol (XDR *, remote_nonnull_storage_vol*);
extern bool_t xdr_remote_nonnull_node_device (XDR *, remote_nonnull_node_device*);
extern bool_t xdr_remote_nonnull_secret (XDR *, remote_nonnull_secret*);
extern bool_t xdr_remote_domain (XDR *, remote_domain*);
extern bool_t xdr_remote_network (XDR *, remote_network*);
extern bool_t xdr_remote_storage_pool (XDR *, remote_storage_pool*);
extern bool_t xdr_remote_storage_vol (XDR *, remote_storage_vol*);
extern bool_t xdr_remote_node_device (XDR *, remote_node_device*);
extern bool_t xdr_remote_error (XDR *, remote_error*);
extern bool_t xdr_remote_auth_type (XDR *, remote_auth_type*);
extern bool_t xdr_remote_vcpu_info (XDR *, remote_vcpu_info*);
extern bool_t xdr_remote_sched_param_value (XDR *, remote_sched_param_value*);
extern bool_t xdr_remote_sched_param (XDR *, remote_sched_param*);
extern bool_t xdr_remote_open_args (XDR *, remote_open_args*);
extern bool_t xdr_remote_supports_feature_args (XDR *, remote_supports_feature_args*);
extern bool_t xdr_remote_supports_feature_ret (XDR *, remote_supports_feature_ret*);
extern bool_t xdr_remote_get_type_ret (XDR *, remote_get_type_ret*);
extern bool_t xdr_remote_get_version_ret (XDR *, remote_get_version_ret*);
extern bool_t xdr_remote_get_lib_version_ret (XDR *, remote_get_lib_version_ret*);
extern bool_t xdr_remote_get_hostname_ret (XDR *, remote_get_hostname_ret*);
extern bool_t xdr_remote_get_uri_ret (XDR *, remote_get_uri_ret*);
extern bool_t xdr_remote_get_max_vcpus_args (XDR *, remote_get_max_vcpus_args*);
extern bool_t xdr_remote_get_max_vcpus_ret (XDR *, remote_get_max_vcpus_ret*);
extern bool_t xdr_remote_node_get_info_ret (XDR *, remote_node_get_info_ret*);
extern bool_t xdr_remote_get_capabilities_ret (XDR *, remote_get_capabilities_ret*);
extern bool_t xdr_remote_node_get_cells_free_memory_args (XDR *, remote_node_get_cells_free_memory_args*);
extern bool_t xdr_remote_node_get_cells_free_memory_ret (XDR *, remote_node_get_cells_free_memory_ret*);
extern bool_t xdr_remote_node_get_free_memory_ret (XDR *, remote_node_get_free_memory_ret*);
extern bool_t xdr_remote_domain_get_scheduler_type_args (XDR *, remote_domain_get_scheduler_type_args*);
extern bool_t xdr_remote_domain_get_scheduler_type_ret (XDR *, remote_domain_get_scheduler_type_ret*);
extern bool_t xdr_remote_domain_get_scheduler_parameters_args (XDR *, remote_domain_get_scheduler_parameters_args*);
extern bool_t xdr_remote_domain_get_scheduler_parameters_ret (XDR *, remote_domain_get_scheduler_parameters_ret*);
extern bool_t xdr_remote_domain_set_scheduler_parameters_args (XDR *, remote_domain_set_scheduler_parameters_args*);
extern bool_t xdr_remote_domain_block_stats_args (XDR *, remote_domain_block_stats_args*);
extern bool_t xdr_remote_domain_block_stats_ret (XDR *, remote_domain_block_stats_ret*);
extern bool_t xdr_remote_domain_interface_stats_args (XDR *, remote_domain_interface_stats_args*);
extern bool_t xdr_remote_domain_interface_stats_ret (XDR *, remote_domain_interface_stats_ret*);
extern bool_t xdr_remote_domain_memory_stats_args (XDR *, remote_domain_memory_stats_args*);
extern bool_t xdr_remote_domain_memory_stat (XDR *, remote_domain_memory_stat*);
extern bool_t xdr_remote_domain_memory_stats_ret (XDR *, remote_domain_memory_stats_ret*);
extern bool_t xdr_remote_domain_block_peek_args (XDR *, remote_domain_block_peek_args*);
extern bool_t xdr_remote_domain_block_peek_ret (XDR *, remote_domain_block_peek_ret*);
extern bool_t xdr_remote_domain_memory_peek_args (XDR *, remote_domain_memory_peek_args*);
extern bool_t xdr_remote_domain_memory_peek_ret (XDR *, remote_domain_memory_peek_ret*);
extern bool_t xdr_remote_list_domains_args (XDR *, remote_list_domains_args*);
extern bool_t xdr_remote_list_domains_ret (XDR *, remote_list_domains_ret*);
extern bool_t xdr_remote_num_of_domains_ret (XDR *, remote_num_of_domains_ret*);
extern bool_t xdr_remote_domain_create_xml_args (XDR *, remote_domain_create_xml_args*);
extern bool_t xdr_remote_domain_create_xml_ret (XDR *, remote_domain_create_xml_ret*);
extern bool_t xdr_remote_domain_lookup_by_id_args (XDR *, remote_domain_lookup_by_id_args*);
extern bool_t xdr_remote_domain_lookup_by_id_ret (XDR *, remote_domain_lookup_by_id_ret*);
extern bool_t xdr_remote_domain_lookup_by_uuid_args (XDR *, remote_domain_lookup_by_uuid_args*);
extern bool_t xdr_remote_domain_lookup_by_uuid_ret (XDR *, remote_domain_lookup_by_uuid_ret*);
extern bool_t xdr_remote_domain_lookup_by_name_args (XDR *, remote_domain_lookup_by_name_args*);
extern bool_t xdr_remote_domain_lookup_by_name_ret (XDR *, remote_domain_lookup_by_name_ret*);
extern bool_t xdr_remote_domain_suspend_args (XDR *, remote_domain_suspend_args*);
extern bool_t xdr_remote_domain_resume_args (XDR *, remote_domain_resume_args*);
extern bool_t xdr_remote_domain_shutdown_args (XDR *, remote_domain_shutdown_args*);
extern bool_t xdr_remote_domain_reboot_args (XDR *, remote_domain_reboot_args*);
extern bool_t xdr_remote_domain_destroy_args (XDR *, remote_domain_destroy_args*);
extern bool_t xdr_remote_domain_get_os_type_args (XDR *, remote_domain_get_os_type_args*);
extern bool_t xdr_remote_domain_get_os_type_ret (XDR *, remote_domain_get_os_type_ret*);
extern bool_t xdr_remote_domain_get_max_memory_args (XDR *, remote_domain_get_max_memory_args*);
extern bool_t xdr_remote_domain_get_max_memory_ret (XDR *, remote_domain_get_max_memory_ret*);
extern bool_t xdr_remote_domain_set_max_memory_args (XDR *, remote_domain_set_max_memory_args*);
extern bool_t xdr_remote_domain_set_memory_args (XDR *, remote_domain_set_memory_args*);
extern bool_t xdr_remote_domain_get_info_args (XDR *, remote_domain_get_info_args*);
extern bool_t xdr_remote_domain_get_info_ret (XDR *, remote_domain_get_info_ret*);
extern bool_t xdr_remote_domain_save_args (XDR *, remote_domain_save_args*);
extern bool_t xdr_remote_domain_restore_args (XDR *, remote_domain_restore_args*);
extern bool_t xdr_remote_domain_core_dump_args (XDR *, remote_domain_core_dump_args*);
extern bool_t xdr_remote_domain_dump_xml_args (XDR *, remote_domain_dump_xml_args*);
extern bool_t xdr_remote_domain_dump_xml_ret (XDR *, remote_domain_dump_xml_ret*);
extern bool_t xdr_remote_domain_migrate_prepare_args (XDR *, remote_domain_migrate_prepare_args*);
extern bool_t xdr_remote_domain_migrate_prepare_ret (XDR *, remote_domain_migrate_prepare_ret*);
extern bool_t xdr_remote_domain_migrate_perform_args (XDR *, remote_domain_migrate_perform_args*);
extern bool_t xdr_remote_domain_migrate_finish_args (XDR *, remote_domain_migrate_finish_args*);
extern bool_t xdr_remote_domain_migrate_finish_ret (XDR *, remote_domain_migrate_finish_ret*);
extern bool_t xdr_remote_domain_migrate_prepare2_args (XDR *, remote_domain_migrate_prepare2_args*);
extern bool_t xdr_remote_domain_migrate_prepare2_ret (XDR *, remote_domain_migrate_prepare2_ret*);
extern bool_t xdr_remote_domain_migrate_finish2_args (XDR *, remote_domain_migrate_finish2_args*);
extern bool_t xdr_remote_domain_migrate_finish2_ret (XDR *, remote_domain_migrate_finish2_ret*);
extern bool_t xdr_remote_list_defined_domains_args (XDR *, remote_list_defined_domains_args*);
extern bool_t xdr_remote_list_defined_domains_ret (XDR *, remote_list_defined_domains_ret*);
extern bool_t xdr_remote_num_of_defined_domains_ret (XDR *, remote_num_of_defined_domains_ret*);
extern bool_t xdr_remote_domain_create_args (XDR *, remote_domain_create_args*);
extern bool_t xdr_remote_domain_define_xml_args (XDR *, remote_domain_define_xml_args*);
extern bool_t xdr_remote_domain_define_xml_ret (XDR *, remote_domain_define_xml_ret*);
extern bool_t xdr_remote_domain_undefine_args (XDR *, remote_domain_undefine_args*);
extern bool_t xdr_remote_domain_set_vcpus_args (XDR *, remote_domain_set_vcpus_args*);
extern bool_t xdr_remote_domain_pin_vcpu_args (XDR *, remote_domain_pin_vcpu_args*);
extern bool_t xdr_remote_domain_get_vcpus_args (XDR *, remote_domain_get_vcpus_args*);
extern bool_t xdr_remote_domain_get_vcpus_ret (XDR *, remote_domain_get_vcpus_ret*);
extern bool_t xdr_remote_domain_get_max_vcpus_args (XDR *, remote_domain_get_max_vcpus_args*);
extern bool_t xdr_remote_domain_get_max_vcpus_ret (XDR *, remote_domain_get_max_vcpus_ret*);
extern bool_t xdr_remote_domain_get_security_label_args (XDR *, remote_domain_get_security_label_args*);
extern bool_t xdr_remote_domain_get_security_label_ret (XDR *, remote_domain_get_security_label_ret*);
extern bool_t xdr_remote_node_get_security_model_ret (XDR *, remote_node_get_security_model_ret*);
extern bool_t xdr_remote_domain_attach_device_args (XDR *, remote_domain_attach_device_args*);
extern bool_t xdr_remote_domain_attach_device_flags_args (XDR *, remote_domain_attach_device_flags_args*);
extern bool_t xdr_remote_domain_detach_device_args (XDR *, remote_domain_detach_device_args*);
extern bool_t xdr_remote_domain_detach_device_flags_args (XDR *, remote_domain_detach_device_flags_args*);
extern bool_t xdr_remote_domain_get_autostart_args (XDR *, remote_domain_get_autostart_args*);
extern bool_t xdr_remote_domain_get_autostart_ret (XDR *, remote_domain_get_autostart_ret*);
extern bool_t xdr_remote_domain_set_autostart_args (XDR *, remote_domain_set_autostart_args*);
extern bool_t xdr_remote_num_of_networks_ret (XDR *, remote_num_of_networks_ret*);
extern bool_t xdr_remote_list_networks_args (XDR *, remote_list_networks_args*);
extern bool_t xdr_remote_list_networks_ret (XDR *, remote_list_networks_ret*);
extern bool_t xdr_remote_num_of_defined_networks_ret (XDR *, remote_num_of_defined_networks_ret*);
extern bool_t xdr_remote_list_defined_networks_args (XDR *, remote_list_defined_networks_args*);
extern bool_t xdr_remote_list_defined_networks_ret (XDR *, remote_list_defined_networks_ret*);
extern bool_t xdr_remote_network_lookup_by_uuid_args (XDR *, remote_network_lookup_by_uuid_args*);
extern bool_t xdr_remote_network_lookup_by_uuid_ret (XDR *, remote_network_lookup_by_uuid_ret*);
extern bool_t xdr_remote_network_lookup_by_name_args (XDR *, remote_network_lookup_by_name_args*);
extern bool_t xdr_remote_network_lookup_by_name_ret (XDR *, remote_network_lookup_by_name_ret*);
extern bool_t xdr_remote_network_create_xml_args (XDR *, remote_network_create_xml_args*);
extern bool_t xdr_remote_network_create_xml_ret (XDR *, remote_network_create_xml_ret*);
extern bool_t xdr_remote_network_define_xml_args (XDR *, remote_network_define_xml_args*);
extern bool_t xdr_remote_network_define_xml_ret (XDR *, remote_network_define_xml_ret*);
extern bool_t xdr_remote_network_undefine_args (XDR *, remote_network_undefine_args*);
extern bool_t xdr_remote_network_create_args (XDR *, remote_network_create_args*);
extern bool_t xdr_remote_network_destroy_args (XDR *, remote_network_destroy_args*);
extern bool_t xdr_remote_network_dump_xml_args (XDR *, remote_network_dump_xml_args*);
extern bool_t xdr_remote_network_dump_xml_ret (XDR *, remote_network_dump_xml_ret*);
extern bool_t xdr_remote_network_get_bridge_name_args (XDR *, remote_network_get_bridge_name_args*);
extern bool_t xdr_remote_network_get_bridge_name_ret (XDR *, remote_network_get_bridge_name_ret*);
extern bool_t xdr_remote_network_get_autostart_args (XDR *, remote_network_get_autostart_args*);
extern bool_t xdr_remote_network_get_autostart_ret (XDR *, remote_network_get_autostart_ret*);
extern bool_t xdr_remote_network_set_autostart_args (XDR *, remote_network_set_autostart_args*);
extern bool_t xdr_remote_num_of_interfaces_ret (XDR *, remote_num_of_interfaces_ret*);
extern bool_t xdr_remote_list_interfaces_args (XDR *, remote_list_interfaces_args*);
extern bool_t xdr_remote_list_interfaces_ret (XDR *, remote_list_interfaces_ret*);
extern bool_t xdr_remote_num_of_defined_interfaces_ret (XDR *, remote_num_of_defined_interfaces_ret*);
extern bool_t xdr_remote_list_defined_interfaces_args (XDR *, remote_list_defined_interfaces_args*);
extern bool_t xdr_remote_list_defined_interfaces_ret (XDR *, remote_list_defined_interfaces_ret*);
extern bool_t xdr_remote_interface_lookup_by_name_args (XDR *, remote_interface_lookup_by_name_args*);
extern bool_t xdr_remote_interface_lookup_by_name_ret (XDR *, remote_interface_lookup_by_name_ret*);
extern bool_t xdr_remote_interface_lookup_by_mac_string_args (XDR *, remote_interface_lookup_by_mac_string_args*);
extern bool_t xdr_remote_interface_lookup_by_mac_string_ret (XDR *, remote_interface_lookup_by_mac_string_ret*);
extern bool_t xdr_remote_interface_get_xml_desc_args (XDR *, remote_interface_get_xml_desc_args*);
extern bool_t xdr_remote_interface_get_xml_desc_ret (XDR *, remote_interface_get_xml_desc_ret*);
extern bool_t xdr_remote_interface_define_xml_args (XDR *, remote_interface_define_xml_args*);
extern bool_t xdr_remote_interface_define_xml_ret (XDR *, remote_interface_define_xml_ret*);
extern bool_t xdr_remote_interface_undefine_args (XDR *, remote_interface_undefine_args*);
extern bool_t xdr_remote_interface_create_args (XDR *, remote_interface_create_args*);
extern bool_t xdr_remote_interface_destroy_args (XDR *, remote_interface_destroy_args*);
extern bool_t xdr_remote_auth_list_ret (XDR *, remote_auth_list_ret*);
extern bool_t xdr_remote_auth_sasl_init_ret (XDR *, remote_auth_sasl_init_ret*);
extern bool_t xdr_remote_auth_sasl_start_args (XDR *, remote_auth_sasl_start_args*);
extern bool_t xdr_remote_auth_sasl_start_ret (XDR *, remote_auth_sasl_start_ret*);
extern bool_t xdr_remote_auth_sasl_step_args (XDR *, remote_auth_sasl_step_args*);
extern bool_t xdr_remote_auth_sasl_step_ret (XDR *, remote_auth_sasl_step_ret*);
2007-12-05 18:21:27 +00:00
extern bool_t xdr_remote_auth_polkit_ret (XDR *, remote_auth_polkit_ret*);
extern bool_t xdr_remote_num_of_storage_pools_ret (XDR *, remote_num_of_storage_pools_ret*);
extern bool_t xdr_remote_list_storage_pools_args (XDR *, remote_list_storage_pools_args*);
extern bool_t xdr_remote_list_storage_pools_ret (XDR *, remote_list_storage_pools_ret*);
extern bool_t xdr_remote_num_of_defined_storage_pools_ret (XDR *, remote_num_of_defined_storage_pools_ret*);
extern bool_t xdr_remote_list_defined_storage_pools_args (XDR *, remote_list_defined_storage_pools_args*);
extern bool_t xdr_remote_list_defined_storage_pools_ret (XDR *, remote_list_defined_storage_pools_ret*);
extern bool_t xdr_remote_find_storage_pool_sources_args (XDR *, remote_find_storage_pool_sources_args*);
extern bool_t xdr_remote_find_storage_pool_sources_ret (XDR *, remote_find_storage_pool_sources_ret*);
extern bool_t xdr_remote_storage_pool_lookup_by_uuid_args (XDR *, remote_storage_pool_lookup_by_uuid_args*);
extern bool_t xdr_remote_storage_pool_lookup_by_uuid_ret (XDR *, remote_storage_pool_lookup_by_uuid_ret*);
extern bool_t xdr_remote_storage_pool_lookup_by_name_args (XDR *, remote_storage_pool_lookup_by_name_args*);
extern bool_t xdr_remote_storage_pool_lookup_by_name_ret (XDR *, remote_storage_pool_lookup_by_name_ret*);
extern bool_t xdr_remote_storage_pool_lookup_by_volume_args (XDR *, remote_storage_pool_lookup_by_volume_args*);
extern bool_t xdr_remote_storage_pool_lookup_by_volume_ret (XDR *, remote_storage_pool_lookup_by_volume_ret*);
extern bool_t xdr_remote_storage_pool_create_xml_args (XDR *, remote_storage_pool_create_xml_args*);
extern bool_t xdr_remote_storage_pool_create_xml_ret (XDR *, remote_storage_pool_create_xml_ret*);
extern bool_t xdr_remote_storage_pool_define_xml_args (XDR *, remote_storage_pool_define_xml_args*);
extern bool_t xdr_remote_storage_pool_define_xml_ret (XDR *, remote_storage_pool_define_xml_ret*);
extern bool_t xdr_remote_storage_pool_build_args (XDR *, remote_storage_pool_build_args*);
extern bool_t xdr_remote_storage_pool_undefine_args (XDR *, remote_storage_pool_undefine_args*);
extern bool_t xdr_remote_storage_pool_create_args (XDR *, remote_storage_pool_create_args*);
extern bool_t xdr_remote_storage_pool_destroy_args (XDR *, remote_storage_pool_destroy_args*);
extern bool_t xdr_remote_storage_pool_delete_args (XDR *, remote_storage_pool_delete_args*);
extern bool_t xdr_remote_storage_pool_refresh_args (XDR *, remote_storage_pool_refresh_args*);
extern bool_t xdr_remote_storage_pool_dump_xml_args (XDR *, remote_storage_pool_dump_xml_args*);
extern bool_t xdr_remote_storage_pool_dump_xml_ret (XDR *, remote_storage_pool_dump_xml_ret*);
extern bool_t xdr_remote_storage_pool_get_info_args (XDR *, remote_storage_pool_get_info_args*);
extern bool_t xdr_remote_storage_pool_get_info_ret (XDR *, remote_storage_pool_get_info_ret*);
extern bool_t xdr_remote_storage_pool_get_autostart_args (XDR *, remote_storage_pool_get_autostart_args*);
extern bool_t xdr_remote_storage_pool_get_autostart_ret (XDR *, remote_storage_pool_get_autostart_ret*);
extern bool_t xdr_remote_storage_pool_set_autostart_args (XDR *, remote_storage_pool_set_autostart_args*);
extern bool_t xdr_remote_storage_pool_num_of_volumes_args (XDR *, remote_storage_pool_num_of_volumes_args*);
extern bool_t xdr_remote_storage_pool_num_of_volumes_ret (XDR *, remote_storage_pool_num_of_volumes_ret*);
extern bool_t xdr_remote_storage_pool_list_volumes_args (XDR *, remote_storage_pool_list_volumes_args*);
extern bool_t xdr_remote_storage_pool_list_volumes_ret (XDR *, remote_storage_pool_list_volumes_ret*);
extern bool_t xdr_remote_storage_vol_lookup_by_name_args (XDR *, remote_storage_vol_lookup_by_name_args*);
extern bool_t xdr_remote_storage_vol_lookup_by_name_ret (XDR *, remote_storage_vol_lookup_by_name_ret*);
extern bool_t xdr_remote_storage_vol_lookup_by_key_args (XDR *, remote_storage_vol_lookup_by_key_args*);
extern bool_t xdr_remote_storage_vol_lookup_by_key_ret (XDR *, remote_storage_vol_lookup_by_key_ret*);
extern bool_t xdr_remote_storage_vol_lookup_by_path_args (XDR *, remote_storage_vol_lookup_by_path_args*);
extern bool_t xdr_remote_storage_vol_lookup_by_path_ret (XDR *, remote_storage_vol_lookup_by_path_ret*);
extern bool_t xdr_remote_storage_vol_create_xml_args (XDR *, remote_storage_vol_create_xml_args*);
extern bool_t xdr_remote_storage_vol_create_xml_ret (XDR *, remote_storage_vol_create_xml_ret*);
extern bool_t xdr_remote_storage_vol_create_xml_from_args (XDR *, remote_storage_vol_create_xml_from_args*);
extern bool_t xdr_remote_storage_vol_create_xml_from_ret (XDR *, remote_storage_vol_create_xml_from_ret*);
extern bool_t xdr_remote_storage_vol_delete_args (XDR *, remote_storage_vol_delete_args*);
2010-03-01 20:32:35 +00:00
extern bool_t xdr_remote_storage_vol_wipe_args (XDR *, remote_storage_vol_wipe_args*);
extern bool_t xdr_remote_storage_vol_dump_xml_args (XDR *, remote_storage_vol_dump_xml_args*);
extern bool_t xdr_remote_storage_vol_dump_xml_ret (XDR *, remote_storage_vol_dump_xml_ret*);
extern bool_t xdr_remote_storage_vol_get_info_args (XDR *, remote_storage_vol_get_info_args*);
extern bool_t xdr_remote_storage_vol_get_info_ret (XDR *, remote_storage_vol_get_info_ret*);
extern bool_t xdr_remote_storage_vol_get_path_args (XDR *, remote_storage_vol_get_path_args*);
extern bool_t xdr_remote_storage_vol_get_path_ret (XDR *, remote_storage_vol_get_path_ret*);
extern bool_t xdr_remote_node_num_of_devices_args (XDR *, remote_node_num_of_devices_args*);
extern bool_t xdr_remote_node_num_of_devices_ret (XDR *, remote_node_num_of_devices_ret*);
extern bool_t xdr_remote_node_list_devices_args (XDR *, remote_node_list_devices_args*);
extern bool_t xdr_remote_node_list_devices_ret (XDR *, remote_node_list_devices_ret*);
extern bool_t xdr_remote_node_device_lookup_by_name_args (XDR *, remote_node_device_lookup_by_name_args*);
extern bool_t xdr_remote_node_device_lookup_by_name_ret (XDR *, remote_node_device_lookup_by_name_ret*);
extern bool_t xdr_remote_node_device_dump_xml_args (XDR *, remote_node_device_dump_xml_args*);
extern bool_t xdr_remote_node_device_dump_xml_ret (XDR *, remote_node_device_dump_xml_ret*);
extern bool_t xdr_remote_node_device_get_parent_args (XDR *, remote_node_device_get_parent_args*);
extern bool_t xdr_remote_node_device_get_parent_ret (XDR *, remote_node_device_get_parent_ret*);
extern bool_t xdr_remote_node_device_num_of_caps_args (XDR *, remote_node_device_num_of_caps_args*);
extern bool_t xdr_remote_node_device_num_of_caps_ret (XDR *, remote_node_device_num_of_caps_ret*);
extern bool_t xdr_remote_node_device_list_caps_args (XDR *, remote_node_device_list_caps_args*);
extern bool_t xdr_remote_node_device_list_caps_ret (XDR *, remote_node_device_list_caps_ret*);
extern bool_t xdr_remote_node_device_dettach_args (XDR *, remote_node_device_dettach_args*);
extern bool_t xdr_remote_node_device_re_attach_args (XDR *, remote_node_device_re_attach_args*);
extern bool_t xdr_remote_node_device_reset_args (XDR *, remote_node_device_reset_args*);
extern bool_t xdr_remote_node_device_create_xml_args (XDR *, remote_node_device_create_xml_args*);
extern bool_t xdr_remote_node_device_create_xml_ret (XDR *, remote_node_device_create_xml_ret*);
extern bool_t xdr_remote_node_device_destroy_args (XDR *, remote_node_device_destroy_args*);
extern bool_t xdr_remote_domain_events_register_ret (XDR *, remote_domain_events_register_ret*);
extern bool_t xdr_remote_domain_events_deregister_ret (XDR *, remote_domain_events_deregister_ret*);
extern bool_t xdr_remote_domain_event_lifecycle_msg (XDR *, remote_domain_event_lifecycle_msg*);
extern bool_t xdr_remote_domain_xml_from_native_args (XDR *, remote_domain_xml_from_native_args*);
extern bool_t xdr_remote_domain_xml_from_native_ret (XDR *, remote_domain_xml_from_native_ret*);
extern bool_t xdr_remote_domain_xml_to_native_args (XDR *, remote_domain_xml_to_native_args*);
extern bool_t xdr_remote_domain_xml_to_native_ret (XDR *, remote_domain_xml_to_native_ret*);
extern bool_t xdr_remote_num_of_secrets_ret (XDR *, remote_num_of_secrets_ret*);
extern bool_t xdr_remote_list_secrets_args (XDR *, remote_list_secrets_args*);
extern bool_t xdr_remote_list_secrets_ret (XDR *, remote_list_secrets_ret*);
Fix UUID handling in secrets/storage encryption APIs Convert all the secret/storage encryption APIs / wire format to handle UUIDs in raw format instead of non-canonical printable format. Guarentees data format correctness. * docs/schemas/storageencryption.rng: Make UUID mandatory for a secret and validate fully * docs/schemas/secret.rng: Fully validate UUID * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add virSecretLookupByUUID and virSecretGetUUID. Make virSecretGetUUIDString follow normal API design pattern * python/generator.py: Skip generation of virSecretGetUUID, virSecretGetUUIDString and virSecretLookupByUUID * python/libvir.c, python/libvirt-python-api.xml: Manual impl of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID * qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/ Fix get_nonnull_secret/make_nonnull_secret to use unsigned char * qemud/remote_protocol.x: Fix remote_nonnull_secret to use a remote_uuid instead of remote_nonnull_string for UUID field. Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an remote_uuid value * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h, qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate * src/datatypes.h, src/datatypes.c: Store UUID in raw format instead of printable. Change virGetSecret to use raw format UUID * src/driver.h: Rename virDrvSecretLookupByUUIDString to virDrvSecretLookupByUUID and use raw format UUID * src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID and re-implement virSecretLookupByUUIDString and virSecretGetUUIDString in terms of those * src/libvirt_public.syms: Add virSecretLookupByUUID and virSecretGetUUID * src/remote_internal.c: Rename remoteSecretLookupByUUIDString to remoteSecretLookupByUUID. Fix typo in args for remoteSecretDefineXML impl. Use raw UUID format for get_nonnull_secret and make_nonnull_secret * src/storage_encryption_conf.c, src/storage_encryption_conf.h: Storage UUID in raw format, and require it to be present in XML. Use UUID parser to validate. * secret_conf.h, secret_conf.c: Generate a UUID if none is provided. Storage UUID in raw format. * src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets in a filed with printable UUID, instead of base64 UUID. * src/virsh.c: Adjust for changed public API contract of virSecretGetUUIDString. * src/storage_Backend.c: DOn't undefine secret we just generated upon successful volume creation. Fix to handle raw UUIDs. Generate a non-clashing UUID * src/qemu_driver.c: Change to use lookupByUUID instead of lookupByUUIDString
2009-09-10 16:44:12 +00:00
extern bool_t xdr_remote_secret_lookup_by_uuid_args (XDR *, remote_secret_lookup_by_uuid_args*);
extern bool_t xdr_remote_secret_lookup_by_uuid_ret (XDR *, remote_secret_lookup_by_uuid_ret*);
extern bool_t xdr_remote_secret_define_xml_args (XDR *, remote_secret_define_xml_args*);
extern bool_t xdr_remote_secret_define_xml_ret (XDR *, remote_secret_define_xml_ret*);
extern bool_t xdr_remote_secret_get_xml_desc_args (XDR *, remote_secret_get_xml_desc_args*);
extern bool_t xdr_remote_secret_get_xml_desc_ret (XDR *, remote_secret_get_xml_desc_ret*);
extern bool_t xdr_remote_secret_set_value_args (XDR *, remote_secret_set_value_args*);
extern bool_t xdr_remote_secret_get_value_args (XDR *, remote_secret_get_value_args*);
extern bool_t xdr_remote_secret_get_value_ret (XDR *, remote_secret_get_value_ret*);
extern bool_t xdr_remote_secret_undefine_args (XDR *, remote_secret_undefine_args*);
extern bool_t xdr_remote_secret_lookup_by_usage_args (XDR *, remote_secret_lookup_by_usage_args*);
extern bool_t xdr_remote_secret_lookup_by_usage_ret (XDR *, remote_secret_lookup_by_usage_ret*);
extern bool_t xdr_remote_domain_migrate_prepare_tunnel_args (XDR *, remote_domain_migrate_prepare_tunnel_args*);
extern bool_t xdr_remote_is_secure_ret (XDR *, remote_is_secure_ret*);
extern bool_t xdr_remote_domain_is_active_args (XDR *, remote_domain_is_active_args*);
extern bool_t xdr_remote_domain_is_active_ret (XDR *, remote_domain_is_active_ret*);
extern bool_t xdr_remote_domain_is_persistent_args (XDR *, remote_domain_is_persistent_args*);
extern bool_t xdr_remote_domain_is_persistent_ret (XDR *, remote_domain_is_persistent_ret*);
extern bool_t xdr_remote_network_is_active_args (XDR *, remote_network_is_active_args*);
extern bool_t xdr_remote_network_is_active_ret (XDR *, remote_network_is_active_ret*);
extern bool_t xdr_remote_network_is_persistent_args (XDR *, remote_network_is_persistent_args*);
extern bool_t xdr_remote_network_is_persistent_ret (XDR *, remote_network_is_persistent_ret*);
extern bool_t xdr_remote_storage_pool_is_active_args (XDR *, remote_storage_pool_is_active_args*);
extern bool_t xdr_remote_storage_pool_is_active_ret (XDR *, remote_storage_pool_is_active_ret*);
extern bool_t xdr_remote_storage_pool_is_persistent_args (XDR *, remote_storage_pool_is_persistent_args*);
extern bool_t xdr_remote_storage_pool_is_persistent_ret (XDR *, remote_storage_pool_is_persistent_ret*);
extern bool_t xdr_remote_interface_is_active_args (XDR *, remote_interface_is_active_args*);
extern bool_t xdr_remote_interface_is_active_ret (XDR *, remote_interface_is_active_ret*);
extern bool_t xdr_remote_cpu_compare_args (XDR *, remote_cpu_compare_args*);
extern bool_t xdr_remote_cpu_compare_ret (XDR *, remote_cpu_compare_ret*);
extern bool_t xdr_remote_cpu_baseline_args (XDR *, remote_cpu_baseline_args*);
extern bool_t xdr_remote_cpu_baseline_ret (XDR *, remote_cpu_baseline_ret*);
extern bool_t xdr_remote_domain_get_job_info_args (XDR *, remote_domain_get_job_info_args*);
extern bool_t xdr_remote_domain_get_job_info_ret (XDR *, remote_domain_get_job_info_ret*);
extern bool_t xdr_remote_domain_abort_job_args (XDR *, remote_domain_abort_job_args*);
extern bool_t xdr_remote_domain_migrate_set_max_downtime_args (XDR *, remote_domain_migrate_set_max_downtime_args*);
Remote driver & daemon impl of new event API This wires up the remote driver to handle the new events APIs. The public API allows an application to request a callback filters events to a specific domain object, and register multiple callbacks for the same event type. On the wire there are two strategies for this - Register multiple callbacks with the remote daemon, each with filtering as needed - Register only one callback per event type, with no filtering Both approaches have potential inefficiency. In the first scheme, the same event gets sent over the wire many times if multiple callbacks are registered. With the second scheme, unneccessary events get sent over the wire if a per-domain filter is set on the client. The second scheme is far easier to implement though, so this patch takes that approach. * daemon/dispatch.h: Don't export remoteRelayDomainEvent since it is no longer needed for unregistering callbacks, instead the unique callback ID is used * daemon/libvirtd.c, daemon/libvirtd.h: Track and unregister callbacks based on callback ID, instead of function pointer * daemon/remote.c: Switch over to using virConnectDomainEventRegisterAny instead of legacy virConnectDomainEventRegister function. Refactor remoteDispatchDomainEventSend() to cope with arbitrary event types * src/driver.h, src/driver.c: Move verify() call into source file instead of header, to avoid polluting the global namespace with the verify function name * src/remote/remote_driver.c: Implement new APIs for event registration. Refactor processCallDispatchMessage() to cope with arbitrary incoming event types. Merge remoteDomainQueueEvent() into processCallDispatchMessage() to avoid duplication of code. Rename remoteDomainReadEvent() to remoteDomainReadEventLifecycle() * src/remote/remote_protocol.x: Define wire format for the new virConnectDomainEventRegisterAny and virConnectDomainEventDeregisterAny functions
2010-03-18 14:56:56 +00:00
extern bool_t xdr_remote_domain_events_register_any_args (XDR *, remote_domain_events_register_any_args*);
extern bool_t xdr_remote_domain_events_deregister_any_args (XDR *, remote_domain_events_deregister_any_args*);
extern bool_t xdr_remote_domain_event_reboot_msg (XDR *, remote_domain_event_reboot_msg*);
extern bool_t xdr_remote_domain_event_rtc_change_msg (XDR *, remote_domain_event_rtc_change_msg*);
extern bool_t xdr_remote_domain_event_watchdog_msg (XDR *, remote_domain_event_watchdog_msg*);
Add support for an explicit IO error event This introduces a new event type VIR_DOMAIN_EVENT_ID_IO_ERROR This event includes the action that is about to be taken as a result of the watchdog triggering typedef enum { VIR_DOMAIN_EVENT_IO_ERROR_NONE = 0, VIR_DOMAIN_EVENT_IO_ERROR_PAUSE, VIR_DOMAIN_EVENT_IO_ERROR_REPORT, } virDomainEventIOErrorAction; In addition it has the source path of the disk that had the error and its unique device alias. It does not include the target device name (/dev/sda), since this would preclude triggering IO errors from other file backed devices (eg serial ports connected to a file) Thus there is a new callback definition for this event type typedef void (*virConnectDomainEventIOErrorCallback)(virConnectPtr conn, virDomainPtr dom, const char *srcPath, const char *devAlias, int action, void *opaque); This is currently wired up to the QEMU block IO error events * daemon/remote.c: Dispatch IO error events to client * examples/domain-events/events-c/event-test.c: Watch for IO error events * include/libvirt/libvirt.h.in: Define new IO error event ID and callback signature * src/conf/domain_event.c, src/conf/domain_event.h, src/libvirt_private.syms: Extend API to handle IO error events * src/qemu/qemu_driver.c: Connect to the QEMU monitor event for block IO errors and emit a libvirt IO error event * src/remote/remote_driver.c: Receive and dispatch IO error events to application * src/remote/remote_protocol.x: Wire protocol definition for IO error events * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h, src/qemu/qemu_monitor_json.c: Watch for BLOCK_IO_ERROR event from QEMU monitor
2010-03-18 19:37:44 +00:00
extern bool_t xdr_remote_domain_event_io_error_msg (XDR *, remote_domain_event_io_error_msg*);
extern bool_t xdr_remote_procedure (XDR *, remote_procedure*);
extern bool_t xdr_remote_message_type (XDR *, remote_message_type*);
extern bool_t xdr_remote_message_status (XDR *, remote_message_status*);
extern bool_t xdr_remote_message_header (XDR *, remote_message_header*);
#else /* K&R C */
extern bool_t xdr_remote_nonnull_string ();
extern bool_t xdr_remote_string ();
extern bool_t xdr_remote_uuid ();
extern bool_t xdr_remote_nonnull_domain ();
extern bool_t xdr_remote_nonnull_network ();
extern bool_t xdr_remote_nonnull_interface ();
extern bool_t xdr_remote_nonnull_storage_pool ();
extern bool_t xdr_remote_nonnull_storage_vol ();
extern bool_t xdr_remote_nonnull_node_device ();
extern bool_t xdr_remote_nonnull_secret ();
extern bool_t xdr_remote_domain ();
extern bool_t xdr_remote_network ();
extern bool_t xdr_remote_storage_pool ();
extern bool_t xdr_remote_storage_vol ();
extern bool_t xdr_remote_node_device ();
extern bool_t xdr_remote_error ();
extern bool_t xdr_remote_auth_type ();
extern bool_t xdr_remote_vcpu_info ();
extern bool_t xdr_remote_sched_param_value ();
extern bool_t xdr_remote_sched_param ();
extern bool_t xdr_remote_open_args ();
extern bool_t xdr_remote_supports_feature_args ();
extern bool_t xdr_remote_supports_feature_ret ();
extern bool_t xdr_remote_get_type_ret ();
extern bool_t xdr_remote_get_version_ret ();
extern bool_t xdr_remote_get_lib_version_ret ();
extern bool_t xdr_remote_get_hostname_ret ();
extern bool_t xdr_remote_get_uri_ret ();
extern bool_t xdr_remote_get_max_vcpus_args ();
extern bool_t xdr_remote_get_max_vcpus_ret ();
extern bool_t xdr_remote_node_get_info_ret ();
extern bool_t xdr_remote_get_capabilities_ret ();
extern bool_t xdr_remote_node_get_cells_free_memory_args ();
extern bool_t xdr_remote_node_get_cells_free_memory_ret ();
extern bool_t xdr_remote_node_get_free_memory_ret ();
extern bool_t xdr_remote_domain_get_scheduler_type_args ();
extern bool_t xdr_remote_domain_get_scheduler_type_ret ();
extern bool_t xdr_remote_domain_get_scheduler_parameters_args ();
extern bool_t xdr_remote_domain_get_scheduler_parameters_ret ();
extern bool_t xdr_remote_domain_set_scheduler_parameters_args ();
extern bool_t xdr_remote_domain_block_stats_args ();
extern bool_t xdr_remote_domain_block_stats_ret ();
extern bool_t xdr_remote_domain_interface_stats_args ();
extern bool_t xdr_remote_domain_interface_stats_ret ();
extern bool_t xdr_remote_domain_memory_stats_args ();
extern bool_t xdr_remote_domain_memory_stat ();
extern bool_t xdr_remote_domain_memory_stats_ret ();
extern bool_t xdr_remote_domain_block_peek_args ();
extern bool_t xdr_remote_domain_block_peek_ret ();
extern bool_t xdr_remote_domain_memory_peek_args ();
extern bool_t xdr_remote_domain_memory_peek_ret ();
extern bool_t xdr_remote_list_domains_args ();
extern bool_t xdr_remote_list_domains_ret ();
extern bool_t xdr_remote_num_of_domains_ret ();
extern bool_t xdr_remote_domain_create_xml_args ();
extern bool_t xdr_remote_domain_create_xml_ret ();
extern bool_t xdr_remote_domain_lookup_by_id_args ();
extern bool_t xdr_remote_domain_lookup_by_id_ret ();
extern bool_t xdr_remote_domain_lookup_by_uuid_args ();
extern bool_t xdr_remote_domain_lookup_by_uuid_ret ();
extern bool_t xdr_remote_domain_lookup_by_name_args ();
extern bool_t xdr_remote_domain_lookup_by_name_ret ();
extern bool_t xdr_remote_domain_suspend_args ();
extern bool_t xdr_remote_domain_resume_args ();
extern bool_t xdr_remote_domain_shutdown_args ();
extern bool_t xdr_remote_domain_reboot_args ();
extern bool_t xdr_remote_domain_destroy_args ();
extern bool_t xdr_remote_domain_get_os_type_args ();
extern bool_t xdr_remote_domain_get_os_type_ret ();
extern bool_t xdr_remote_domain_get_max_memory_args ();
extern bool_t xdr_remote_domain_get_max_memory_ret ();
extern bool_t xdr_remote_domain_set_max_memory_args ();
extern bool_t xdr_remote_domain_set_memory_args ();
extern bool_t xdr_remote_domain_get_info_args ();
extern bool_t xdr_remote_domain_get_info_ret ();
extern bool_t xdr_remote_domain_save_args ();
extern bool_t xdr_remote_domain_restore_args ();
extern bool_t xdr_remote_domain_core_dump_args ();
extern bool_t xdr_remote_domain_dump_xml_args ();
extern bool_t xdr_remote_domain_dump_xml_ret ();
extern bool_t xdr_remote_domain_migrate_prepare_args ();
extern bool_t xdr_remote_domain_migrate_prepare_ret ();
extern bool_t xdr_remote_domain_migrate_perform_args ();
extern bool_t xdr_remote_domain_migrate_finish_args ();
extern bool_t xdr_remote_domain_migrate_finish_ret ();
extern bool_t xdr_remote_domain_migrate_prepare2_args ();
extern bool_t xdr_remote_domain_migrate_prepare2_ret ();
extern bool_t xdr_remote_domain_migrate_finish2_args ();
extern bool_t xdr_remote_domain_migrate_finish2_ret ();
extern bool_t xdr_remote_list_defined_domains_args ();
extern bool_t xdr_remote_list_defined_domains_ret ();
extern bool_t xdr_remote_num_of_defined_domains_ret ();
extern bool_t xdr_remote_domain_create_args ();
extern bool_t xdr_remote_domain_define_xml_args ();
extern bool_t xdr_remote_domain_define_xml_ret ();
extern bool_t xdr_remote_domain_undefine_args ();
extern bool_t xdr_remote_domain_set_vcpus_args ();
extern bool_t xdr_remote_domain_pin_vcpu_args ();
extern bool_t xdr_remote_domain_get_vcpus_args ();
extern bool_t xdr_remote_domain_get_vcpus_ret ();
extern bool_t xdr_remote_domain_get_max_vcpus_args ();
extern bool_t xdr_remote_domain_get_max_vcpus_ret ();
extern bool_t xdr_remote_domain_get_security_label_args ();
extern bool_t xdr_remote_domain_get_security_label_ret ();
extern bool_t xdr_remote_node_get_security_model_ret ();
extern bool_t xdr_remote_domain_attach_device_args ();
extern bool_t xdr_remote_domain_attach_device_flags_args ();
extern bool_t xdr_remote_domain_detach_device_args ();
extern bool_t xdr_remote_domain_detach_device_flags_args ();
extern bool_t xdr_remote_domain_get_autostart_args ();
extern bool_t xdr_remote_domain_get_autostart_ret ();
extern bool_t xdr_remote_domain_set_autostart_args ();
extern bool_t xdr_remote_num_of_networks_ret ();
extern bool_t xdr_remote_list_networks_args ();
extern bool_t xdr_remote_list_networks_ret ();
extern bool_t xdr_remote_num_of_defined_networks_ret ();
extern bool_t xdr_remote_list_defined_networks_args ();
extern bool_t xdr_remote_list_defined_networks_ret ();
extern bool_t xdr_remote_network_lookup_by_uuid_args ();
extern bool_t xdr_remote_network_lookup_by_uuid_ret ();
extern bool_t xdr_remote_network_lookup_by_name_args ();
extern bool_t xdr_remote_network_lookup_by_name_ret ();
extern bool_t xdr_remote_network_create_xml_args ();
extern bool_t xdr_remote_network_create_xml_ret ();
extern bool_t xdr_remote_network_define_xml_args ();
extern bool_t xdr_remote_network_define_xml_ret ();
extern bool_t xdr_remote_network_undefine_args ();
extern bool_t xdr_remote_network_create_args ();
extern bool_t xdr_remote_network_destroy_args ();
extern bool_t xdr_remote_network_dump_xml_args ();
extern bool_t xdr_remote_network_dump_xml_ret ();
extern bool_t xdr_remote_network_get_bridge_name_args ();
extern bool_t xdr_remote_network_get_bridge_name_ret ();
extern bool_t xdr_remote_network_get_autostart_args ();
extern bool_t xdr_remote_network_get_autostart_ret ();
extern bool_t xdr_remote_network_set_autostart_args ();
extern bool_t xdr_remote_num_of_interfaces_ret ();
extern bool_t xdr_remote_list_interfaces_args ();
extern bool_t xdr_remote_list_interfaces_ret ();
extern bool_t xdr_remote_num_of_defined_interfaces_ret ();
extern bool_t xdr_remote_list_defined_interfaces_args ();
extern bool_t xdr_remote_list_defined_interfaces_ret ();
extern bool_t xdr_remote_interface_lookup_by_name_args ();
extern bool_t xdr_remote_interface_lookup_by_name_ret ();
extern bool_t xdr_remote_interface_lookup_by_mac_string_args ();
extern bool_t xdr_remote_interface_lookup_by_mac_string_ret ();
extern bool_t xdr_remote_interface_get_xml_desc_args ();
extern bool_t xdr_remote_interface_get_xml_desc_ret ();
extern bool_t xdr_remote_interface_define_xml_args ();
extern bool_t xdr_remote_interface_define_xml_ret ();
extern bool_t xdr_remote_interface_undefine_args ();
extern bool_t xdr_remote_interface_create_args ();
extern bool_t xdr_remote_interface_destroy_args ();
extern bool_t xdr_remote_auth_list_ret ();
extern bool_t xdr_remote_auth_sasl_init_ret ();
extern bool_t xdr_remote_auth_sasl_start_args ();
extern bool_t xdr_remote_auth_sasl_start_ret ();
extern bool_t xdr_remote_auth_sasl_step_args ();
extern bool_t xdr_remote_auth_sasl_step_ret ();
2007-12-05 18:21:27 +00:00
extern bool_t xdr_remote_auth_polkit_ret ();
extern bool_t xdr_remote_num_of_storage_pools_ret ();
extern bool_t xdr_remote_list_storage_pools_args ();
extern bool_t xdr_remote_list_storage_pools_ret ();
extern bool_t xdr_remote_num_of_defined_storage_pools_ret ();
extern bool_t xdr_remote_list_defined_storage_pools_args ();
extern bool_t xdr_remote_list_defined_storage_pools_ret ();
extern bool_t xdr_remote_find_storage_pool_sources_args ();
extern bool_t xdr_remote_find_storage_pool_sources_ret ();
extern bool_t xdr_remote_storage_pool_lookup_by_uuid_args ();
extern bool_t xdr_remote_storage_pool_lookup_by_uuid_ret ();
extern bool_t xdr_remote_storage_pool_lookup_by_name_args ();
extern bool_t xdr_remote_storage_pool_lookup_by_name_ret ();
extern bool_t xdr_remote_storage_pool_lookup_by_volume_args ();
extern bool_t xdr_remote_storage_pool_lookup_by_volume_ret ();
extern bool_t xdr_remote_storage_pool_create_xml_args ();
extern bool_t xdr_remote_storage_pool_create_xml_ret ();
extern bool_t xdr_remote_storage_pool_define_xml_args ();
extern bool_t xdr_remote_storage_pool_define_xml_ret ();
extern bool_t xdr_remote_storage_pool_build_args ();
extern bool_t xdr_remote_storage_pool_undefine_args ();
extern bool_t xdr_remote_storage_pool_create_args ();
extern bool_t xdr_remote_storage_pool_destroy_args ();
extern bool_t xdr_remote_storage_pool_delete_args ();
extern bool_t xdr_remote_storage_pool_refresh_args ();
extern bool_t xdr_remote_storage_pool_dump_xml_args ();
extern bool_t xdr_remote_storage_pool_dump_xml_ret ();
extern bool_t xdr_remote_storage_pool_get_info_args ();
extern bool_t xdr_remote_storage_pool_get_info_ret ();
extern bool_t xdr_remote_storage_pool_get_autostart_args ();
extern bool_t xdr_remote_storage_pool_get_autostart_ret ();
extern bool_t xdr_remote_storage_pool_set_autostart_args ();
extern bool_t xdr_remote_storage_pool_num_of_volumes_args ();
extern bool_t xdr_remote_storage_pool_num_of_volumes_ret ();
extern bool_t xdr_remote_storage_pool_list_volumes_args ();
extern bool_t xdr_remote_storage_pool_list_volumes_ret ();
extern bool_t xdr_remote_storage_vol_lookup_by_name_args ();
extern bool_t xdr_remote_storage_vol_lookup_by_name_ret ();
extern bool_t xdr_remote_storage_vol_lookup_by_key_args ();
extern bool_t xdr_remote_storage_vol_lookup_by_key_ret ();
extern bool_t xdr_remote_storage_vol_lookup_by_path_args ();
extern bool_t xdr_remote_storage_vol_lookup_by_path_ret ();
extern bool_t xdr_remote_storage_vol_create_xml_args ();
extern bool_t xdr_remote_storage_vol_create_xml_ret ();
extern bool_t xdr_remote_storage_vol_create_xml_from_args ();
extern bool_t xdr_remote_storage_vol_create_xml_from_ret ();
extern bool_t xdr_remote_storage_vol_delete_args ();
2010-03-01 20:32:35 +00:00
extern bool_t xdr_remote_storage_vol_wipe_args ();
extern bool_t xdr_remote_storage_vol_dump_xml_args ();
extern bool_t xdr_remote_storage_vol_dump_xml_ret ();
extern bool_t xdr_remote_storage_vol_get_info_args ();
extern bool_t xdr_remote_storage_vol_get_info_ret ();
extern bool_t xdr_remote_storage_vol_get_path_args ();
extern bool_t xdr_remote_storage_vol_get_path_ret ();
extern bool_t xdr_remote_node_num_of_devices_args ();
extern bool_t xdr_remote_node_num_of_devices_ret ();
extern bool_t xdr_remote_node_list_devices_args ();
extern bool_t xdr_remote_node_list_devices_ret ();
extern bool_t xdr_remote_node_device_lookup_by_name_args ();
extern bool_t xdr_remote_node_device_lookup_by_name_ret ();
extern bool_t xdr_remote_node_device_dump_xml_args ();
extern bool_t xdr_remote_node_device_dump_xml_ret ();
extern bool_t xdr_remote_node_device_get_parent_args ();
extern bool_t xdr_remote_node_device_get_parent_ret ();
extern bool_t xdr_remote_node_device_num_of_caps_args ();
extern bool_t xdr_remote_node_device_num_of_caps_ret ();
extern bool_t xdr_remote_node_device_list_caps_args ();
extern bool_t xdr_remote_node_device_list_caps_ret ();
extern bool_t xdr_remote_node_device_dettach_args ();
extern bool_t xdr_remote_node_device_re_attach_args ();
extern bool_t xdr_remote_node_device_reset_args ();
extern bool_t xdr_remote_node_device_create_xml_args ();
extern bool_t xdr_remote_node_device_create_xml_ret ();
extern bool_t xdr_remote_node_device_destroy_args ();
extern bool_t xdr_remote_domain_events_register_ret ();
extern bool_t xdr_remote_domain_events_deregister_ret ();
extern bool_t xdr_remote_domain_event_lifecycle_msg ();
extern bool_t xdr_remote_domain_xml_from_native_args ();
extern bool_t xdr_remote_domain_xml_from_native_ret ();
extern bool_t xdr_remote_domain_xml_to_native_args ();
extern bool_t xdr_remote_domain_xml_to_native_ret ();
extern bool_t xdr_remote_num_of_secrets_ret ();
extern bool_t xdr_remote_list_secrets_args ();
extern bool_t xdr_remote_list_secrets_ret ();
Fix UUID handling in secrets/storage encryption APIs Convert all the secret/storage encryption APIs / wire format to handle UUIDs in raw format instead of non-canonical printable format. Guarentees data format correctness. * docs/schemas/storageencryption.rng: Make UUID mandatory for a secret and validate fully * docs/schemas/secret.rng: Fully validate UUID * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add virSecretLookupByUUID and virSecretGetUUID. Make virSecretGetUUIDString follow normal API design pattern * python/generator.py: Skip generation of virSecretGetUUID, virSecretGetUUIDString and virSecretLookupByUUID * python/libvir.c, python/libvirt-python-api.xml: Manual impl of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID * qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/ Fix get_nonnull_secret/make_nonnull_secret to use unsigned char * qemud/remote_protocol.x: Fix remote_nonnull_secret to use a remote_uuid instead of remote_nonnull_string for UUID field. Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an remote_uuid value * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h, qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate * src/datatypes.h, src/datatypes.c: Store UUID in raw format instead of printable. Change virGetSecret to use raw format UUID * src/driver.h: Rename virDrvSecretLookupByUUIDString to virDrvSecretLookupByUUID and use raw format UUID * src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID and re-implement virSecretLookupByUUIDString and virSecretGetUUIDString in terms of those * src/libvirt_public.syms: Add virSecretLookupByUUID and virSecretGetUUID * src/remote_internal.c: Rename remoteSecretLookupByUUIDString to remoteSecretLookupByUUID. Fix typo in args for remoteSecretDefineXML impl. Use raw UUID format for get_nonnull_secret and make_nonnull_secret * src/storage_encryption_conf.c, src/storage_encryption_conf.h: Storage UUID in raw format, and require it to be present in XML. Use UUID parser to validate. * secret_conf.h, secret_conf.c: Generate a UUID if none is provided. Storage UUID in raw format. * src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets in a filed with printable UUID, instead of base64 UUID. * src/virsh.c: Adjust for changed public API contract of virSecretGetUUIDString. * src/storage_Backend.c: DOn't undefine secret we just generated upon successful volume creation. Fix to handle raw UUIDs. Generate a non-clashing UUID * src/qemu_driver.c: Change to use lookupByUUID instead of lookupByUUIDString
2009-09-10 16:44:12 +00:00
extern bool_t xdr_remote_secret_lookup_by_uuid_args ();
extern bool_t xdr_remote_secret_lookup_by_uuid_ret ();
extern bool_t xdr_remote_secret_define_xml_args ();
extern bool_t xdr_remote_secret_define_xml_ret ();
extern bool_t xdr_remote_secret_get_xml_desc_args ();
extern bool_t xdr_remote_secret_get_xml_desc_ret ();
extern bool_t xdr_remote_secret_set_value_args ();
extern bool_t xdr_remote_secret_get_value_args ();
extern bool_t xdr_remote_secret_get_value_ret ();
extern bool_t xdr_remote_secret_undefine_args ();
extern bool_t xdr_remote_secret_lookup_by_usage_args ();
extern bool_t xdr_remote_secret_lookup_by_usage_ret ();
extern bool_t xdr_remote_domain_migrate_prepare_tunnel_args ();
extern bool_t xdr_remote_is_secure_ret ();
extern bool_t xdr_remote_domain_is_active_args ();
extern bool_t xdr_remote_domain_is_active_ret ();
extern bool_t xdr_remote_domain_is_persistent_args ();
extern bool_t xdr_remote_domain_is_persistent_ret ();
extern bool_t xdr_remote_network_is_active_args ();
extern bool_t xdr_remote_network_is_active_ret ();
extern bool_t xdr_remote_network_is_persistent_args ();
extern bool_t xdr_remote_network_is_persistent_ret ();
extern bool_t xdr_remote_storage_pool_is_active_args ();
extern bool_t xdr_remote_storage_pool_is_active_ret ();
extern bool_t xdr_remote_storage_pool_is_persistent_args ();
extern bool_t xdr_remote_storage_pool_is_persistent_ret ();
extern bool_t xdr_remote_interface_is_active_args ();
extern bool_t xdr_remote_interface_is_active_ret ();
extern bool_t xdr_remote_cpu_compare_args ();
extern bool_t xdr_remote_cpu_compare_ret ();
extern bool_t xdr_remote_cpu_baseline_args ();
extern bool_t xdr_remote_cpu_baseline_ret ();
extern bool_t xdr_remote_domain_get_job_info_args ();
extern bool_t xdr_remote_domain_get_job_info_ret ();
extern bool_t xdr_remote_domain_abort_job_args ();
extern bool_t xdr_remote_domain_migrate_set_max_downtime_args ();
Remote driver & daemon impl of new event API This wires up the remote driver to handle the new events APIs. The public API allows an application to request a callback filters events to a specific domain object, and register multiple callbacks for the same event type. On the wire there are two strategies for this - Register multiple callbacks with the remote daemon, each with filtering as needed - Register only one callback per event type, with no filtering Both approaches have potential inefficiency. In the first scheme, the same event gets sent over the wire many times if multiple callbacks are registered. With the second scheme, unneccessary events get sent over the wire if a per-domain filter is set on the client. The second scheme is far easier to implement though, so this patch takes that approach. * daemon/dispatch.h: Don't export remoteRelayDomainEvent since it is no longer needed for unregistering callbacks, instead the unique callback ID is used * daemon/libvirtd.c, daemon/libvirtd.h: Track and unregister callbacks based on callback ID, instead of function pointer * daemon/remote.c: Switch over to using virConnectDomainEventRegisterAny instead of legacy virConnectDomainEventRegister function. Refactor remoteDispatchDomainEventSend() to cope with arbitrary event types * src/driver.h, src/driver.c: Move verify() call into source file instead of header, to avoid polluting the global namespace with the verify function name * src/remote/remote_driver.c: Implement new APIs for event registration. Refactor processCallDispatchMessage() to cope with arbitrary incoming event types. Merge remoteDomainQueueEvent() into processCallDispatchMessage() to avoid duplication of code. Rename remoteDomainReadEvent() to remoteDomainReadEventLifecycle() * src/remote/remote_protocol.x: Define wire format for the new virConnectDomainEventRegisterAny and virConnectDomainEventDeregisterAny functions
2010-03-18 14:56:56 +00:00
extern bool_t xdr_remote_domain_events_register_any_args ();
extern bool_t xdr_remote_domain_events_deregister_any_args ();
extern bool_t xdr_remote_domain_event_reboot_msg ();
extern bool_t xdr_remote_domain_event_rtc_change_msg ();
extern bool_t xdr_remote_domain_event_watchdog_msg ();
Add support for an explicit IO error event This introduces a new event type VIR_DOMAIN_EVENT_ID_IO_ERROR This event includes the action that is about to be taken as a result of the watchdog triggering typedef enum { VIR_DOMAIN_EVENT_IO_ERROR_NONE = 0, VIR_DOMAIN_EVENT_IO_ERROR_PAUSE, VIR_DOMAIN_EVENT_IO_ERROR_REPORT, } virDomainEventIOErrorAction; In addition it has the source path of the disk that had the error and its unique device alias. It does not include the target device name (/dev/sda), since this would preclude triggering IO errors from other file backed devices (eg serial ports connected to a file) Thus there is a new callback definition for this event type typedef void (*virConnectDomainEventIOErrorCallback)(virConnectPtr conn, virDomainPtr dom, const char *srcPath, const char *devAlias, int action, void *opaque); This is currently wired up to the QEMU block IO error events * daemon/remote.c: Dispatch IO error events to client * examples/domain-events/events-c/event-test.c: Watch for IO error events * include/libvirt/libvirt.h.in: Define new IO error event ID and callback signature * src/conf/domain_event.c, src/conf/domain_event.h, src/libvirt_private.syms: Extend API to handle IO error events * src/qemu/qemu_driver.c: Connect to the QEMU monitor event for block IO errors and emit a libvirt IO error event * src/remote/remote_driver.c: Receive and dispatch IO error events to application * src/remote/remote_protocol.x: Wire protocol definition for IO error events * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h, src/qemu/qemu_monitor_json.c: Watch for BLOCK_IO_ERROR event from QEMU monitor
2010-03-18 19:37:44 +00:00
extern bool_t xdr_remote_domain_event_io_error_msg ();
extern bool_t xdr_remote_procedure ();
extern bool_t xdr_remote_message_type ();
extern bool_t xdr_remote_message_status ();
extern bool_t xdr_remote_message_header ();
#endif /* K&R C */
#ifdef __cplusplus
}
#endif
#endif /* !_RP_H_RPCGEN */