]> xenbits.xensource.com Git - libvirt.git/commitdiff
vz: added VIR_MIGRATE_PARAM_BANDWIDTH param handling
authorPavel Glushchak <pglushchak@virtuozzo.com>
Thu, 25 Aug 2016 14:00:25 +0000 (17:00 +0300)
committerMaxim Nestratov <mnestratov@virtuozzo.com>
Fri, 26 Aug 2016 11:59:22 +0000 (14:59 +0300)
libvirt-python passes parameter bandwidth = 0
by default. This means that bandwidth is unlimited.
VZ driver doesn't support bandwidth rate limiting,
but we still need to handle it and fail if bandwidth > 0.

Signed-off-by: Pavel Glushchak <pglushchak@virtuozzo.com>
src/vz/vz_driver.c

index 7a12632966e294a0606a94d2130082da7521f539..4a0068c6563cfa3757b0e2a4e3063369b0276d07 100644 (file)
@@ -2897,6 +2897,7 @@ vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags)
     VIR_MIGRATE_PARAM_DEST_XML,         VIR_TYPED_PARAM_STRING, \
     VIR_MIGRATE_PARAM_URI,              VIR_TYPED_PARAM_STRING, \
     VIR_MIGRATE_PARAM_DEST_NAME,        VIR_TYPED_PARAM_STRING, \
+    VIR_MIGRATE_PARAM_BANDWIDTH,        VIR_TYPED_PARAM_ULLONG, \
     NULL
 
 static char *
@@ -2938,12 +2939,23 @@ vzDomainMigrateBegin3Params(virDomainPtr domain,
     char *xml = NULL;
     virDomainObjPtr dom = NULL;
     vzConnPtr privconn = domain->conn->privateData;
+    unsigned long long bandwidth = 0;
 
     virCheckFlags(VZ_MIGRATION_FLAGS, NULL);
 
     if (virTypedParamsValidate(params, nparams, VZ_MIGRATION_PARAMETERS) < 0)
         goto cleanup;
 
+    if (virTypedParamsGetULLong(params, nparams, VIR_MIGRATE_PARAM_BANDWIDTH,
+                                &bandwidth) < 0)
+        goto cleanup;
+
+    if (bandwidth > 0) {
+        virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+                       _("Bandwidth rate limiting is not supported"));
+        goto cleanup;
+    }
+
     if (!(dom = vzDomObjFromDomain(domain)))
         goto cleanup;