Quantcast
Channel: VMware Communities : Popular Discussions - VMware Server Archives
Viewing all articles
Browse latest Browse all 69891

FindItems and Snapshot -- vmopen fails

$
0
0

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);

   

}


Viewing all articles
Browse latest Browse all 69891

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>