[libvirt] [PATCH libvirt-java 3/7] Implement virDomainUndefineFlags by overloading the existing undefine method

Wido den Hollander wido at widodh.nl
Sun Jan 13 18:09:25 UTC 2013


We divert from the one-on-one mapping rule here by not adding the undefineFlags() method

Signed-off-by: Wido den Hollander <wido at widodh.nl>
---
 src/main/java/org/libvirt/Domain.java      |   24 ++++++++++++++++++++++++
 src/main/java/org/libvirt/jna/Libvirt.java |    1 +
 2 files changed, 25 insertions(+)

diff --git a/src/main/java/org/libvirt/Domain.java b/src/main/java/org/libvirt/Domain.java
index 3da6f56..8f4d9da 100644
--- a/src/main/java/org/libvirt/Domain.java
+++ b/src/main/java/org/libvirt/Domain.java
@@ -76,6 +76,17 @@ public class Domain {
         static final int VIR_DOMAIN_XML_UPDATE_CPU   = (1 << 2); /* update guest CPU requirements according to host CPU */
     }
 
+    static final class UndefineFlags {
+        /**
+         * Also remove any managed save
+         */
+        static final int MANAGED_SAVE = (1 << 0);
+        /**
+         * If last use of domain, then also remove any snapshot metadata
+         */
+        static final int SNAPSHOTS_METADATA = (1 << 1);
+    }
+
     /**
      * the native virDomainPtr.
      */
@@ -1118,6 +1129,19 @@ public class Domain {
     }
 
     /**
+     * Undefines this domain but does not stop if it it is running. With option for passing flags
+     *
+     * @see <a href="http://libvirt.org/html/libvirt-libvirt.html#virDomainUndefineFlags">Libvirt Documentation</a>
+     * @param flags
+     *            flags for undefining the domain. See virDomainUndefineFlagsValues for more information
+     * @throws LibvirtException
+    */
+    public void undefine(int flags) throws LibvirtException {
+        libvirt.virDomainUndefineFlags(VDP, flags);
+        processError();
+    }
+
+    /**
      * Change a virtual device on a domain
      *
      * @see <a href="http://www.libvirt.org/html/libvirt-libvirt.html#virDomainUpdateDeviceFlags">Libvirt Documentation</a>
diff --git a/src/main/java/org/libvirt/jna/Libvirt.java b/src/main/java/org/libvirt/jna/Libvirt.java
index 8262cb9..b814cab 100644
--- a/src/main/java/org/libvirt/jna/Libvirt.java
+++ b/src/main/java/org/libvirt/jna/Libvirt.java
@@ -240,6 +240,7 @@ public interface Libvirt extends Library {
     int virDomainSuspend(DomainPointer virDomainPtr);
     int virDomainUpdateDeviceFlags(DomainPointer virDomainPtr, String xml, int flags);
     int virDomainUndefine(DomainPointer virDomainPtr);
+    int virDomainUndefineFlags(DomainPointer virDomainPtr, int flags);
 
     // Network functions
     int virNetworkCreate(NetworkPointer virConnectPtr);
-- 
1.7.9.5




More information about the libvir-list mailing list