diff --git a/library/mt_interface_bridge.py b/library/mt_interface_bridge.py index 90602b4..75929a2 100644 --- a/library/mt_interface_bridge.py +++ b/library/mt_interface_bridge.py @@ -107,40 +107,40 @@ from ansible.module_utils.basic import AnsibleModule def main(): - module = AnsibleModule( - argument_spec=dict( - hostname = dict(required=True), - username = dict(required=True), - password = dict(required=True), - name = dict(required=False, type='str'), - comment = dict(required=False, type='str'), - admin_mac = dict(required=False, type='str'), - auto_mac = dict(required=False, type='str'), - ageing_time = dict(required=False, type='str'), - forward_delay = dict(required=False, type='str'), - max_message_age=dict(required=False, type='str'), - transmit_hold_count=dict(required=False, type='str'), - arp = dict( - required = False, - choices = ['disabled', 'enabled', 'proxy-arp', 'reply-only'], - type='str' - ), - protocol_mode= dict( - required = False, - choices = ['none', 'rstp', 'stp'], - type='str' - ), - settings= dict( - required = False, - type='dict' - ), - state= dict( - required = False, - choices = ['present', 'absent'], - type = 'str' - ), - ) + argument_spec=dict( + hostname = dict(required=True), + username = dict(required=True), + password = dict(required=True), + name = dict(required=False, type='str'), + comment = dict(required=False, type='str'), + admin_mac = dict(required=False, type='str'), + auto_mac = dict(required=False, type='str'), + ageing_time = dict(required=False, type='str'), + forward_delay = dict(required=False, type='str'), + max_message_age=dict(required=False, type='str'), + transmit_hold_count=dict(required=False, type='str'), + arp = dict( + required = False, + choices = ['disabled', 'enabled', 'proxy-arp', 'reply-only'], + type='str' + ), + protocol_mode= dict( + required = False, + choices = ['none', 'rstp', 'stp'], + type='str' + ), + settings= dict( + required = False, + type='dict' + ), + state= dict( + required = False, + choices = ['present', 'absent'], + type = 'str' + ), + ), + supports_check_mode=True ) hostname = module.params['hostname'] @@ -148,6 +148,7 @@ def main(): password = module.params['password'] state = module.params['state'] ansible_bridge_name = module.params['name'] + check_mode = module.check_mode changed = False changed_message = [] msg = "" @@ -199,7 +200,8 @@ def main(): bridge_settings_diff_keys[key] = settings[key] if bridge_settings_diff_keys != {}: - mk.api_edit(base_path=settings_path, params=bridge_settings_diff_keys) + if not check_mode: + mk.api_edit(base_path=settings_path, params=bridge_settings_diff_keys) changed_message.append(bridge_settings_diff_keys) changed = True else: @@ -227,10 +229,11 @@ def main(): ################################################################### if (state == "present" and isinstance(ansible_bridge_name, str)): if mikrotik_bridge == {}: - mk.api_add( - base_path=bridge_path, - params=bridge_params - ) + if not check_mode: + mk.api_add( + base_path=bridge_path, + params=bridge_params + ) changed_message.append(ansible_bridge_name + " added") changed = True, else: @@ -244,7 +247,8 @@ def main(): bridge_diff_keys[key] = bridge_params[key] if bridge_diff_keys != {}: bridge_diff_keys['numbers'] = client_id - mk.api_edit(base_path=bridge_path, params=bridge_diff_keys) + if not check_mode: + mk.api_edit(base_path=bridge_path, params=bridge_diff_keys) changed = True changed_message.append("Changed bridge: " + bridge_params['name']) else: @@ -256,7 +260,8 @@ def main(): elif state == "absent": if client_id: - mk.api_remove(base_path=bridge_path, remove_id=client_id) + if not check_mode: + mk.api_remove(base_path=bridge_path, remove_id=client_id) changed_message.append(bridge_params['name'] + " removed") changed = True ##################################################### diff --git a/tests/integration/tests.yml b/tests/integration/tests.yml index f39904d..d2b9076 100644 --- a/tests/integration/tests.yml +++ b/tests/integration/tests.yml @@ -1252,7 +1252,11 @@ with_items: - "bridge1" register: mod_bridge1 - failed_when: ( mod_bridge1 | changed ) + failed_when: ( + not ansible_check_mode + ) and ( + ( mod_bridge1 | changed ) + ) # bridge ports depend on bridge being created first @@ -1280,7 +1284,11 @@ - [ "bridge1" ] - [ "ether8" ] register: mod_bridge1_port - failed_when: ( mod_bridge1_port | changed ) + failed_when: ( + not ansible_check_mode + ) and ( + ( mod_bridge1_port | changed ) + ) - name: Add additional param to bridge port mt_interface_bridge_port: @@ -1308,7 +1316,11 @@ - [ "bridge1" ] - [ "ether7" ] register: bridge1_add_2nd_inter - failed_when: not ( bridge1_add_2nd_inter | changed ) + failed_when: ( + not ansible_check_mode + ) and ( + not ( bridge1_add_2nd_inter | changed ) + ) - name: ALWAYS_CHANGES Remove 2nd interface to bridge1 port mt_interface_bridge_port: @@ -1322,7 +1334,11 @@ - [ "bridge1" ] - [ "ether7" ] register: bridge1_rem_2nd_inter - failed_when: not ( bridge1_rem_2nd_inter | changed ) + failed_when: ( + not ansible_check_mode + ) and ( + not ( bridge1_rem_2nd_inter | changed ) + ) - name: Add bridge2 mt_interface_bridge: @@ -1359,7 +1375,11 @@ use-ip-firewall-for-vlan: no use-ip-firewall-for-pppoe: no register: bridge_settings_1 - failed_when: not ( bridge_settings_1 | changed ) + failed_when: ( + not ansible_check_mode + ) and ( + not ( bridge_settings_1 | changed ) + ) - name: Adjust settings again (idempotency test) mt_interface_bridge: @@ -1372,7 +1392,11 @@ use-ip-firewall-for-vlan: no use-ip-firewall-for-pppoe: no register: bridge_settings_2 - failed_when: ( bridge_settings_2 | changed ) + failed_when: ( + not ansible_check_mode + ) and ( + ( bridge_settings_2 | changed ) + ) tags: bridge