From 1934bac52c8201fad12e4b2bef580916c100e471 Mon Sep 17 00:00:00 2001 From: Abhimanyu Saharan Date: Mon, 28 Nov 2022 14:47:01 +0530 Subject: [PATCH 1/2] added vm.network --- src/saltext/vmware/modules/vm.py | 45 ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/saltext/vmware/modules/vm.py b/src/saltext/vmware/modules/vm.py index d441eb6d..59d80513 100644 --- a/src/saltext/vmware/modules/vm.py +++ b/src/saltext/vmware/modules/vm.py @@ -678,3 +678,48 @@ def relocate( if ret == "success": return {"virtual_machine": "moved"} return {"virtual_machine": "failed to move"} + + +def network(vm_name, service_instance=None, profile=None): + """ + Retreives the networking for a virtual machine. + + vm_name + The name of the virtual machine to relocate. + + service_instance + (optional) The Service Instance from which to obtain managed object references. + + profile + Profile to use (optional) + + CLI Example: + + .. code-block:: bash + + salt '*' vmware_vm.network vm_name=vm01 + """ + ret = {} + + service_instance = service_instance or connect.get_service_instance( + config=__opts__, profile=profile + ) + vm_ref = utils_common.get_mor_by_property(service_instance, vim.VirtualMachine, vm_name) + + network_refs = vm_ref.network + + for network in network_refs: + ret[network.name] = {} + + try: + ret[network.name]["config"] = network.config + except AttributeError: + # Fetch the port groups via host configuration attached to the virtual machine + host = vm_ref.summary.runtime.host + for portgroup in host.config.network.portgroup: + if network.name == portgroup.spec.name: + ret[network.name]["config"] = portgroup.spec + + ret = json.loads(json.dumps(ret, cls=VmomiSupport.VmomiJSONEncoder)) + + return ret From 2a51c815aae8d4909d6ecbc70fd32b308a82b685 Mon Sep 17 00:00:00 2001 From: Abhimanyu Saharan Date: Mon, 28 Nov 2022 15:51:26 +0530 Subject: [PATCH 2/2] Update vm.py --- src/saltext/vmware/modules/vm.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/saltext/vmware/modules/vm.py b/src/saltext/vmware/modules/vm.py index 59d80513..5b238aa8 100644 --- a/src/saltext/vmware/modules/vm.py +++ b/src/saltext/vmware/modules/vm.py @@ -716,9 +716,10 @@ def network(vm_name, service_instance=None, profile=None): except AttributeError: # Fetch the port groups via host configuration attached to the virtual machine host = vm_ref.summary.runtime.host - for portgroup in host.config.network.portgroup: - if network.name == portgroup.spec.name: - ret[network.name]["config"] = portgroup.spec + if host.config: + for portgroup in host.config.network.portgroup: + if network.name == portgroup.spec.name: + ret[network.name]["config"] = portgroup.spec ret = json.loads(json.dumps(ret, cls=VmomiSupport.VmomiJSONEncoder))