]> xenbits.xensource.com Git - libvirt.git/commitdiff
Wire up virDomainMigrateSetSpeed for the remote RPC driver
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 17 Feb 2011 14:26:14 +0000 (14:26 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 22 Mar 2011 15:53:08 +0000 (15:53 +0000)
* src/remote/remote_protocol.x: Define wire protocol
* daemon/remote.c, src/remote/remote_driver.c: Add new
  functions for virDomainMigrateSetSpeed API
* src/remote/remote_protocol.c, src/remote/remote_protocol.h,
  daemon/remote_dispatch_args.h, daemon/remote_dispatch_prototypes.h,
  daemon/remote_dispatch_table.h: Re-generate files

daemon/remote.c
daemon/remote_dispatch_args.h
daemon/remote_dispatch_prototypes.h
daemon/remote_dispatch_table.h
src/remote/remote_driver.c
src/remote/remote_protocol.c
src/remote/remote_protocol.h
src/remote/remote_protocol.x
src/remote_protocol-structs

index f410982339dbc7aad1e74a8f89a9c2f84562d5f0..a8fef4d1241584116b7f39b39dd1503cd516400f 100644 (file)
@@ -6562,6 +6562,34 @@ remoteDispatchDomainMigrateSetMaxDowntime(struct qemud_server *server ATTRIBUTE_
     return 0;
 }
 
+static int
+remoteDispatchDomainMigrateSetMaxSpeed(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_set_max_speed_args *args,
+                                       void *ret ATTRIBUTE_UNUSED)
+{
+    virDomainPtr dom;
+
+    dom = get_nonnull_domain(conn, args->dom);
+    if (dom == NULL) {
+        remoteDispatchConnError(rerr, conn);
+        return -1;
+    }
+
+    if (virDomainMigrateSetMaxSpeed(dom, args->bandwidth, args->flags) == -1) {
+        virDomainFree(dom);
+        remoteDispatchConnError(rerr, conn);
+        return -1;
+    }
+
+    virDomainFree(dom);
+
+    return 0;
+}
+
 static int
 remoteDispatchDomainSnapshotCreateXml (struct qemud_server *server ATTRIBUTE_UNUSED,
                                        struct qemud_client *client ATTRIBUTE_UNUSED,
index b32ae1f88d5be9475b6e0146d088e9eca9748be7..15fa1a01ab75e18c44224ab772c346df9dd4b98e 100644 (file)
     remote_domain_set_memory_flags_args val_remote_domain_set_memory_flags_args;
     remote_domain_set_blkio_parameters_args val_remote_domain_set_blkio_parameters_args;
     remote_domain_get_blkio_parameters_args val_remote_domain_get_blkio_parameters_args;
+    remote_domain_migrate_set_max_speed_args val_remote_domain_migrate_set_max_speed_args;
index 4db6c769e4374185d0b3c5baecf03141801d5a96..3fcf87c8443a1bbca187da1204c9964f7b076533 100644 (file)
@@ -482,6 +482,14 @@ static int remoteDispatchDomainMigrateSetMaxDowntime(
     remote_error *err,
     remote_domain_migrate_set_max_downtime_args *args,
     void *ret);
+static int remoteDispatchDomainMigrateSetMaxSpeed(
+    struct qemud_server *server,
+    struct qemud_client *client,
+    virConnectPtr conn,
+    remote_message_header *hdr,
+    remote_error *err,
+    remote_domain_migrate_set_max_speed_args *args,
+    void *ret);
 static int remoteDispatchDomainOpenConsole(
     struct qemud_server *server,
     struct qemud_client *client,
index c50d0388264a7977b51be6e54d1e6718913d24b1..c5f6653d0d8d08f0d6b7f4a619b5be324dbb0de7 100644 (file)
     .args_filter = (xdrproc_t) xdr_remote_domain_get_blkio_parameters_args,
     .ret_filter = (xdrproc_t) xdr_remote_domain_get_blkio_parameters_ret,
 },
+{   /* DomainMigrateSetMaxSpeed => 207 */
+    .fn = (dispatch_fn) remoteDispatchDomainMigrateSetMaxSpeed,
+    .args_filter = (xdrproc_t) xdr_remote_domain_migrate_set_max_speed_args,
+    .ret_filter = (xdrproc_t) xdr_void,
+},
index 5a753ab2a865b1a39ff1c809503fb7969b6ea7a7..40da5c233d0918c4514f6d394c5ad968ca499535 100644 (file)
@@ -9183,6 +9183,35 @@ done:
     return rv;
 }
 
+static int
+remoteDomainMigrateSetMaxSpeed(virDomainPtr domain,
+                               unsigned long bandwidth,
+                               unsigned int flags)
+{
+    struct private_data *priv = domain->conn->privateData;
+    remote_domain_migrate_set_max_speed_args args;
+    int rv = -1;
+
+    remoteDriverLock(priv);
+
+    make_nonnull_domain(&args.dom, domain);
+    args.bandwidth = bandwidth;
+    args.flags = flags;
+
+    if (call(domain->conn, priv, 0, REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED,
+             (xdrproc_t) xdr_remote_domain_migrate_set_max_speed_args,
+             (char *) &args,
+             (xdrproc_t) xdr_void,
+             (char *) NULL) == -1)
+        goto done;
+
+    rv = 0;
+
+done:
+    remoteDriverUnlock(priv);
+    return rv;
+}
+
 static virDomainSnapshotPtr
 remoteDomainSnapshotCreateXML(virDomainPtr domain,
                               const char *xmlDesc,
@@ -11156,7 +11185,7 @@ static virDriver remote_driver = {
     remoteDomainGetJobInfo, /* domainGetJobInfo */
     remoteDomainAbortJob, /* domainFinishJob */
     remoteDomainMigrateSetMaxDowntime, /* domainMigrateSetMaxDowntime */
-    NULL, /* domainMigrateSetMaxSpeed */
+    remoteDomainMigrateSetMaxSpeed, /* domainMigrateSetMaxSpeed */
     remoteDomainEventRegisterAny, /* domainEventRegisterAny */
     remoteDomainEventDeregisterAny, /* domainEventDeregisterAny */
     remoteDomainManagedSave, /* domainManagedSave */
index ea2bdf7b8f3e3db0fa1b7b60330fdb66bab2da08..7ecea9d1ff82ac7b22916e2d8f54273f3924a510 100644 (file)
@@ -3507,6 +3507,19 @@ xdr_remote_domain_migrate_set_max_downtime_args (XDR *xdrs, remote_domain_migrat
         return TRUE;
 }
 
+bool_t
+xdr_remote_domain_migrate_set_max_speed_args (XDR *xdrs, remote_domain_migrate_set_max_speed_args *objp)
+{
+
+         if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
+                 return FALSE;
+         if (!xdr_uint64_t (xdrs, &objp->bandwidth))
+                 return FALSE;
+         if (!xdr_u_int (xdrs, &objp->flags))
+                 return FALSE;
+        return TRUE;
+}
+
 bool_t
 xdr_remote_domain_events_register_any_args (XDR *xdrs, remote_domain_events_register_any_args *objp)
 {
index a55f7c4d84bd41472f0efeadc50988640fcf0fdd..87de0dad8b79ce30b8010db4be27e6ad406d05a7 100644 (file)
@@ -1982,6 +1982,13 @@ struct remote_domain_migrate_set_max_downtime_args {
 };
 typedef struct remote_domain_migrate_set_max_downtime_args remote_domain_migrate_set_max_downtime_args;
 
+struct remote_domain_migrate_set_max_speed_args {
+        remote_nonnull_domain dom;
+        uint64_t bandwidth;
+        u_int flags;
+};
+typedef struct remote_domain_migrate_set_max_speed_args remote_domain_migrate_set_max_speed_args;
+
 struct remote_domain_events_register_any_args {
         int eventID;
 };
@@ -2387,6 +2394,7 @@ enum remote_procedure {
         REMOTE_PROC_DOMAIN_SET_MEMORY_FLAGS = 204,
         REMOTE_PROC_DOMAIN_SET_BLKIO_PARAMETERS = 205,
         REMOTE_PROC_DOMAIN_GET_BLKIO_PARAMETERS = 206,
+        REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED = 207,
 };
 typedef enum remote_procedure remote_procedure;
 
@@ -2736,6 +2744,7 @@ extern  bool_t xdr_remote_domain_get_job_info_args (XDR *, remote_domain_get_job
 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*);
+extern  bool_t xdr_remote_domain_migrate_set_max_speed_args (XDR *, remote_domain_migrate_set_max_speed_args*);
 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*);
@@ -3090,6 +3099,7 @@ 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 ();
+extern bool_t xdr_remote_domain_migrate_set_max_speed_args ();
 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 ();
index aa710a497e349f502555fb28f0eecd1af8ac6a8a..731068912dfa9cbeee24a4adbf8d5b185b9f2c3e 100644 (file)
@@ -1760,6 +1760,12 @@ struct remote_domain_migrate_set_max_downtime_args {
     unsigned flags;
 };
 
+struct remote_domain_migrate_set_max_speed_args {
+    remote_nonnull_domain dom;
+    unsigned hyper bandwidth;
+    unsigned flags;
+};
+
 struct remote_domain_events_register_any_args {
     int eventID;
 };
@@ -2152,7 +2158,8 @@ enum remote_procedure {
     REMOTE_PROC_GET_SYSINFO = 203,
     REMOTE_PROC_DOMAIN_SET_MEMORY_FLAGS = 204,
     REMOTE_PROC_DOMAIN_SET_BLKIO_PARAMETERS = 205,
-    REMOTE_PROC_DOMAIN_GET_BLKIO_PARAMETERS = 206
+    REMOTE_PROC_DOMAIN_GET_BLKIO_PARAMETERS = 206,
+    REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED = 207
 
     /*
      * Notice how the entries are grouped in sets of 10 ?
index 35d0c1ccee62682684fb60b6520cea3a1796e3d2..81889c3b716c2d69256934d49481561a879ca8fb 100644 (file)
@@ -1276,6 +1276,11 @@ struct remote_domain_migrate_set_max_downtime_args {
        uint64_t                   downtime;
        u_int                      flags;
 };
+struct remote_domain_migrate_set_max_speed_args {
+       remote_nonnull_domain      dom;
+       uint64_t                   bandwidth;
+       u_int                      flags;
+};
 struct remote_domain_events_register_any_args {
        int                        eventID;
 };