diff --git a/plugins/modules/nsxt_fabric_compute_collections_facts.py b/plugins/modules/nsxt_fabric_compute_collections_facts.py new file mode 100644 index 00000000..553856ed --- /dev/null +++ b/plugins/modules/nsxt_fabric_compute_collections_facts.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright 2018 VMware, Inc. +# SPDX-License-Identifier: BSD-2-Clause OR GPL-3.0-only +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: nsxt_fabric_compute_collections_facts +short_description: Return the List of Compute collections +description: Returns information about all compute collections. +version_added: "2.7" +author: Maros Kukan +options: + hostname: + description: Deployed NSX manager hostname. + required: true + type: str + username: + description: The username to authenticate with the NSX manager. + required: true + type: str + password: + description: The password to authenticate with the NSX manager. + required: true + type: str + +''' + +EXAMPLES = ''' +- name: Lists all compute collections + nsxt_fabric_compute_collections_facts: + hostname: "10.192.167.137" + username: "admin" + password: "Admin!23Admin" + validate_certs: False +''' + +RETURN = '''# ''' + +import json +from ansible.module_utils.basic import AnsibleModule +from ansible_collections.vmware.ansible_for_nsxt.plugins.module_utils.vmware_nsxt import vmware_argument_spec, request +from ansible.module_utils.urls import open_url, fetch_url +from ansible.module_utils._text import to_native +from ansible.module_utils.six.moves.urllib.error import HTTPError + +def main(): + argument_spec = vmware_argument_spec() + + module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True) + + mgr_hostname = module.params['hostname'] + mgr_username = module.params['username'] + mgr_password = module.params['password'] + validate_certs = module.params['validate_certs'] + + manager_url = 'https://{}/api/v1'.format(mgr_hostname) + + changed = False + try: + (rc, resp) = request(manager_url+ '/fabric/compute-collections', headers=dict(Accept='application/json'), + url_username=mgr_username, url_password=mgr_password, validate_certs=validate_certs, ignore_errors=True) + except Exception as err: + module.fail_json(msg='Error accessing fabric compute collection. Error [%s]' % (to_native(err))) + + module.exit_json(changed=changed, **resp) +if __name__ == '__main__': + main()