]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
openvz: Allow to undefine a running domain
authorOsier Yang <jyang@redhat.com>
Fri, 19 Aug 2011 13:48:47 +0000 (21:48 +0800)
committerOsier Yang <jyang@redhat.com>
Fri, 19 Aug 2011 13:48:47 +0000 (21:48 +0800)
src/openvz/openvz_driver.c

index b9dc712056ee3cc007751ec191e0f42f0c4f1cb6..69ff44436e876558ffeb23b464b581a328c41f1c 100644 (file)
@@ -1132,19 +1132,18 @@ openvzDomainUndefineFlags(virDomainPtr dom,
     if (openvzGetVEStatus(vm, &status, NULL) == -1)
         goto cleanup;
 
-    if (status != VIR_DOMAIN_SHUTOFF) {
-        openvzError(VIR_ERR_OPERATION_INVALID, "%s",
-                    _("cannot delete active domain"));
-        goto cleanup;
-    }
-
     openvzSetProgramSentinal(prog, vm->def->name);
     if (virRun(prog, NULL) < 0) {
         goto cleanup;
     }
 
-    virDomainRemoveInactive(&driver->domains, vm);
-    vm = NULL;
+    if (virDomainObjIsActive(vm)) {
+        vm->persistent = 0;
+    } else {
+        virDomainRemoveInactive(&driver->domains, vm);
+        vm = NULL;
+    }
+
     ret = 0;
 
 cleanup: