diff --git a/src/saltext/vmware/modules/vm.py b/src/saltext/vmware/modules/vm.py index be7957db..5fe2f93a 100644 --- a/src/saltext/vmware/modules/vm.py +++ b/src/saltext/vmware/modules/vm.py @@ -295,9 +295,13 @@ def info(vm_name=None, service_instance=None, profile=None): datacenter_ref = utils_common.get_parent_type(vm, vim.Datacenter) mac_address = utils_vm.get_mac_address(vm) network = utils_vm.get_network(vm) + disk_bytes = utils_vm.get_disk_size(vm) tags = [] for tag in vm.tag: - tags.append(tag.name) + try: + tags.append(tag.name) + except AttributeError: + pass folder_path = utils_common.get_path(vm, service_instance) info[vm.summary.config.name] = { "guest_name": vm.summary.config.name, @@ -313,6 +317,9 @@ def info(vm_name=None, service_instance=None, profile=None): "tags": tags, "folder": folder_path, "moid": vm._moId, + "num_cpu": vm.config.hardware.numCPU, + "memory_mb": vm.config.hardware.memoryMB, + "disk_bytes": disk_bytes, } return info diff --git a/src/saltext/vmware/utils/vm.py b/src/saltext/vmware/utils/vm.py index a81aa6d4..5a1f69a9 100644 --- a/src/saltext/vmware/utils/vm.py +++ b/src/saltext/vmware/utils/vm.py @@ -602,6 +602,20 @@ def read_ovf_from_ova(ova_path): exit(f"Could not read file: {ova_path}") +def get_disk_size(vm): + """ + Returns total disk size in bytes from the virtual machine object. + vm + Virtual Machine Object from which to obtain disk size. + """ + size = 0.0 + for device in vm.config.hardware.device: + if isinstance(device, vim.vm.device.VirtualDisk): + size += device.capacityInBytes + + return size + + def get_network(vm): """ Returns network from a virtual machine object.