mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
VMware: Add check mode support to module vmware_host_firewall_manager (#46266)
This commit is contained in:
parent
0bc2e6795d
commit
2230f40041
2 changed files with 70 additions and 7 deletions
|
@ -13,7 +13,7 @@ ANSIBLE_METADATA = {
|
||||||
'supported_by': 'community'
|
'supported_by': 'community'
|
||||||
}
|
}
|
||||||
|
|
||||||
DOCUMENTATION = r'''
|
DOCUMENTATION = '''
|
||||||
---
|
---
|
||||||
module: vmware_host_firewall_manager
|
module: vmware_host_firewall_manager
|
||||||
short_description: Manage firewall configurations about an ESXi host
|
short_description: Manage firewall configurations about an ESXi host
|
||||||
|
@ -170,10 +170,11 @@ class VmwareFirewallManager(PyVmomi):
|
||||||
current_rule_state = self.firewall_facts[host.name][rule_name]['enabled']
|
current_rule_state = self.firewall_facts[host.name][rule_name]['enabled']
|
||||||
if current_rule_state != rule_enabled:
|
if current_rule_state != rule_enabled:
|
||||||
try:
|
try:
|
||||||
if rule_enabled:
|
if not self.module.check_mode:
|
||||||
firewall_system.EnableRuleset(id=rule_name)
|
if rule_enabled:
|
||||||
else:
|
firewall_system.EnableRuleset(id=rule_name)
|
||||||
firewall_system.DisableRuleset(id=rule_name)
|
else:
|
||||||
|
firewall_system.DisableRuleset(id=rule_name)
|
||||||
fw_change_list.append(True)
|
fw_change_list.append(True)
|
||||||
except vim.fault.NotFound as not_found:
|
except vim.fault.NotFound as not_found:
|
||||||
self.module.fail_json(msg="Failed to enable rule set %s as"
|
self.module.fail_json(msg="Failed to enable rule set %s as"
|
||||||
|
@ -206,7 +207,8 @@ def main():
|
||||||
argument_spec=argument_spec,
|
argument_spec=argument_spec,
|
||||||
required_one_of=[
|
required_one_of=[
|
||||||
['cluster_name', 'esxi_hostname'],
|
['cluster_name', 'esxi_hostname'],
|
||||||
]
|
],
|
||||||
|
supports_check_mode=True
|
||||||
)
|
)
|
||||||
|
|
||||||
vmware_firewall_manager = VmwareFirewallManager(module)
|
vmware_firewall_manager = VmwareFirewallManager(module)
|
||||||
|
|
|
@ -84,7 +84,6 @@
|
||||||
- DC0_C0_H1
|
- DC0_C0_H1
|
||||||
- DC0_C0_H2
|
- DC0_C0_H2
|
||||||
|
|
||||||
|
|
||||||
- name: Disable vvold for {{ host1 }}
|
- name: Disable vvold for {{ host1 }}
|
||||||
vmware_host_firewall_manager:
|
vmware_host_firewall_manager:
|
||||||
hostname: "{{ vcsim }}"
|
hostname: "{{ vcsim }}"
|
||||||
|
@ -113,3 +112,65 @@
|
||||||
- host_result.rule_set_state[item]['vvold']['previous_state'] == True
|
- host_result.rule_set_state[item]['vvold']['previous_state'] == True
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ host1 }}"
|
- "{{ host1 }}"
|
||||||
|
|
||||||
|
- name: Enable vvold rule set on all hosts of {{ ccr1 }} in check mode
|
||||||
|
vmware_host_firewall_manager:
|
||||||
|
hostname: "{{ vcsim }}"
|
||||||
|
username: "{{ vcsim_instance.json.username }}"
|
||||||
|
password: "{{ vcsim_instance.json.password }}"
|
||||||
|
validate_certs: no
|
||||||
|
cluster_name: "{{ ccr1 }}"
|
||||||
|
rules:
|
||||||
|
- name: vvold
|
||||||
|
enabled: True
|
||||||
|
register: all_hosts_result_check_mode
|
||||||
|
check_mode: yes
|
||||||
|
|
||||||
|
- debug: msg="{{ all_hosts_result_check_mode }}"
|
||||||
|
|
||||||
|
- name: ensure everything is changed for all hosts of {{ ccr1 }}
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- all_hosts_result_check_mode.changed
|
||||||
|
- all_hosts_result_check_mode.rule_set_state is defined
|
||||||
|
|
||||||
|
- name: ensure facts are gathered for all hosts of {{ ccr1 }}
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- all_hosts_result_check_mode.rule_set_state[item]['vvold']['current_state'] == True
|
||||||
|
- all_hosts_result_check_mode.rule_set_state[item]['vvold']['desired_state'] == True
|
||||||
|
- all_hosts_result_check_mode.rule_set_state[item]['vvold']['previous_state'] == False
|
||||||
|
with_items:
|
||||||
|
- DC0_C0_H0
|
||||||
|
- DC0_C0_H1
|
||||||
|
- DC0_C0_H2
|
||||||
|
|
||||||
|
- name: Disable vvold for {{ host1 }} in check mode
|
||||||
|
vmware_host_firewall_manager:
|
||||||
|
hostname: "{{ vcsim }}"
|
||||||
|
username: "{{ vcsim_instance.json.username }}"
|
||||||
|
password: "{{ vcsim_instance.json.password }}"
|
||||||
|
validate_certs: no
|
||||||
|
esxi_hostname: "{{ host1 }}"
|
||||||
|
rules:
|
||||||
|
- name: vvold
|
||||||
|
enabled: False
|
||||||
|
register: host_result_check_mode
|
||||||
|
check_mode: yes
|
||||||
|
|
||||||
|
- debug: msg="{{ host_result_check_mode }}"
|
||||||
|
|
||||||
|
- name: ensure vvold is disabled for {{ host1 }}
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- host_result_check_mode.changed == False
|
||||||
|
- host_result_check_mode.rule_set_state is defined
|
||||||
|
|
||||||
|
- name: ensure facts are gathered for {{ host1 }}
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- host_result_check_mode.rule_set_state[item]['vvold']['current_state'] == False
|
||||||
|
- host_result_check_mode.rule_set_state[item]['vvold']['desired_state'] == False
|
||||||
|
- host_result_check_mode.rule_set_state[item]['vvold']['previous_state'] == False
|
||||||
|
with_items:
|
||||||
|
- "{{ host1 }}"
|
||||||
|
|
Loading…
Add table
Reference in a new issue