From 141746059443078489e3bd5c803b7dfcb6a8847c Mon Sep 17 00:00:00 2001 From: Rottler Tamas Date: Thu, 9 Mar 2023 14:48:04 +0100 Subject: [PATCH] new program --- vmw_list_vm_mac_addresses | 63 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 vmw_list_vm_mac_addresses diff --git a/vmw_list_vm_mac_addresses b/vmw_list_vm_mac_addresses new file mode 100755 index 0000000..cd90325 --- /dev/null +++ b/vmw_list_vm_mac_addresses @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +from pyVmomi import vim +import pyVim.connect +import atexit +import argparse +import time +import siteconf + +site_conf = siteconf.read() + + +def get_args(): + parser = argparse.ArgumentParser( + description='Set VM network') + + parser.add_argument('-s', '--site', + required=True, + action='store', + help='name of the site to connect to') + + args = parser.parse_args() + return args + + +def get_vms(content): + obj_view = content.viewManager.CreateContainerView( + content.rootFolder, [vim.VirtualMachine], True) + vms_list = obj_view.view + obj_view.Destroy() + return vms_list + + +def main(): + args = get_args() + + if not args.site in site_conf: + print(f"site not found: {args.site}") + exit(1) + host = site_conf[args.site]['vcenter'] + user = site_conf[args.site]['vcenter_user'] + passwd = site_conf[args.site]['vcenter_passwd'] + + si = pyVim.connect.SmartConnectNoSSL( + host = host, + user = user, + pwd = passwd + ) + atexit.register(pyVim.connect.Disconnect, si) + content = si.RetrieveContent() + + vms = get_vms(content) + for vm in vms: + for d in vm.config.hardware.device: + if hasattr(d, 'macAddress'): + print(f'{d.macAddress} {vm.name}') + + + + +if __name__ == "__main__": + main() + +# vim: set tabstop=4 shiftwidth=4 expandtab smarttab: