summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/cloud/vmware/vmware_host_scanhba.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/cloud/vmware/vmware_host_scanhba.py')
-rw-r--r--lib/ansible/modules/cloud/vmware/vmware_host_scanhba.py152
1 files changed, 0 insertions, 152 deletions
diff --git a/lib/ansible/modules/cloud/vmware/vmware_host_scanhba.py b/lib/ansible/modules/cloud/vmware/vmware_host_scanhba.py
deleted file mode 100644
index 16109d1365..0000000000
--- a/lib/ansible/modules/cloud/vmware/vmware_host_scanhba.py
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-# Copyright: (c) 2018, Ansible Project
-# 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_scanhba
-short_description: Rescan host HBA's and optionally refresh the storage system
-description:
-- This module can force a rescan of the hosts HBA subsystem which is needed when wanting to mount a new datastore.
-- You could use this before using M(vmware_host_datastore) to mount a new datastore to ensure your device/volume is ready.
-- You can also optionally force a Refresh of the Storage System in vCenter/ESXi Web Client.
-- All parameters and VMware object names are case sensitive.
-- You can supply an esxi_hostname or a cluster_name
-version_added: '2.8'
-author:
-- Michael Eaton (@michaeldeaton)
-notes:
-- Tested on vSphere 6.0
-requirements:
-- python >= 2.6
-- PyVmomi
-options:
- esxi_hostname:
- description:
- - ESXi hostname to Rescan the storage subsystem on.
- required: false
- type: str
- cluster_name:
- description:
- - Cluster name to Rescan the storage subsystem on (this will run the rescan task on each host in the cluster).
- required: false
- type: str
- refresh_storage:
- description:
- - Refresh the storage system in vCenter/ESXi Web Client for each host found
- required: false
- default: false
- type: bool
-extends_documentation_fragment: vmware.documentation
-'''
-
-EXAMPLES = r'''
-- name: Recan HBA's for a given ESXi host and refresh storage system objects
- vmware_host_scanhba:
- hostname: '{{ vcenter_hostname }}'
- username: '{{ vcenter_username }}'
- password: '{{ vcenter_password }}'
- esxi_hostname: '{{ inventory_hostname }}'
- refresh_storage: true
- delegate_to: localhost
-
-- name: Rescan HBA's for a given cluster - all found hosts will be scanned
- vmware_host_scanhba:
- hostname: '{{ vcenter_hostname }}'
- username: '{{ vcenter_username }}'
- password: '{{ vcenter_password }}'
- esxi_hostname: '{{ inventory_hostname }}'
- refresh_storage: true
- delegate_to: localhost
-
-- name: Recan HBA's for a given ESXi host and don't refresh storage system objects
- vmware_host_scanhba:
- hostname: '{{ vcenter_hostname }}'
- username: '{{ vcenter_username }}'
- password: '{{ vcenter_password }}'
- esxi_hostname: '{{ inventory_hostname }}'
- delegate_to: localhost
-'''
-
-RETURN = r'''
-result:
- description: return confirmation of requested host and updated / refreshed storage system
- returned: always
- type: dict
- sample: {
- "esxi01.example.com": {
- "rescaned_hba": "true",
- "refreshed_storage": "true"
- }
- }
-'''
-
-try:
- from pyVmomi import vim
-except ImportError:
- pass
-
-from ansible.module_utils.basic import AnsibleModule
-from ansible.module_utils.vmware import vmware_argument_spec, PyVmomi, find_obj
-from ansible.module_utils._text import to_native
-
-
-class VmwareHbaScan(PyVmomi):
- def __init__(self, module):
- super(VmwareHbaScan, self).__init__(module)
-
- def scan(self):
- esxi_host_name = self.params.get('esxi_hostname', None)
- cluster_name = self.params.get('cluster_name', None)
- refresh_storage = self.params.get('refresh_storage', bool)
- hosts = self.get_all_host_objs(cluster_name=cluster_name, esxi_host_name=esxi_host_name)
- results = dict(changed=True, result=dict())
-
- if not hosts:
- self.module.fail_json(msg="Failed to find any hosts.")
-
- for host in hosts:
- results['result'][host.name] = dict()
- host.configManager.storageSystem.RescanAllHba()
- if refresh_storage is True:
- host.configManager.storageSystem.RefreshStorageSystem()
-
- results['result'][host.name]['rescaned_hba'] = True
- results['result'][host.name]['refreshed_storage'] = refresh_storage
-
- self.module.exit_json(**results)
-
-
-def main():
- argument_spec = vmware_argument_spec()
- argument_spec.update(
- esxi_hostname=dict(type='str', required=False),
- cluster_name=dict(type='str', required=False),
- refresh_storage=dict(type='bool', default=False, required=False)
- )
- module = AnsibleModule(
- argument_spec=argument_spec,
- required_one_of=[
- ['cluster_name', 'esxi_hostname'],
- ],
- supports_check_mode=False
- )
-
- hbascan = VmwareHbaScan(module)
- hbascan.scan()
-
-
-if __name__ == '__main__':
- main()