summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/cloud/vmware/vmware_host_capability_info.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/cloud/vmware/vmware_host_capability_info.py')
-rw-r--r--lib/ansible/modules/cloud/vmware/vmware_host_capability_info.py222
1 files changed, 0 insertions, 222 deletions
diff --git a/lib/ansible/modules/cloud/vmware/vmware_host_capability_info.py b/lib/ansible/modules/cloud/vmware/vmware_host_capability_info.py
deleted file mode 100644
index 1d8059dd6f..0000000000
--- a/lib/ansible/modules/cloud/vmware/vmware_host_capability_info.py
+++ /dev/null
@@ -1,222 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-# Copyright: (c) 2018, Abhijeet Kasurde <akasurde@redhat.com>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-from __future__ import absolute_import, division, print_function
-__metaclass__ = type
-
-ANSIBLE_METADATA = {
- 'metadata_version': '1.1',
- 'status': ['preview'],
- 'supported_by': 'community'
-}
-
-DOCUMENTATION = r'''
----
-module: vmware_host_capability_info
-short_description: Gathers info about an ESXi host's capability information
-description:
-- This module can be used to gather information about an ESXi host's capability information when ESXi hostname or Cluster name is given.
-version_added: '2.9'
-author:
-- Abhijeet Kasurde (@Akasurde)
-notes:
-- Tested on vSphere 6.5
-requirements:
-- python >= 2.6
-- PyVmomi
-options:
- cluster_name:
- description:
- - Name of the cluster from all host systems to be used for information gathering.
- - If C(esxi_hostname) is not given, this parameter is required.
- type: str
- esxi_hostname:
- description:
- - ESXi hostname to gather information from.
- - If C(cluster_name) is not given, this parameter is required.
- type: str
-extends_documentation_fragment: vmware.documentation
-'''
-
-EXAMPLES = r'''
-- name: Gather capability info about all ESXi Host in given Cluster
- vmware_host_capability_info:
- hostname: '{{ vcenter_hostname }}'
- username: '{{ vcenter_username }}'
- password: '{{ vcenter_password }}'
- cluster_name: cluster_name
- delegate_to: localhost
- register: all_cluster_hosts_info
-
-- name: Gather capability info about ESXi Host
- vmware_host_capability_info:
- hostname: '{{ vcenter_hostname }}'
- username: '{{ vcenter_username }}'
- password: '{{ vcenter_password }}'
- esxi_hostname: '{{ esxi_hostname }}'
- delegate_to: localhost
- register: hosts_info
-'''
-
-RETURN = r'''
-hosts_capability_info:
- description: metadata about host's capability info
- returned: always
- type: dict
- sample: {
- "esxi_hostname_0001": {
- "accel3dSupported": false,
- "backgroundSnapshotsSupported": false,
- "checkpointFtCompatibilityIssues": [],
- "checkpointFtSupported": false,
- "cloneFromSnapshotSupported": true,
- "cpuHwMmuSupported": true,
- }
- }
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ansible.module_utils.vmware import vmware_argument_spec, PyVmomi
-
-
-class CapabilityInfoManager(PyVmomi):
- def __init__(self, module):
- super(CapabilityInfoManager, self).__init__(module)
- cluster_name = self.params.get('cluster_name', None)
- esxi_host_name = self.params.get('esxi_hostname', None)
- self.hosts = self.get_all_host_objs(cluster_name=cluster_name, esxi_host_name=esxi_host_name)
-
- def gather_host_capability_info(self):
- hosts_capability_info = dict()
- for host in self.hosts:
- hc = host.capability
- hosts_capability_info[host.name] = dict(
- recursiveResourcePoolsSupported=hc.recursiveResourcePoolsSupported,
- cpuMemoryResourceConfigurationSupported=hc.cpuMemoryResourceConfigurationSupported,
- rebootSupported=hc.rebootSupported,
- shutdownSupported=hc.shutdownSupported,
- vmotionSupported=hc.vmotionSupported,
- standbySupported=hc.standbySupported,
- ipmiSupported=hc.ipmiSupported,
- maxSupportedVMs=hc.maxSupportedVMs,
- maxRunningVMs=hc.maxRunningVMs,
- maxSupportedVcpus=hc.maxSupportedVcpus,
- maxRegisteredVMs=hc.maxRegisteredVMs,
- datastorePrincipalSupported=hc.datastorePrincipalSupported,
- sanSupported=hc.sanSupported,
- nfsSupported=hc.nfsSupported,
- iscsiSupported=hc.iscsiSupported,
- vlanTaggingSupported=hc.vlanTaggingSupported,
- nicTeamingSupported=hc.nicTeamingSupported,
- highGuestMemSupported=hc.highGuestMemSupported,
- maintenanceModeSupported=hc.maintenanceModeSupported,
- suspendedRelocateSupported=hc.suspendedRelocateSupported,
- restrictedSnapshotRelocateSupported=hc.restrictedSnapshotRelocateSupported,
- perVmSwapFiles=hc.perVmSwapFiles,
- localSwapDatastoreSupported=hc.localSwapDatastoreSupported,
- unsharedSwapVMotionSupported=hc.unsharedSwapVMotionSupported,
- backgroundSnapshotsSupported=hc.backgroundSnapshotsSupported,
- preAssignedPCIUnitNumbersSupported=hc.preAssignedPCIUnitNumbersSupported,
- screenshotSupported=hc.screenshotSupported,
- scaledScreenshotSupported=hc.scaledScreenshotSupported,
- storageVMotionSupported=hc.storageVMotionSupported,
- vmotionWithStorageVMotionSupported=hc.vmotionWithStorageVMotionSupported,
- vmotionAcrossNetworkSupported=hc.vmotionAcrossNetworkSupported,
- maxNumDisksSVMotion=hc.maxNumDisksSVMotion,
- hbrNicSelectionSupported=hc.hbrNicSelectionSupported,
- vrNfcNicSelectionSupported=hc.vrNfcNicSelectionSupported,
- recordReplaySupported=hc.recordReplaySupported,
- ftSupported=hc.ftSupported,
- replayUnsupportedReason=hc.replayUnsupportedReason,
- checkpointFtSupported=hc.checkpointFtSupported,
- smpFtSupported=hc.smpFtSupported,
- maxVcpusPerFtVm=hc.maxVcpusPerFtVm,
- loginBySSLThumbprintSupported=hc.loginBySSLThumbprintSupported,
- cloneFromSnapshotSupported=hc.cloneFromSnapshotSupported,
- deltaDiskBackingsSupported=hc.deltaDiskBackingsSupported,
- perVMNetworkTrafficShapingSupported=hc.perVMNetworkTrafficShapingSupported,
- tpmSupported=hc.tpmSupported,
- virtualExecUsageSupported=hc.virtualExecUsageSupported,
- storageIORMSupported=hc.storageIORMSupported,
- vmDirectPathGen2Supported=hc.vmDirectPathGen2Supported,
- vmDirectPathGen2UnsupportedReasonExtended=hc.vmDirectPathGen2UnsupportedReasonExtended,
- vStorageCapable=hc.vStorageCapable,
- snapshotRelayoutSupported=hc.snapshotRelayoutSupported,
- firewallIpRulesSupported=hc.firewallIpRulesSupported,
- servicePackageInfoSupported=hc.servicePackageInfoSupported,
- maxHostRunningVms=hc.maxHostRunningVms,
- maxHostSupportedVcpus=hc.maxHostSupportedVcpus,
- vmfsDatastoreMountCapable=hc.vmfsDatastoreMountCapable,
- eightPlusHostVmfsSharedAccessSupported=hc.eightPlusHostVmfsSharedAccessSupported,
- nestedHVSupported=hc.nestedHVSupported,
- vPMCSupported=hc.vPMCSupported,
- interVMCommunicationThroughVMCISupported=hc.interVMCommunicationThroughVMCISupported,
- scheduledHardwareUpgradeSupported=hc.scheduledHardwareUpgradeSupported,
- featureCapabilitiesSupported=hc.featureCapabilitiesSupported,
- latencySensitivitySupported=hc.latencySensitivitySupported,
- storagePolicySupported=hc.storagePolicySupported,
- accel3dSupported=hc.accel3dSupported,
- reliableMemoryAware=hc.reliableMemoryAware,
- multipleNetworkStackInstanceSupported=hc.multipleNetworkStackInstanceSupported,
- messageBusProxySupported=hc.messageBusProxySupported,
- vsanSupported=hc.vsanSupported,
- vFlashSupported=hc.vFlashSupported,
- hostAccessManagerSupported=hc.hostAccessManagerSupported,
- provisioningNicSelectionSupported=hc.provisioningNicSelectionSupported,
- nfs41Supported=hc.nfs41Supported,
- nfs41Krb5iSupported=hc.nfs41Krb5iSupported,
- turnDiskLocatorLedSupported=hc.turnDiskLocatorLedSupported,
- virtualVolumeDatastoreSupported=hc.virtualVolumeDatastoreSupported,
- markAsSsdSupported=hc.markAsSsdSupported,
- markAsLocalSupported=hc.markAsLocalSupported,
- smartCardAuthenticationSupported=hc.smartCardAuthenticationSupported,
- cryptoSupported=hc.cryptoSupported,
- oneKVolumeAPIsSupported=hc.oneKVolumeAPIsSupported,
- gatewayOnNicSupported=hc.gatewayOnNicSupported,
- upitSupported=hc.upitSupported,
- cpuHwMmuSupported=hc.cpuHwMmuSupported,
- encryptedVMotionSupported=hc.encryptedVMotionSupported,
- encryptionChangeOnAddRemoveSupported=hc.encryptionChangeOnAddRemoveSupported,
- encryptionHotOperationSupported=hc.encryptionHotOperationSupported,
- encryptionWithSnapshotsSupported=hc.encryptionWithSnapshotsSupported,
- encryptionFaultToleranceSupported=hc.encryptionFaultToleranceSupported,
- encryptionMemorySaveSupported=hc.encryptionMemorySaveSupported,
- encryptionRDMSupported=hc.encryptionRDMSupported,
- encryptionVFlashSupported=hc.encryptionVFlashSupported,
- encryptionCBRCSupported=hc.encryptionCBRCSupported,
- encryptionHBRSupported=hc.encryptionHBRSupported,
- supportedVmfsMajorVersion=[version for version in hc.supportedVmfsMajorVersion],
- vmDirectPathGen2UnsupportedReason=[reason for reason in hc.vmDirectPathGen2UnsupportedReason],
- ftCompatibilityIssues=[issue for issue in hc.ftCompatibilityIssues],
- checkpointFtCompatibilityIssues=[issue for issue in hc.checkpointFtCompatibilityIssues],
- smpFtCompatibilityIssues=[issue for issue in hc.smpFtCompatibilityIssues],
- replayCompatibilityIssues=[issue for issue in hc.replayCompatibilityIssues],
- )
- return hosts_capability_info
-
-
-def main():
- argument_spec = vmware_argument_spec()
- argument_spec.update(
- cluster_name=dict(type='str', required=False),
- esxi_hostname=dict(type='str', required=False),
- )
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- required_one_of=[
- ['cluster_name', 'esxi_hostname'],
- ],
- supports_check_mode=True,
- )
-
- host_capability_manager = CapabilityInfoManager(module)
- module.exit_json(changed=False,
- hosts_capability_info=host_capability_manager.gather_host_capability_info())
-
-
-if __name__ == "__main__":
- main()