-
Notifications
You must be signed in to change notification settings - Fork 339
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
vmware_host_acceptance: Remove acceptance_level
- Loading branch information
Showing
9 changed files
with
184 additions
and
73 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
breaking_changes: | ||
- vmware_host_acceptance - Removed `acceptance_level` and used its options in `state`. This also means there will be no `state` `list` anymore. | ||
In order to get information about the current acceptance level, use the new module `vmware_host_acceptance_info` | ||
(https://github.com/ansible-collections/community.vmware/issues/1872). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
#!/usr/bin/python | ||
# -*- coding: utf-8 -*- | ||
|
||
# Copyright: (c) 2018, Abhijeet Kasurde <[email protected]> | ||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) | ||
# SPDX-License-Identifier: GPL-3.0-or-later | ||
|
||
from __future__ import absolute_import, division, print_function | ||
__metaclass__ = type | ||
|
||
|
||
DOCUMENTATION = r''' | ||
--- | ||
module: vmware_host_acceptance_info | ||
short_description: Manage the host acceptance level of an ESXi host | ||
description: | ||
- This module can be used to manage the host acceptance level of an ESXi host. | ||
- The host acceptance level controls the acceptance level of each VIB on a ESXi host. | ||
author: | ||
- Abhijeet Kasurde (@Akasurde) | ||
options: | ||
cluster_name: | ||
description: | ||
- Name of the cluster. | ||
- Acceptance level of all ESXi host system in the given cluster will be managed. | ||
- If C(esxi_hostname) is not given, this parameter is required. | ||
type: str | ||
esxi_hostname: | ||
description: | ||
- ESXi hostname. | ||
- Acceptance level of this ESXi host system will be managed. | ||
- If C(cluster_name) is not given, this parameter is required. | ||
type: str | ||
extends_documentation_fragment: | ||
- community.vmware.vmware.documentation | ||
''' | ||
|
||
EXAMPLES = r''' | ||
- name: Get acceptance level from the given ESXi Host | ||
community.vmware.vmware_host_acceptance_info: | ||
hostname: '{{ vcenter_hostname }}' | ||
username: '{{ vcenter_username }}' | ||
password: '{{ vcenter_password }}' | ||
esxi_hostname: '{{ esxi_hostname }}' | ||
delegate_to: localhost | ||
register: host_acceptance_level | ||
''' | ||
|
||
RETURN = r''' | ||
host_acceptance_info: | ||
description: | ||
- dict with hostname as key and dict with acceptance level facts, error as value | ||
returned: facts | ||
type: dict | ||
sample: { "facts": { "localhost.localdomain": { "error": "NA", "level": "vmware_certified" }}} | ||
''' | ||
|
||
try: | ||
from pyVmomi import vim | ||
except ImportError: | ||
pass | ||
from ansible.module_utils.basic import AnsibleModule | ||
from ansible_collections.community.vmware.plugins.module_utils.vmware import vmware_argument_spec, PyVmomi | ||
from ansible.module_utils._text import to_native | ||
|
||
|
||
class VMwareAccpetanceManager(PyVmomi): | ||
def __init__(self, module): | ||
super(VMwareAccpetanceManager, 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) | ||
self.hosts_facts = {} | ||
|
||
def gather_acceptance_info(self): | ||
for host in self.hosts: | ||
self.hosts_facts[host.name] = dict(level='', error='NA') | ||
host_image_config_mgr = host.configManager.imageConfigManager | ||
if host_image_config_mgr: | ||
try: | ||
self.hosts_facts[host.name]['level'] = host_image_config_mgr.HostImageConfigGetAcceptance() | ||
except vim.fault.HostConfigFault as e: | ||
self.hosts_facts[host.name]['error'] = to_native(e.msg) | ||
self.module.exit_json(changed=False, host_acceptance_info=self.hosts_facts) | ||
|
||
|
||
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'], | ||
], | ||
) | ||
|
||
vmware_host_accept_config = VMwareAccpetanceManager(module) | ||
vmware_host_accept_config.gather_acceptance_info() | ||
|
||
|
||
if __name__ == "__main__": | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
3 changes: 3 additions & 0 deletions
3
tests/integration/targets/vmware_host_acceptance_info/aliases
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
cloud/vcenter | ||
needs/target/prepare_vmware_tests | ||
zuul/vmware/vcenter_1esxi |
22 changes: 22 additions & 0 deletions
22
tests/integration/targets/vmware_host_acceptance_info/tasks/main.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Test code for the vmware_host_acceptance module. | ||
# Copyright: (c) 2018, Abhijeet Kasurde <[email protected]> | ||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) | ||
|
||
- import_role: | ||
name: prepare_vmware_tests | ||
vars: | ||
setup_attach_host: true | ||
|
||
- name: Gather acceptance level of given host | ||
vmware_host_acceptance: | ||
hostname: "{{ vcenter_hostname }}" | ||
username: "{{ vcenter_username }}" | ||
password: "{{ vcenter_password }}" | ||
esxi_hostname: '{{ esxi1 }}' | ||
validate_certs: false | ||
register: result | ||
- debug: var=result | ||
- assert: | ||
that: | ||
- result.host_acceptance_info is defined | ||
- result.changed is false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
plugins/modules/vmware_deploy_ovf.py replace-urlopen!skip | ||
plugins/modules/vmware_deploy_ovf.py use-argspec-type-path!skip | ||
plugins/modules/vmware_host_acceptance.py validate-modules:parameter-state-invalid-choice |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
plugins/modules/vmware_deploy_ovf.py replace-urlopen!skip | ||
plugins/modules/vmware_deploy_ovf.py use-argspec-type-path!skip | ||
plugins/modules/vmware_host_acceptance.py validate-modules:parameter-state-invalid-choice |