From e710e279483b64b855717e3e5f3fe432b58ec281 Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Thu, 14 Jun 2007 04:43:37 +0000 Subject: [PATCH] VMware server CreateSnapshot takes less arguments than ESX 3's --- bindings/java/src/jni/vmware/javavmware.c | 17 +++++++++++++- .../java/src/org/hyperic/sigar/vmware/VM.java | 23 +++++++++++++++---- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/bindings/java/src/jni/vmware/javavmware.c b/bindings/java/src/jni/vmware/javavmware.c index 3bfb0405..40e2246d 100644 --- a/bindings/java/src/jni/vmware/javavmware.c +++ b/bindings/java/src/jni/vmware/javavmware.c @@ -612,7 +612,7 @@ JNIEXPORT void VMWARE_JNI(VM_suspend) } } -JNIEXPORT void VMWARE_JNI(VM_createSnapshot) +JNIEXPORT void VMWARE_JNI(VM_createNamedSnapshot) (JNIEnv *env, jclass obj, jstring jname, jstring jdescr, jboolean quiesce, jboolean memory) @@ -631,6 +631,21 @@ JNIEXPORT void VMWARE_JNI(VM_createSnapshot) JENV->ReleaseStringUTFChars(env, jdescr, descr); } +/* VMware server version has no args */ +typedef Bool (*VMControl_VMmakeSnapshot)(VMControlVM *); + +JNIEXPORT void VMWARE_JNI(VM_createDefaultSnapshot) +(JNIEnv *env, jclass obj) +{ + dVM(obj); + VMControl_VMmakeSnapshot makeSnapshot = + (VMControl_VMmakeSnapshot)VMControl_VMCreateSnapshot; + + if (!makeSnapshot(vm)) { + vmware_throw_last_vm_error(); + } +} + JNIEXPORT void VMWARE_JNI(VM_revertToSnapshot) (JNIEnv *env, jclass obj) { diff --git a/bindings/java/src/org/hyperic/sigar/vmware/VM.java b/bindings/java/src/org/hyperic/sigar/vmware/VM.java index 996f041b..9d60cb3c 100644 --- a/bindings/java/src/org/hyperic/sigar/vmware/VM.java +++ b/bindings/java/src/org/hyperic/sigar/vmware/VM.java @@ -305,10 +305,25 @@ public class VM extends VMwareObject { resume(POWEROP_MODE_DEFAULT); } - public native void createSnapshot(String name, - String description, - boolean quiesce, - boolean memory) throws VMwareException; + private native void createNamedSnapshot(String name, + String description, + boolean quiesce, + boolean memory) throws VMwareException; + + private native void createDefaultSnapshot() throws VMwareException; + + public void createSnapshot(String name, + String description, + boolean quiesce, + boolean memory) throws VMwareException { + + if (isESX()) { + createNamedSnapshot(name, description, quiesce, memory); + } + else { + createDefaultSnapshot(); + } + } public native void revertToSnapshot() throws VMwareException;