Add remote daemon support for storage APIs

This commit is contained in:
Daniel P. Berrange
2008-02-20 15:22:35 +00:00
parent 056da31bfe
commit f48160cfb4
8 changed files with 2268 additions and 1 deletions

View File

@@ -78,6 +78,12 @@ const REMOTE_MIGRATE_COOKIE_MAX = 256;
/* Upper limit on lists of network names. */
const REMOTE_NETWORK_NAME_LIST_MAX = 256;
/* Upper limit on lists of storage pool names. */
const REMOTE_STORAGE_POOL_NAME_LIST_MAX = 256;
/* Upper limit on lists of storage vol names. */
const REMOTE_STORAGE_VOL_NAME_LIST_MAX = 1024;
/* Upper limit on list of scheduler parameters. */
const REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX = 16;
@@ -103,9 +109,24 @@ struct remote_nonnull_network {
remote_uuid uuid;
};
/* A storage pool which may not be NULL. */
struct remote_nonnull_storage_pool {
remote_nonnull_string name;
remote_uuid uuid;
};
/* A storage vol which may not be NULL. */
struct remote_nonnull_storage_vol {
remote_nonnull_string pool;
remote_nonnull_string name;
remote_nonnull_string key;
};
/* A domain or network which may be NULL. */
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;
/* Error message. See <virterror.h> for explanation of fields. */
@@ -626,6 +647,7 @@ struct remote_network_set_autostart_args {
int autostart;
};
struct remote_auth_list_ret {
remote_auth_type types<REMOTE_AUTH_TYPE_LIST_MAX>;
};
@@ -661,6 +683,225 @@ struct remote_auth_polkit_ret {
int complete;
};
/* Storage pool calls: */
struct remote_num_of_storage_pools_ret {
int num;
};
struct remote_list_storage_pools_args {
int maxnames;
};
struct remote_list_storage_pools_ret {
remote_nonnull_string names<REMOTE_STORAGE_POOL_NAME_LIST_MAX>;
};
struct remote_num_of_defined_storage_pools_ret {
int num;
};
struct remote_list_defined_storage_pools_args {
int maxnames;
};
struct remote_list_defined_storage_pools_ret {
remote_nonnull_string names<REMOTE_STORAGE_POOL_NAME_LIST_MAX>;
};
struct remote_storage_pool_lookup_by_uuid_args {
remote_uuid uuid;
};
struct remote_storage_pool_lookup_by_uuid_ret {
remote_nonnull_storage_pool pool;
};
struct remote_storage_pool_lookup_by_name_args {
remote_nonnull_string name;
};
struct remote_storage_pool_lookup_by_name_ret {
remote_nonnull_storage_pool pool;
};
struct remote_storage_pool_lookup_by_volume_args {
remote_nonnull_storage_vol vol;
};
struct remote_storage_pool_lookup_by_volume_ret {
remote_nonnull_storage_pool pool;
};
struct remote_storage_pool_create_xml_args {
remote_nonnull_string xml;
unsigned flags;
};
struct remote_storage_pool_create_xml_ret {
remote_nonnull_storage_pool pool;
};
struct remote_storage_pool_define_xml_args {
remote_nonnull_string xml;
unsigned flags;
};
struct remote_storage_pool_define_xml_ret {
remote_nonnull_storage_pool pool;
};
struct remote_storage_pool_build_args {
remote_nonnull_storage_pool pool;
unsigned flags;
};
struct remote_storage_pool_undefine_args {
remote_nonnull_storage_pool pool;
};
struct remote_storage_pool_create_args {
remote_nonnull_storage_pool pool;
unsigned flags;
};
struct remote_storage_pool_destroy_args {
remote_nonnull_storage_pool pool;
};
struct remote_storage_pool_delete_args {
remote_nonnull_storage_pool pool;
unsigned flags;
};
struct remote_storage_pool_refresh_args {
remote_nonnull_storage_pool pool;
unsigned flags;
};
struct remote_storage_pool_dump_xml_args {
remote_nonnull_storage_pool pool;
unsigned flags;
};
struct remote_storage_pool_dump_xml_ret {
remote_nonnull_string xml;
};
struct remote_storage_pool_get_info_args {
remote_nonnull_storage_pool pool;
};
struct remote_storage_pool_get_info_ret {
unsigned char state;
unsigned hyper capacity;
unsigned hyper allocation;
unsigned hyper available;
};
struct remote_storage_pool_get_autostart_args {
remote_nonnull_storage_pool pool;
};
struct remote_storage_pool_get_autostart_ret {
int autostart;
};
struct remote_storage_pool_set_autostart_args {
remote_nonnull_storage_pool pool;
int autostart;
};
struct remote_storage_pool_num_of_volumes_args {
remote_nonnull_storage_pool pool;
};
struct remote_storage_pool_num_of_volumes_ret {
int num;
};
struct remote_storage_pool_list_volumes_args {
remote_nonnull_storage_pool pool;
int maxnames;
};
struct remote_storage_pool_list_volumes_ret {
remote_nonnull_string names<REMOTE_STORAGE_VOL_NAME_LIST_MAX>;
};
/* Storage vol calls: */
struct remote_storage_vol_lookup_by_name_args {
remote_nonnull_storage_pool pool;
remote_nonnull_string name;
};
struct remote_storage_vol_lookup_by_name_ret {
remote_nonnull_storage_vol vol;
};
struct remote_storage_vol_lookup_by_key_args {
remote_nonnull_string key;
};
struct remote_storage_vol_lookup_by_key_ret {
remote_nonnull_storage_vol vol;
};
struct remote_storage_vol_lookup_by_path_args {
remote_nonnull_string path;
};
struct remote_storage_vol_lookup_by_path_ret {
remote_nonnull_storage_vol vol;
};
struct remote_storage_vol_create_xml_args {
remote_nonnull_storage_pool pool;
remote_nonnull_string xml;
unsigned flags;
};
struct remote_storage_vol_create_xml_ret {
remote_nonnull_storage_vol vol;
};
struct remote_storage_vol_delete_args {
remote_nonnull_storage_vol vol;
unsigned flags;
};
struct remote_storage_vol_dump_xml_args {
remote_nonnull_storage_vol vol;
unsigned flags;
};
struct remote_storage_vol_dump_xml_ret {
remote_nonnull_string xml;
};
struct remote_storage_vol_get_info_args {
remote_nonnull_storage_vol vol;
};
struct remote_storage_vol_get_info_ret {
char type;
unsigned hyper capacity;
unsigned hyper allocation;
};
struct remote_storage_vol_get_path_args {
remote_nonnull_storage_vol vol;
};
struct remote_storage_vol_get_path_ret {
remote_nonnull_string name;
};
/*----- Protocol. -----*/
/* Define the program number, protocol version and procedure numbers here. */
@@ -678,6 +919,7 @@ enum remote_procedure {
REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8,
REMOTE_PROC_DOMAIN_CREATE = 9,
REMOTE_PROC_DOMAIN_CREATE_LINUX = 10,
REMOTE_PROC_DOMAIN_DEFINE_XML = 11,
REMOTE_PROC_DOMAIN_DESTROY = 12,
REMOTE_PROC_DOMAIN_DETACH_DEVICE = 13,
@@ -688,6 +930,7 @@ enum remote_procedure {
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,
@@ -698,6 +941,7 @@ enum remote_procedure {
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,
@@ -708,6 +952,7 @@ enum remote_procedure {
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,
@@ -718,6 +963,7 @@ enum remote_procedure {
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,
@@ -728,6 +974,7 @@ enum remote_procedure {
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,
@@ -737,7 +984,40 @@ enum remote_procedure {
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_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_DISCOVER_STORAGE_POOLS = 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
};
/* Custom RPC structure. */