code_junkie

VMware VIX API FindItems() method never returns when querying for registered VMs

Nov 13th, 2011
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. using System;
  2. using VixCOM;
  3.  
  4. namespace ConsoleApplication48
  5. {
  6. internal class Program
  7. {
  8. private static void Main()
  9. {
  10. var lib = new VixLibClass();
  11. object results = null;
  12.  
  13. var job = lib.Connect(Constants.VIX_API_VERSION, Constants.VIX_SERVICEPROVIDER_VMWARE_WORKSTATION, null, 0,
  14. null, null, 0, null, null);
  15.  
  16. var err = job.Wait(new[] {Constants.VIX_PROPERTY_JOB_RESULT_HANDLE}, ref results);
  17.  
  18. if (lib.ErrorIndicatesFailure(err))
  19. Console.WriteLine("Error: " + err);
  20.  
  21. var host = (IHost)((object[])results)[0];
  22.  
  23. job = host.FindItems(Constants.VIX_FIND_REGISTERED_VMS, null, -1, new DiscoveryCallback(lib));
  24. job.WaitWithoutResults();
  25.  
  26. host.Disconnect();
  27. }
  28. }
  29.  
  30. internal class DiscoveryCallback : ICallback
  31. {
  32. protected VixLibClass lib;
  33.  
  34. public DiscoveryCallback(VixLibClass lib)
  35. {
  36. this.lib = lib;
  37. }
  38.  
  39. #region ICallback Members
  40.  
  41. public void OnVixEvent(IJob job, int eventType, IVixHandle moreEventInfo)
  42. {
  43. // this method is never called
  44. }
  45.  
  46. #endregion
  47. }
  48. }
Add Comment
Please, Sign In to add comment