Advertisement
Guest User

Untitled

a guest
Jul 7th, 2015
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.57 KB | None | 0 0
  1. <p>def print_vm_info(virtual_machine, depth=1):<br />
  2. &nbsp; &nbsp; """<br />
  3. &nbsp; &nbsp; Print information for a particular virtual machine or recurse into a<br />
  4. &nbsp; &nbsp; folder with depth protection<br />
  5. &nbsp; &nbsp; """<br />
  6. &nbsp; &nbsp; maxdepth = 10</p>
  7.  
  8. <p>&nbsp; &nbsp; # if this is a group it will have children. if it does, recurse into them<br />
  9. &nbsp; &nbsp; # and then return<br />
  10. &nbsp; &nbsp; if hasattr(virtual_machine, 'childEntity'):<br />
  11. &nbsp; &nbsp; &nbsp; &nbsp; if depth > maxdepth:<br />
  12. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return<br />
  13. &nbsp; &nbsp; &nbsp; &nbsp; vmList = virtual_machine.childEntity<br />
  14. &nbsp; &nbsp; &nbsp; &nbsp; for c in vmList:<br />
  15. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print_vm_info(c, depth + 1)<br />
  16. &nbsp; &nbsp; &nbsp; &nbsp; return</p>
  17.  
  18. <p>&nbsp; &nbsp; summary = virtual_machine.summary<br />
  19. &nbsp; &nbsp; print "Name &nbsp; &nbsp; &nbsp; : ", summary.config.name<br />
  20. &nbsp; &nbsp; print "Path &nbsp; &nbsp; &nbsp; : ", summary.config.vmPathName<br />
  21. &nbsp; &nbsp; print "Guest &nbsp; &nbsp; &nbsp;: ", summary.config.guestFullName<br />
  22. &nbsp; &nbsp; print "Instance UUID : ", summary.config.instanceUuid<br />
  23. &nbsp; &nbsp; print "Bios UUID &nbsp; &nbsp; : ", summary.config.uuid<br />
  24. &nbsp; &nbsp; annotation = summary.config.annotation<br />
  25. &nbsp; &nbsp; if annotation:<br />
  26. &nbsp; &nbsp; &nbsp; &nbsp; print "Annotation : ", annotation<br />
  27. &nbsp; &nbsp; print "State &nbsp; &nbsp; &nbsp;: ", summary.runtime.powerState<br />
  28. &nbsp; &nbsp; if summary.guest is not None:<br />
  29. &nbsp; &nbsp; &nbsp; &nbsp; ip_address = summary.guest.ipAddress<br />
  30. &nbsp; &nbsp; &nbsp; &nbsp; tools_version = summary.guest.toolsStatus<br />
  31. &nbsp; &nbsp; &nbsp; &nbsp; if tools_version is not None:<br />
  32. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print "VMware-tools: ", tools_version<br />
  33. &nbsp; &nbsp; &nbsp; &nbsp; else:<br />
  34. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print "Vmware-tools: None"<br />
  35. &nbsp; &nbsp; &nbsp; &nbsp; if ip_address:<br />
  36. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print "IP &nbsp; &nbsp; &nbsp; &nbsp; : ", ip_address<br />
  37. &nbsp; &nbsp; &nbsp; &nbsp; else:<br />
  38. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print "IP &nbsp; &nbsp; &nbsp; &nbsp; : None"<br />
  39. &nbsp; &nbsp; if summary.runtime.question is not None:<br />
  40. &nbsp; &nbsp; &nbsp; &nbsp; print "Question &nbsp;: ", summary.runtime.question.text<br />
  41. &nbsp; &nbsp; print ""</p>
  42.  
  43. <p><br />
  44. def main():<br />
  45. &nbsp; &nbsp; """<br />
  46. &nbsp; &nbsp; Simple command-line program for listing the virtual machines on a system.<br />
  47. &nbsp; &nbsp; """</p>
  48.  
  49. <p>&nbsp; &nbsp; args = cli.get_args()</p>
  50.  
  51. <p>&nbsp; &nbsp; try:<br />
  52. &nbsp; &nbsp; &nbsp; &nbsp; service_instance = connect.SmartConnect(host=args.host,<br />
  53. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user=args.user,<br />
  54. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pwd=args.password,<br />
  55. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; port=int(args.port))</p>
  56.  
  57. <p>&nbsp; &nbsp; &nbsp; &nbsp; atexit.register(connect.Disconnect, service_instance)</p>
  58.  
  59. <p>&nbsp; &nbsp; &nbsp; &nbsp; content = service_instance.RetrieveContent()<br />
  60. &nbsp; &nbsp; &nbsp; &nbsp; children = content.rootFolder.childEntity<br />
  61. &nbsp; &nbsp; &nbsp; &nbsp; for child in children:<br />
  62. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if hasattr(child, 'vmFolder'):<br />
  63. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; datacenter = child<br />
  64. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else:<br />
  65. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # some other non-datacenter type object<br />
  66. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue</p>
  67.  
  68. <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vm_folder = datacenter.vmFolder<br />
  69. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vm_list = vm_folder.childEntity<br />
  70. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for virtual_machine in vm_list:<br />
  71. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print_vm_info(virtual_machine, 10)</p>
  72.  
  73. <p>&nbsp; &nbsp; except vmodl.MethodFault as error:<br />
  74. &nbsp; &nbsp; &nbsp; &nbsp; print "Caught vmodl fault : " + error.msg<br />
  75. &nbsp; &nbsp; &nbsp; &nbsp; return -1</p>
  76.  
  77. <p>&nbsp; &nbsp; return 0</p>
  78.  
  79. <p># Start program<br />
  80. if __name__ == "__main__":<br />
  81. &nbsp; &nbsp; main()</p>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement