--- daemon/remote.c | 130 ------------------------------------- daemon/remote_dispatch_bodies.c | 136 +++++++++++++++++++++++++++++++++++++- daemon/remote_generator.pl | 21 +++++-- 3 files changed, 148 insertions(+), 139 deletions(-) diff --git a/daemon/remote.c b/daemon/remote.c index 2b0e0dc..0c7173a 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -494,35 +494,6 @@ cleanup: } static int -remoteDispatchGetMaxVcpus(struct qemud_server *server ATTRIBUTE_UNUSED, - struct qemud_client *client ATTRIBUTE_UNUSED, - virConnectPtr conn, - remote_message_header *hdr ATTRIBUTE_UNUSED, - remote_error *rerr, - remote_get_max_vcpus_args *args, - remote_get_max_vcpus_ret *ret) -{ - char *type; - int rv = -1; - - if (!conn) { - virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open")); - goto cleanup; - } - - type = args->type ? *args->type : NULL; - if ((ret->max_vcpus = virConnectGetMaxVcpus(conn, type)) < 0) - goto cleanup; - - rv = 0; - -cleanup: - if (rv < 0) - remoteDispatchError(rerr); - return rv; -} - -static int remoteDispatchNodeGetInfo(struct qemud_server *server ATTRIBUTE_UNUSED, struct qemud_client *client ATTRIBUTE_UNUSED, virConnectPtr conn, @@ -1358,46 +1329,6 @@ cleanup: } static int -remoteDispatchDomainMigratePerform(struct qemud_server *server ATTRIBUTE_UNUSED, - struct qemud_client *client ATTRIBUTE_UNUSED, - virConnectPtr conn, - remote_message_header *hdr ATTRIBUTE_UNUSED, - remote_error *rerr, - remote_domain_migrate_perform_args *args, - void *ret ATTRIBUTE_UNUSED) -{ - virDomainPtr dom = NULL; - char *dname; - int rv = -1; - - if (!conn) { - virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open")); - goto cleanup; - } - - if (!(dom = get_nonnull_domain(conn, args->dom))) - goto cleanup; - - dname = args->dname == NULL ? NULL : *args->dname; - - if (virDomainMigratePerform(dom, - args->cookie.cookie_val, - args->cookie.cookie_len, - args->uri, - args->flags, dname, args->resource) < 0) - goto cleanup; - - rv = 0; - -cleanup: - if (rv < 0) - remoteDispatchError(rerr); - if (dom) - virDomainFree(dom); - return rv; -} - -static int remoteDispatchDomainMigratePrepare2(struct qemud_server *server ATTRIBUTE_UNUSED, struct qemud_client *client ATTRIBUTE_UNUSED, virConnectPtr conn, @@ -3134,37 +3065,6 @@ cleanup: } static int -remoteDispatchFindStoragePoolSources(struct qemud_server *server ATTRIBUTE_UNUSED, - struct qemud_client *client ATTRIBUTE_UNUSED, - virConnectPtr conn, - remote_message_header *hdr ATTRIBUTE_UNUSED, - remote_error *rerr, - remote_find_storage_pool_sources_args *args, - remote_find_storage_pool_sources_ret *ret) -{ - int rv = -1; - - if (!conn) { - virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open")); - goto cleanup; - } - - if (!(ret->xml = - virConnectFindStoragePoolSources(conn, - args->type, - args->srcSpec ? *args->srcSpec : NULL, - args->flags))) - goto cleanup; - - rv = 0; - -cleanup: - if (rv < 0) - remoteDispatchError(rerr); - return rv; -} - -static int remoteDispatchStoragePoolGetInfo(struct qemud_server *server ATTRIBUTE_UNUSED, struct qemud_client *client ATTRIBUTE_UNUSED, virConnectPtr conn, @@ -3302,36 +3202,6 @@ cleanup: **************************************************************/ static int -remoteDispatchNodeNumOfDevices(struct qemud_server *server ATTRIBUTE_UNUSED, - struct qemud_client *client ATTRIBUTE_UNUSED, - virConnectPtr conn, - remote_message_header *hdr ATTRIBUTE_UNUSED, - remote_error *rerr, - remote_node_num_of_devices_args *args, - remote_node_num_of_devices_ret *ret) -{ - int rv = -1; - - if (!conn) { - virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open")); - goto cleanup; - } - - if ((ret->num = virNodeNumOfDevices(conn, - args->cap ? *args->cap : NULL, - args->flags)) < 0) - goto cleanup; - - rv = 0; - -cleanup: - if (rv < 0) - remoteDispatchError(rerr); - return rv; -} - - -static int remoteDispatchNodeListDevices(struct qemud_server *server ATTRIBUTE_UNUSED, struct qemud_client *client ATTRIBUTE_UNUSED, virConnectPtr conn, diff --git a/daemon/remote_dispatch_bodies.c b/daemon/remote_dispatch_bodies.c index bd7cddd..77b7db4 100644 --- a/daemon/remote_dispatch_bodies.c +++ b/daemon/remote_dispatch_bodies.c @@ -1016,7 +1016,42 @@ cleanup: return rv; } -/* remoteDispatchDomainMigratePerform has to be implemented manually */ +static int +remoteDispatchDomainMigratePerform( + struct qemud_server *server ATTRIBUTE_UNUSED, + struct qemud_client *client ATTRIBUTE_UNUSED, + virConnectPtr conn, + remote_message_header *hdr ATTRIBUTE_UNUSED, + remote_error *rerr, + remote_domain_migrate_perform_args *args, + void *ret ATTRIBUTE_UNUSED) +{ + int rv = -1; + virDomainPtr dom = NULL; + char *dname; + + if (!conn) { + virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open")); + goto cleanup; + } + + if (!(dom = get_nonnull_domain(conn, args->dom))) + goto cleanup; + + dname = args->dname ? *args->dname : NULL; + + if (virDomainMigratePerform(dom, args->cookie.cookie_val, args->cookie.cookie_len, args->uri, args->flags, dname, args->resource) < 0) + goto cleanup; + + rv = 0; + +cleanup: + if (rv < 0) + remoteDispatchError(rerr); + if (dom) + virDomainFree(dom); + return rv; +} /* remoteDispatchDomainMigratePrepare has to be implemented manually */ @@ -1906,7 +1941,38 @@ cleanup: return rv; } -/* remoteDispatchFindStoragePoolSources has to be implemented manually */ +static int +remoteDispatchFindStoragePoolSources( + struct qemud_server *server ATTRIBUTE_UNUSED, + struct qemud_client *client ATTRIBUTE_UNUSED, + virConnectPtr conn, + remote_message_header *hdr ATTRIBUTE_UNUSED, + remote_error *rerr, + remote_find_storage_pool_sources_args *args, + remote_find_storage_pool_sources_ret *ret) +{ + int rv = -1; + char *srcSpec; + char *xml; + + if (!conn) { + virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open")); + goto cleanup; + } + + srcSpec = args->srcSpec ? *args->srcSpec : NULL; + + if ((xml = virConnectFindStoragePoolSources(conn, args->type, srcSpec, args->flags)) == NULL) + goto cleanup; + + ret->xml = xml; + rv = 0; + +cleanup: + if (rv < 0) + remoteDispatchError(rerr); + return rv; +} static int remoteDispatchGetCapabilities( @@ -1998,7 +2064,38 @@ cleanup: return rv; } -/* remoteDispatchGetMaxVcpus has to be implemented manually */ +static int +remoteDispatchGetMaxVcpus( + struct qemud_server *server ATTRIBUTE_UNUSED, + struct qemud_client *client ATTRIBUTE_UNUSED, + virConnectPtr conn, + remote_message_header *hdr ATTRIBUTE_UNUSED, + remote_error *rerr, + remote_get_max_vcpus_args *args, + remote_get_max_vcpus_ret *ret) +{ + int rv = -1; + char *type; + int max_vcpus; + + if (!conn) { + virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open")); + goto cleanup; + } + + type = args->type ? *args->type : NULL; + + if ((max_vcpus = virConnectGetMaxVcpus(conn, type)) < 0) + goto cleanup; + + ret->max_vcpus = max_vcpus; + rv = 0; + +cleanup: + if (rv < 0) + remoteDispatchError(rerr); + return rv; +} static int remoteDispatchGetSysinfo( @@ -3170,7 +3267,38 @@ cleanup: /* remoteDispatchNodeListDevices has to be implemented manually */ -/* remoteDispatchNodeNumOfDevices has to be implemented manually */ +static int +remoteDispatchNodeNumOfDevices( + struct qemud_server *server ATTRIBUTE_UNUSED, + struct qemud_client *client ATTRIBUTE_UNUSED, + virConnectPtr conn, + remote_message_header *hdr ATTRIBUTE_UNUSED, + remote_error *rerr, + remote_node_num_of_devices_args *args, + remote_node_num_of_devices_ret *ret) +{ + int rv = -1; + char *cap; + int num; + + if (!conn) { + virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open")); + goto cleanup; + } + + cap = args->cap ? *args->cap : NULL; + + if ((num = virNodeNumOfDevices(conn, cap, args->flags)) < 0) + goto cleanup; + + ret->num = num; + rv = 0; + +cleanup: + if (rv < 0) + remoteDispatchError(rerr); + return rv; +} static int remoteDispatchNumOfDefinedDomains( diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl index 1b83d52..b3cb9b5 100755 --- a/daemon/remote_generator.pl +++ b/daemon/remote_generator.pl @@ -241,7 +241,6 @@ elsif ($opt_b) { @ungeneratable = ("Close", "DomainEventsDeregisterAny", "DomainEventsRegisterAny", - "DomainMigratePerform", "DomainMigratePrepareTunnel", "DomainOpenConsole", "DomainPinVcpu", @@ -280,8 +279,6 @@ elsif ($opt_b) { "DomainMigratePrepare", "DomainMigratePrepare2", "DomainSnapshotListNames", - "FindStoragePoolSources", - "GetMaxVcpus", "GetType", "ListDefinedDomains", "ListDefinedInterfaces", @@ -299,7 +296,6 @@ elsif ($opt_b) { "NodeGetInfo", "NodeGetSecurityModel", "NodeListDevices", - "NodeNumOfDevices", "SecretGetValue", "StoragePoolGetInfo", "StoragePoolListVolumes", @@ -347,6 +343,7 @@ elsif ($opt_b) { my $has_node_device = 0; my @vars_list = (); + my @optionals_list = (); my @getters_list = (); my @args_list = (); my @ret_list = (); @@ -469,6 +466,10 @@ elsif ($opt_b) { if ($1 eq "remote_uuid") { push(@args_list, "(unsigned char *) args->$2"); + } elsif ($1 eq "remote_string") { + push(@vars_list, "char *$2"); + push(@optionals_list, "$2"); + push(@args_list, "$2"); } else { push(@args_list, "args->$2"); } @@ -618,6 +619,14 @@ elsif ($opt_b) { print "\n"; } + foreach my $optional (@optionals_list) { + print " $optional = args->$optional ? *args->$optional : NULL;\n"; + } + + if (@optionals_list) { + print "\n"; + } + if ($calls{$_}->{ret} eq "void") { print " if (vir$calls{$_}->{ProcName}("; print join(', ', @args_list); @@ -637,8 +646,10 @@ elsif ($opt_b) { } if ($calls{$_}->{ProcName} eq "GetSysinfo" or + $calls{$_}->{ProcName} eq "GetMaxVcpus" or $calls{$_}->{ProcName} eq "DomainXMLFromNative" or - $calls{$_}->{ProcName} eq "DomainXMLToNative") { + $calls{$_}->{ProcName} eq "DomainXMLToNative" or + $calls{$_}->{ProcName} eq "FindStoragePoolSources") { $prefix = "Connect" } elsif ($calls{$_}->{ProcName} eq "SupportsFeature") { $prefix = "Drv" -- 1.7.0.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list