Advertisement
Guest User

Untitled

a guest
Sep 8th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. def vm_info_dump():
  2. # Periodic tasks - get all the vms in VCenter and dump to json file
  3. for vc in VC_POOL.keys():
  4. conn = VCenterInfo(vc)
  5. vm_info_list = conn.get_vc_vm(vc)
  6. file_name = vc
  7. json.dump(
  8. vm_info_list,
  9. open(BASE_DIR + '/vmserver/data/{0}.json'.format(file_name), 'w'),
  10. ensure_ascii=False, indent=4
  11. )
  12.  
  13. class VCenterInfo(object):
  14.  
  15. def __init__(self, ip, user=USER, passwd=PASSWORD):
  16. # init connection
  17. self.ip = ip
  18. self.user = user
  19. self.password = passwd
  20. self.si = connect.SmartConnect(
  21. host=self.ip,
  22. user=self.user,
  23. pwd=self.password
  24. )
  25.  
  26. def vms_info(self):
  27. # vm obj list
  28. atexit.register(connect.Disconnect, self.si)
  29. content = self.si.RetrieveContent()
  30. container = content.rootFolder
  31. VmViewType = [vim.VirtualMachine]
  32. recursive = True
  33. VmContainerView = content.viewManager.CreateContainerView(
  34. container, VmViewType, recursive)
  35. vm_children = VmContainerView.view
  36.  
  37. return vm_children
  38.  
  39. def get_vc_vm(self, vc):
  40. vms = self.vms_info()
  41. data_list = []
  42. for vm in vms:
  43. data = {}
  44. summary = vm.summary
  45. guest = vm.guest
  46. config = vm.config
  47. runtime = vm.runtime
  48. devices = vm.config.hardware.device
  49. # if hasattr(summary, 'config')
  50. disk_kb = 0
  51. for device in devices:
  52. if isinstance(device, vim.vm.device.VirtualDisk):
  53. disk_kb_one = device.capacityInKB
  54. disk_kb += disk_kb_one
  55. total_disk_gb = disk_kb / 1024 / 1024
  56. data['instance_uuid'] = config.instanceUuid
  57. data['list_name'] = config.name
  58. data['hostname'] = guest.hostName
  59. data['ip'] = get_public_ip(vm)
  60. data['os'] = guest.guestFamily
  61. data['os_version'] = guest.guestFullName
  62. if hasattr(config, 'hardware'):
  63. data['cpu'] = config.hardware.numCPU
  64. data['mem'] = config.hardware.memoryMB / 1024
  65. data['total_hard_disk'] = total_disk_gb
  66. data['tools_status'] = guest.toolsStatus
  67. data['guest_status'] = guest.guestState
  68. data['power_status'] = runtime.powerState
  69. data['vc'] = vc
  70. data['esxi_host'] = runtime.host.name
  71. data['template'] = summary.config.template
  72. data_list.append(data)
  73. return data_list
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement