Wondering why VmOpen fails here...
#include <stdio.h>
#include <stdlib.h>
#include <vmware-vix/vix.h>
static VixHandle hostHandle = VIX_INVALID_HANDLE;
void VixDiscoveryProc(VixHandle jobHandle,
VixEventType eventType,
VixHandle moreEventInfo,
void *clientData)
{
VixError err = VIX_OK;
jobHandle = VIX_INVALID_HANDLE;
VixHandle vmHandle = VIX_INVALID_HANDLE;
VixHandle snapshotHandle = VIX_INVALID_HANDLE;
char *url = NULL;
// Check callback event; ignore progress reports.
if (VIX_EVENTTYPE_FIND_ITEM != eventType) {
return;
}
// Found a virtual machine.
err = Vix_GetProperties(moreEventInfo,
VIX_PROPERTY_FOUND_ITEM_LOCATION,
&url,
VIX_PROPERTY_NONE);
if (VIX_OK != err) {
// Handle the error...
goto abort;
}
printf("\nAttempting to revert virtual machine: %s", url);
Vix_ReleaseHandle(jobHandle);
jobHandle = VixVM_Open(hostHandle,
url,
NULL, // VixEventProc *callbackProc,
NULL); // void *clientData);
err = VixJob_Wait(jobHandle,
VIX_PROPERTY_JOB_RESULT_HANDLE,
&vmHandle,
VIX_PROPERTY_NONE);
if (VIX_OK != err) {
printf("11111");
goto abort;
}
err = VixVM_GetRootSnapshot(vmHandle, 0, &snapshotHandle);
if (VIX_OK != err) {
printf("22222");
goto abort;
}
Vix_ReleaseHandle(jobHandle);
jobHandle = VixVM_RevertToSnapshot(vmHandle,
snapshotHandle,
0, // options,
VIX_INVALID_HANDLE,
NULL, // *callbackProc,
NULL); // *clientData);
err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);
if (VIX_OK != err) {
printf("33333");
goto abort;
}
abort:
Vix_ReleaseHandle(jobHandle);
Vix_ReleaseHandle(vmHandle);
Vix_ReleaseHandle(snapshotHandle);
Vix_FreeBuffer(url);
}
int main() {
VixHandle jobHandle = VIX_INVALID_HANDLE;
VixHandle hostHandle = VIX_INVALID_HANDLE;
VixError err;
jobHandle = VixHost_Connect(VIX_API_VERSION,
VIX_SERVICEPROVIDER_VMWARE_SERVER,
NULL, // hostName
0, // hostPort
NULL, // userName
NULL, // password,
0, // options
VIX_INVALID_HANDLE, // propertyListHandle
NULL, // callbackProc
NULL); // clientData
err = VixJob_Wait(jobHandle,
VIX_PROPERTY_JOB_RESULT_HANDLE,
&hostHandle,
VIX_PROPERTY_NONE);
if (VIX_OK != err) {
// Handle the error...
goto abort;
}
Vix_ReleaseHandle(jobHandle);
printf("\nLooking for running virtual machines ...\n");
jobHandle = VixHost_FindItems(hostHandle,
VIX_FIND_RUNNING_VMS,
VIX_INVALID_HANDLE, // searchCriteria
-1, // timeout
VixDiscoveryProc,
NULL);
VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);
printf("\n\nKristian says ... \"Cisco pwns!\" ;-)\n");
abort:
Vix_ReleaseHandle(jobHandle);
VixHost_Disconnect(hostHandle);
}