From 38b7c80217c4e72b1d8988eb1e60bb6e77334114 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 18 Apr 2024 07:52:22 +0200 Subject: Adding upstream version 9.4.0+dfsg. Signed-off-by: Daniel Baumann --- .../meraki/tests/integration/inventory.networking | 42 -- .../integration/inventory.networking.template | 37 - .../tests/integration/target-prefixes.network | 1 - .../targets/meraki_action_batch/aliases | 1 - .../tests/integration/targets/meraki_admin/aliases | 1 - .../tests/integration/targets/meraki_alert/aliases | 0 .../targets/meraki_config_template/aliases | 1 - .../integration/targets/meraki_device/aliases | 1 - .../targets/meraki_firewalled_services/aliases | 1 - .../targets/meraki_management_interface/aliases | 1 - .../targets/meraki_mr_l3_firewall/aliases | 1 - .../targets/meraki_mr_l7_firewall/aliases | 1 - .../integration/targets/meraki_mr_radio/aliases | 0 .../targets/meraki_mr_rf_profile/aliases | 0 .../integration/targets/meraki_mr_settings/aliases | 0 .../targets/meraki_ms_access_list/aliases | 1 - .../targets/meraki_ms_link_aggregation/aliases | 1 - .../integration/targets/meraki_ms_stack/aliases | 1 - .../targets/meraki_ms_storm_control/aliases | 1 - .../targets/meraki_ms_switchport/aliases | 1 - .../targets/meraki_ms_switchport/tasks/main.yml | 47 ++ .../targets/meraki_mx_content_filtering/aliases | 1 - .../targets/meraki_mx_intrusion_prevention/aliases | 1 - .../targets/meraki_mx_l3_firewall/aliases | 1 - .../targets/meraki_mx_l3_firewall/tasks/main.yml | 747 +++++++++++---------- .../targets/meraki_mx_l7_firewall/aliases | 2 - .../integration/targets/meraki_mx_malware/aliases | 1 - .../integration/targets/meraki_mx_nat/aliases | 1 - .../meraki_mx_network_vlan_settings/aliases | 0 .../meraki_mx_site_to_site_firewall/aliases | 1 - .../meraki_mx_site_to_site_firewall/tasks/main.yml | 665 +++++++++--------- .../targets/meraki_mx_site_to_site_vpn/aliases | 1 - .../meraki_static_route/aliases | 1 - .../meraki_mx_third_party_vpn_peers/aliases | 1 - .../targets/meraki_mx_uplink_bandwidth/aliases | 1 - .../integration/targets/meraki_mx_vlan/aliases | 1 - .../integration/targets/meraki_network/aliases | 1 - .../targets/meraki_network_settings/aliases | 1 - .../targets/meraki_organization/aliases | 1 - .../targets/meraki_organization/tasks/main.yml | 4 +- .../targets/meraki_organization/tasks/tests.yml | 277 ++++---- .../tests/integration/targets/meraki_snmp/aliases | 1 - .../integration/targets/meraki_snmp/tasks/main.yml | 554 ++++++++------- .../tests/integration/targets/meraki_ssid/aliases | 1 - .../integration/targets/meraki_syslog/aliases | 1 - .../targets/meraki_syslog/tasks/main.yml | 439 ++++++------ .../integration/targets/meraki_webhook/aliases | 1 - .../targets/meraki_webhook/tasks/main.yml | 3 +- .../targets/meraki_webhook/tasks/tests.yml | 42 ++ .../meraki_webhook_payload_template/aliases | 2 - .../cisco/meraki/tests/sanity/ignore-2.12.txt | 130 +++- .../cisco/meraki/tests/sanity/ignore-2.13.txt | 1 - .../cisco/meraki/tests/sanity/ignore-2.14.txt | 2 +- .../cisco/meraki/tests/sanity/ignore-2.15.txt | 2 +- .../cisco/meraki/tests/sanity/ignore-2.16.txt | 1 + .../cisco/meraki/tests/sanity/ignore-2.17.txt | 1 + 56 files changed, 1606 insertions(+), 1424 deletions(-) delete mode 100644 ansible_collections/cisco/meraki/tests/integration/inventory.networking delete mode 100644 ansible_collections/cisco/meraki/tests/integration/inventory.networking.template delete mode 100644 ansible_collections/cisco/meraki/tests/integration/target-prefixes.network delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_action_batch/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_admin/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_alert/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_config_template/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_device/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_firewalled_services/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_management_interface/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_l3_firewall/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_l7_firewall/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_radio/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_rf_profile/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_settings/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_access_list/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_link_aggregation/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_stack/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_storm_control/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_switchport/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_content_filtering/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_intrusion_prevention/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l3_firewall/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l7_firewall/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_malware/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_nat/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_network_vlan_settings/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_firewall/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_vpn/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_static_route/meraki_static_route/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_third_party_vpn_peers/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_uplink_bandwidth/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_vlan/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_network/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_network_settings/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_snmp/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_ssid/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_syslog/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/aliases delete mode 100644 ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook_payload_template/aliases create mode 100644 ansible_collections/cisco/meraki/tests/sanity/ignore-2.16.txt create mode 100644 ansible_collections/cisco/meraki/tests/sanity/ignore-2.17.txt (limited to 'ansible_collections/cisco/meraki/tests') diff --git a/ansible_collections/cisco/meraki/tests/integration/inventory.networking b/ansible_collections/cisco/meraki/tests/integration/inventory.networking deleted file mode 100644 index ab8958954..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/inventory.networking +++ /dev/null @@ -1,42 +0,0 @@ -# This is the configuration template for ansible-test network-integration tests. -# -# You do not need this template if you are: -# -# 1) Running integration tests without using ansible-test. -# 2) Using the `--platform` option to provision temporary network instances on EC2. -# -# If you do not want to use the automatically provisioned temporary network instances, -# fill in the @VAR placeholders below and save this file without the .template extension. -# -# NOTE: Automatic provisioning of network instances on EC2 requires an ansible-core-ci API key. - -[meraki] -localhost ansible_connection="local" - -[meraki:vars] -auth_key=b4aa1133085792857ae08a22ed01bc99b7e9c97d -test_org_id=133277 -test_org_name=kbreit@insight.com -test_net_name=Home - Appliance -test_net_id=N_624874448297678702 -test_switch_net_name=Home - Switch -test_wireless_net_name=Home - Wireless -test_appliance_net_name=Home - Appliance -test_template_name=AnsibleTemplate -test_template_id=L_624874448297661409 -email_prefix=meraki -email_domain=kevinbreit.net -serial=Q2BN-MCH8-VEL5 -serial_switch=Q2HP-2C6E-GTLD -serial_wireless=Q2KD-83UG-JL8X -serial_switch_l3=QBSB-VLNE-E299 -serial_appliance=Q2BN-MCH8-VEL5 -# serial=QBSC-HJSL-A64F -# serial=Q2HD-DPPR-QTAE -# serial=Q2HP-2C6E-GTLD - -### -# Example -# -# [vyos] -# vyos01.example.net ansible_connection=local ansible_network_os="vyos" ansible_user=admin ansible_ssh_pass=mypassword diff --git a/ansible_collections/cisco/meraki/tests/integration/inventory.networking.template b/ansible_collections/cisco/meraki/tests/integration/inventory.networking.template deleted file mode 100644 index 3057b7f2f..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/inventory.networking.template +++ /dev/null @@ -1,37 +0,0 @@ -# This is the configuration template for ansible-test network-integration tests. -# -# You do not need this template if you are: -# -# 1) Running integration tests without using ansible-test. -# 2) Using the `--platform` option to provision temporary network instances on EC2. -# -# If you do not want to use the automatically provisioned temporary network instances, -# fill in the @VAR placeholders below and save this file without the .template extension. -# -# NOTE: Automatic provisioning of network instances on EC2 requires an ansible-core-ci API key. - -[meraki] -localhost ansible_connection="local" - -[meraki:vars] -auth_key=abc1234567890 -test_org_id=12345 -test_org_name=YourOrg -test_net_name=YourNet -test_net_id=54321 -test_switch_net_name=Switch Net -test_wireless_net_name=Wireless Net -test_template_name=YourTemplate -test_template_id=L_12345 -email_prefix=YourEmail -email_domain=YourDomain -serial=YourSerial -serial_switch=YourSwitchSerial -serial_switch_l3=YourL3SwitchSerial - - -### -# Example -# -# [vyos] -# vyos01.example.net ansible_connection=local ansible_network_os="vyos" ansible_user=admin ansible_ssh_pass=mypassword diff --git a/ansible_collections/cisco/meraki/tests/integration/target-prefixes.network b/ansible_collections/cisco/meraki/tests/integration/target-prefixes.network deleted file mode 100644 index 2516cd48f..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/target-prefixes.network +++ /dev/null @@ -1 +0,0 @@ -meraki diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_action_batch/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_action_batch/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_action_batch/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_admin/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_admin/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_admin/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_alert/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_alert/aliases deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_config_template/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_config_template/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_config_template/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_device/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_device/aliases deleted file mode 100644 index 89aea537d..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_device/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported \ No newline at end of file diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_firewalled_services/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_firewalled_services/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_firewalled_services/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_management_interface/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_management_interface/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_management_interface/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_l3_firewall/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_l3_firewall/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_l3_firewall/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_l7_firewall/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_l7_firewall/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_l7_firewall/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_radio/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_radio/aliases deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_rf_profile/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_rf_profile/aliases deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_settings/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mr_settings/aliases deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_access_list/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_access_list/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_access_list/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_link_aggregation/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_link_aggregation/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_link_aggregation/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_stack/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_stack/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_stack/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_storm_control/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_storm_control/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_storm_control/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_switchport/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_switchport/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_switchport/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_switchport/tasks/main.yml b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_switchport/tasks/main.yml index 3ebd43ec3..1ad1f2d6f 100644 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_switchport/tasks/main.yml +++ b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ms_switchport/tasks/main.yml @@ -780,3 +780,50 @@ that: - idempotent_delete_mac.changed == False - idempotent_delete_mac.data is defined + +- name: Change the switchport to 1 GB to auto + cisco.meraki.meraki_ms_switchport: + auth_key: "{{ auth_key }}" + link_negotiation: "Auto negotiate" + number: 9 + serial: "{{ serial_switch }}" + state: present + register: forced_change_port + +- name: Change the switchport to 1 GB forced + cisco.meraki.meraki_ms_switchport: + auth_key: "{{ auth_key }}" + link_negotiation: "1 Gigabit full duplex (forced)" + number: 9 + serial: "{{ serial_switch }}" + state: present + register: forced_change_port + +- name: Debug forced_change_port + ansible.builtin.debug: + msg: "{{ forced_change_port }}" + +- name: Assert the port forced port + ansible.builtin.assert: + that: + - forced_change_port.changed == True + - forced_change_port.data.link_negotiation == "1 Gigabit full duplex (forced)" + +- name: Change the switchport to 1 GB auto + cisco.meraki.meraki_ms_switchport: + auth_key: "{{ auth_key }}" + link_negotiation: "1 Gigabit full duplex (auto)" + number: 9 + serial: "{{ serial_switch }}" + state: present + register: auto_change_port + +- name: Debug auto_change_port + ansible.builtin.debug: + msg: "{{ auto_change_port }}" + +- name: Assert the port auto port + ansible.builtin.assert: + that: + - auto_change_port.changed == True + - auto_change_port.data.link_negotiation == "1 Gigabit full duplex (auto)" diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_content_filtering/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_content_filtering/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_content_filtering/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_intrusion_prevention/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_intrusion_prevention/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_intrusion_prevention/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l3_firewall/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l3_firewall/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l3_firewall/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l3_firewall/tasks/main.yml b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l3_firewall/tasks/main.yml index c8dbd1718..fb97e47be 100644 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l3_firewall/tasks/main.yml +++ b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l3_firewall/tasks/main.yml @@ -3,367 +3,390 @@ # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- -- block: - - name: Test an API key is provided - fail: - msg: Please define an API key - when: auth_key is not defined - - - name: Create network - meraki_network: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - type: appliance - delegate_to: localhost - - - name: Query firewall rules - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: query - delegate_to: localhost - register: query - - - assert: - that: - - query.data|length == 1 - - - name: Check rule values are lowercase - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: query - delegate_to: localhost - register: query - - - assert: - that: - - query.data.rules.0.policy == 'allow' - - query.data.rules.0.protocol == 'any' - - query.data.rules.0.src_port == 'any' - - query.data.rules.0.src_cidr == 'any' - - query.data.rules.0.dest_port == 'any' - - query.data.rules.0.dest_cidr == 'any' - - - name: Set one firewall rule with check mode - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - delegate_to: localhost - check_mode: yes - register: create_one_check - - - debug: - var: create_one_check - - - assert: - that: - - create_one_check.data|length == 2 - - create_one_check.data.0.dest_cidr == '192.0.1.1/32' - - create_one_check.data.0.protocol == 'tcp' - - create_one_check.data.0.policy == 'deny' - - create_one_check is changed - - create_one_check.data is defined - - - name: Set one firewall rule - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_id: '{{test_org_id}}' - net_name: TestNetAppliance - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - delegate_to: localhost - register: create_one - - - debug: - var: create_one - - - assert: - that: - - create_one.data.rules|length == 2 - - create_one.data.rules.0.dest_cidr == '192.0.1.1/32' - - create_one.data.rules.0.protocol == 'tcp' - - create_one.data.rules.0.policy == 'deny' - - create_one.changed == True - - create_one.data is defined - - - name: Check for idempotency - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - delegate_to: localhost - register: create_one_idempotent - - - debug: - msg: '{{create_one_idempotent}}' - - - assert: - that: - - create_one_idempotent.changed == False - - create_one_idempotent.data is defined - - - name: Update one existing rule - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - rules: - - comment: Deny all documentation addresses - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32,192.0.1.2/32 - protocol: tcp - policy: deny - delegate_to: localhost - register: update_one - - - debug: - msg: '{{update_one}}' - - - assert: - that: - - update_one.changed == True - - update_one.data is defined - - - name: Create syslog in network - meraki_syslog: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - servers: - - host: 192.0.2.10 - port: 514 - roles: - - Appliance event log - - Flows - delegate_to: localhost - - - name: Enable syslog for default rule with check mode - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - syslog_default_rule: yes - delegate_to: localhost - check_mode: yes - register: default_syslog_check - - - debug: - msg: '{{default_syslog_check}}' - - - assert: - that: - - default_syslog_check.data is defined - - default_syslog_check.data.1.syslog_enabled == True - - - - name: Enable syslog for default rule - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - syslog_default_rule: yes - delegate_to: localhost - register: default_syslog - - - debug: - msg: '{{default_syslog}}' - - - assert: - that: - - default_syslog.data is defined - - - name: Set protocol to any for idempotency check - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - rules: - - comment: Deny to documentation address - src_port: any - src_cidr: any - dest_port: any - dest_cidr: 192.0.1.1/32 - protocol: any - policy: deny - delegate_to: localhost - - - name: Check for protocol any idempotency - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - rules: - - comment: Deny to documentation address - src_port: any - src_cidr: any - dest_port: any - dest_cidr: 192.0.1.1/32 - protocol: any - policy: deny - delegate_to: localhost - register: any_idempotency - - - assert: - that: - - any_idempotency is not changed - - - name: Query firewall rules - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: query - delegate_to: localhost - register: query - - - assert: - that: - - query.data.rules.1.syslog_enabled == True - - default_syslog.changed == True - - - name: Disable syslog for default rule - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - syslog_default_rule: no - delegate_to: localhost - register: disable_syslog - - - debug: - msg: '{{disable_syslog}}' - - - assert: - that: - - disable_syslog.data is defined - - - name: Query firewall rules - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: query - delegate_to: localhost - register: query - - - debug: - msg: '{{query}}' - - - name: Enable syslog for default rule with no rules and with check mode - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - syslog_default_rule: yes - delegate_to: localhost - check_mode: yes - register: enable_syslog_only_check - - - debug: - msg: '{{enable_syslog_only_check}}' - - - assert: - that: - - enable_syslog_only_check.data.rules.1.syslog_enabled == True - - enable_syslog_only_check is changed - - - name: Query firewall rules - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: query - delegate_to: localhost - register: query - - - debug: - msg: '{{query.data.rules.1}}' - - - assert: - that: - - query.data.rules.1.syslog_enabled == False - - disable_syslog.changed == True +- name: Block of tasks + block: + - name: Test an API key is provided + ansible.builtin.fail: + msg: Please define an API key + when: auth_key is not defined + + - name: Create network + cisco.meraki.meraki_network: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + type: appliance + delegate_to: localhost + + - name: Query firewall rules + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: query + delegate_to: localhost + register: query + + - name: Assert query.data + ansible.builtin.assert: + that: + - query.data|length == 1 + + - name: Check rule values are lowercase + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: query + delegate_to: localhost + register: query + + - name: Assert query.data.rules + ansible.builtin.assert: + that: + - query.data.rules.0.policy == 'allow' + - query.data.rules.0.protocol == 'any' + - query.data.rules.0.src_port == 'any' + - query.data.rules.0.src_cidr == 'any' + - query.data.rules.0.dest_port == 'any' + - query.data.rules.0.dest_cidr == 'any' + + - name: Set one firewall rule with check mode + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + delegate_to: localhost + check_mode: true + register: create_one_check + + - name: Debug create_one_check + ansible.builtin.debug: + var: create_one_check + + - name: Assert create_one_check + ansible.builtin.assert: + that: + - create_one_check.data|length == 2 + - create_one_check.data.0.dest_cidr == '192.0.1.1/32' + - create_one_check.data.0.protocol == 'tcp' + - create_one_check.data.0.policy == 'deny' + - create_one_check is changed + - create_one_check.data is defined + + - name: Set one firewall rule + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_id: "{{ test_org_id }}" + net_name: TestNetAppliance + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + delegate_to: localhost + register: create_one + + - name: Debug create_one + ansible.builtin.debug: + var: create_one + + - name: Assert create_one + ansible.builtin.assert: + that: + - create_one.data.rules|length == 2 + - create_one.data.rules.0.dest_cidr == '192.0.1.1/32' + - create_one.data.rules.0.protocol == 'tcp' + - create_one.data.rules.0.policy == 'deny' + - create_one.changed == True + - create_one.data is defined + + - name: Check for idempotency + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + delegate_to: localhost + register: create_one_idempotent + + - name: Debug create_one_idempotent + ansible.builtin.debug: + msg: "{{ create_one_idempotent }}" + + - name: Assert create_one_idempotent + ansible.builtin.assert: + that: + - create_one_idempotent.changed == False + - create_one_idempotent.data is defined + + - name: Update one existing rule + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + rules: + - comment: Deny all documentation addresses + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32,192.0.1.2/32 + protocol: tcp + policy: deny + delegate_to: localhost + register: update_one + + - name: Debug update_one + ansible.builtin.debug: + msg: "{{ update_one }}" + + - name: Assert update_one + ansible.builtin.assert: + that: + - update_one.changed == True + - update_one.data is defined + + - name: Create syslog in network + cisco.meraki.meraki_syslog: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + servers: + - host: 192.0.2.10 + port: 514 + roles: + - Appliance event log + - Flows + delegate_to: localhost + + - name: Enable syslog for default rule with check mode + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + syslog_default_rule: true + delegate_to: localhost + check_mode: true + register: default_syslog_check + + - name: Debug default_syslog_check + ansible.builtin.debug: + msg: "{{ default_syslog_check }}" + + - name: Assert default_syslog_check + ansible.builtin.assert: + that: + - default_syslog_check.data is defined + - default_syslog_check.data.1.syslog_enabled == True + + - name: Enable syslog for default rule + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + syslog_default_rule: true + delegate_to: localhost + register: default_syslog + + - name: Debug default_syslog + ansible.builtin.debug: + msg: "{{ default_syslog }}" + + - name: Assert default_syslog.data + ansible.builtin.assert: + that: + - default_syslog.data is defined + + - name: Set protocol to any for idempotency check + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + rules: + - comment: Deny to documentation address + src_port: any + src_cidr: any + dest_port: any + dest_cidr: 192.0.1.1/32 + protocol: any + policy: deny + delegate_to: localhost + + - name: Check for protocol any idempotency + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + rules: + - comment: Deny to documentation address + src_port: any + src_cidr: any + dest_port: any + dest_cidr: 192.0.1.1/32 + protocol: any + policy: deny + delegate_to: localhost + register: any_idempotency + + - name: Assert any_idempotency + ansible.builtin.assert: + that: + - any_idempotency is not changed + + - name: Query firewall rules + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: query + delegate_to: localhost + register: query + + - name: Assert query.data and default_syslog.changed + ansible.builtin.assert: + that: + - query.data.rules.1.syslog_enabled == True + - default_syslog.changed == True + + - name: Disable syslog for default rule + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + syslog_default_rule: false + delegate_to: localhost + register: disable_syslog + + - name: Debug disable_syslog + ansible.builtin.debug: + msg: "{{ disable_syslog }}" + + - name: Assert disable_syslog + ansible.builtin.assert: + that: + - disable_syslog.data is defined + + - name: Query firewall rules + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: query + delegate_to: localhost + register: query + + - name: Debug query + ansible.builtin.debug: + msg: "{{ query }}" + + - name: Enable syslog for default rule with no rules and with check mode + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + syslog_default_rule: true + delegate_to: localhost + check_mode: true + register: enable_syslog_only_check + + - name: Debug enable_syslog_only_check + ansible.builtin.debug: + msg: "{{ enable_syslog_only_check }}" + + - name: Assert enable_syslog_only_check + ansible.builtin.assert: + that: + - enable_syslog_only_check.data.rules.1.syslog_enabled == True + - enable_syslog_only_check is changed + + - name: Query firewall rules + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: query + delegate_to: localhost + register: query + + - name: Debug query.data.rules.1 + ansible.builtin.debug: + msg: "{{query.data.rules.1}}" + + - name: Assert query.data and disable_syslog + ansible.builtin.assert: + that: + - query.data.rules.1.syslog_enabled == False + - disable_syslog.changed == True always: - - name: Delete all firewall rules - meraki_mx_l3_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - rules: [] - delegate_to: localhost - register: delete_all - - - name: Delete network - meraki_network: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: absent - delegate_to: localhost + - name: Delete all firewall rules + cisco.meraki.meraki_mx_l3_firewall: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: present + rules: [] + delegate_to: localhost + register: delete_all + + - name: Delete network + cisco.meraki.meraki_network: + auth_key: "{{ auth_key }}" + org_name: "{{ test_org_name }}" + net_name: TestNetAppliance + state: absent + delegate_to: localhost diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l7_firewall/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l7_firewall/aliases deleted file mode 100644 index 06fe32bc6..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_l7_firewall/aliases +++ /dev/null @@ -1,2 +0,0 @@ -unsupported - diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_malware/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_malware/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_malware/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_nat/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_nat/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_nat/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_network_vlan_settings/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_network_vlan_settings/aliases deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_firewall/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_firewall/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_firewall/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_firewall/tasks/main.yml b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_firewall/tasks/main.yml index df0b91644..eedbc4ff4 100644 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_firewall/tasks/main.yml +++ b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_firewall/tasks/main.yml @@ -3,304 +3,371 @@ # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- -- block: - - name: Test an API key is provided - fail: - msg: Please define an API key - when: auth_key is not defined - - - name: Create network - meraki_network: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - type: appliance - delegate_to: localhost - - - name: Query firewall rules - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: query - delegate_to: localhost - register: query - - - debug: - var: query - - # - assert: - # that: - # - query.data|length == 1 - - - name: Set one firewall rule with check mode - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - delegate_to: localhost - check_mode: yes - register: create_one_check - - - debug: - var: create_one_check - - - assert: - that: - - create_one_check.data.rules|length == 2 - - create_one_check.data.rules.0.dest_cidr == '192.0.1.1/32' - - create_one_check.data.rules.0.protocol == 'tcp' - - create_one_check.data.rules.0.policy == 'deny' - - create_one_check is changed - - create_one_check.data is defined - - - name: Set one firewall rule - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - delegate_to: localhost - register: create_one - - - debug: - var: create_one - - - assert: - that: - - create_one.data.rules|length == 2 - - create_one.data.rules.0.dest_cidr == '192.0.1.1/32' - - create_one.data.rules.0.protocol == 'tcp' - - create_one.data.rules.0.policy == 'deny' - - create_one.changed == True - - create_one.data is defined - - - name: Check for idempotency - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - delegate_to: localhost - register: create_one_idempotent - - - debug: - msg: '{{create_one_idempotent}}' - - - assert: - that: - - create_one_idempotent.changed == False - - create_one_idempotent.data is defined - - - name: Update one existing rule - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: present - rules: - - comment: Deny all documentation addresses - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32,192.0.1.2/32 - protocol: tcp - policy: deny - delegate_to: localhost - register: update_one - - - debug: - msg: '{{update_one}}' - - - assert: - that: - - update_one.changed == True - - update_one.data is defined - - - name: Create syslog in network - meraki_syslog: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: present - servers: - - host: 192.0.2.10 - port: 514 - roles: - - Appliance event log - - Flows - delegate_to: localhost - - - name: Enable syslog for default rule with check mode - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - syslog_default_rule: yes - delegate_to: localhost - check_mode: yes - register: default_syslog_check - - - debug: - msg: '{{default_syslog_check}}' - - - assert: - that: - - default_syslog_check.data is defined - - default_syslog_check.data.rules.1.syslog_enabled == True - - - name: Enable syslog for default rule - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - syslog_default_rule: yes - delegate_to: localhost - register: default_syslog - - - debug: - msg: '{{default_syslog}}' - - - assert: - that: - - default_syslog.data is defined - - - name: Query firewall rules - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: query - delegate_to: localhost - register: query - - - debug: - msg: '{{query.data.rules.1}}' - - - assert: - that: - - query.data.rules.1.syslog_enabled == True - - default_syslog.changed == True - - - name: Disable syslog for default rule - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: present - rules: - - comment: Deny to documentation address - src_port: Any - src_cidr: Any - dest_port: 80,443 - dest_cidr: 192.0.1.1/32 - protocol: tcp - policy: deny - syslog_default_rule: no - delegate_to: localhost - register: disable_syslog - - - debug: - msg: '{{disable_syslog}}' - - - assert: - that: - - disable_syslog.data is defined - - - name: Query firewall rules - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: query - delegate_to: localhost - register: query - - - debug: - msg: '{{query}}' - - - name: Enable syslog for default rule with no rules and with check mode - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: present - syslog_default_rule: yes - delegate_to: localhost - check_mode: yes - register: enable_syslog_only_check - - - debug: - msg: '{{enable_syslog_only_check}}' - - - assert: - that: - - enable_syslog_only_check.data.rules.1.syslog_enabled == True - - enable_syslog_only_check is changed - - - name: Query firewall rules - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: query - delegate_to: localhost - register: query - - - debug: - msg: '{{query.data.rules.1}}' - - - assert: - that: - - query.data.rules.1.syslog_enabled == False - - disable_syslog.changed == True +- name: Run tests against meraki_mx_site_to_site_firewall + block: + - name: Test an API key is provided + ansible.builtin.fail: + msg: Please define an API key + when: auth_key is not defined + + - name: Create network + cisco.meraki.meraki_network: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: TestNetAppliance + state: present + type: appliance + delegate_to: localhost + + - name: Test issue 302 + cisco.meraki.meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + syslog_default_rule: true + rules: + - comment: Block All telnet Traffic Rename + src_cidr: 192.0.2.0/24 + src_port: any + dest_cidr: 192.0.2.2/32 + dest_port: 23, 22 + protocol: tcp + policy: deny + syslog_enabled: true + + - comment: Allow Middle Rule + src_cidr: 192.0.1.0/24 + src_port: any + dest_cidr: 192.0.2.2/32 + dest_port: 9443, 8080 + protocol: tcp + policy: allow + syslog_enabled: true + + - comment: Allow Web traffic + src_cidr: 192.0.1.0/24 + src_port: any + dest_cidr: 192.0.2.2/32 + dest_port: 80, 443, 8443 + protocol: tcp + policy: allow + syslog_enabled: true + delegate_to: localhost + register: threeohtwo_original + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - threeohtwo_original.data is defined + - threeohtwo_original.data.rules[0].comment == "Block All telnet Traffic Rename" + - threeohtwo_original.data.rules[1].comment == "Allow Middle Rule" + - threeohtwo_original.data.rules[2].comment == "Allow Web traffic" + - threeohtwo_original.data.rules[0].dest_cidr == "192.0.2.2/32" + + - name: Update rules to test 302 + cisco.meraki.meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + syslog_default_rule: true + rules: + - comment: Block All telnet Traffic Rename + src_cidr: 192.0.2.0/24 + src_port: any + dest_cidr: 192.0.2.2/32, 192.0.3.0/24 + dest_port: 23, 22 + protocol: tcp + policy: deny + syslog_enabled: true + + - comment: Allow Web traffic + src_cidr: 192.0.1.0/24 + src_port: any + dest_cidr: 192.0.2.2/32 + dest_port: 80, 443, 8443 + protocol: tcp + policy: allow + syslog_enabled: true + + - comment: Allow Middle Rule + src_cidr: 192.0.1.0/24 + src_port: any + dest_cidr: 192.0.2.2/32 + dest_port: 9443, 8080 + protocol: tcp + policy: allow + syslog_enabled: true + delegate_to: localhost + register: threeohtwo_update + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - threeohtwo_update.data is defined + - threeohtwo_update.data.rules[0].comment == "Block All telnet Traffic Rename" + - threeohtwo_update.data.rules[1].comment == "Allow Web traffic" + - threeohtwo_update.data.rules[2].comment == "Allow Middle Rule" + - threeohtwo_update.data.rules[0].dest_cidr == "192.0.2.2/32,192.0.3.0/24" + + - name: Test capitalization for protocol + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + syslog_default_rule: true + rules: + - comment: Block All telnet Traffic Rename + src_cidr: 192.0.2.0/24 + src_port: Any + dest_cidr: 192.0.2.2/32, 192.0.3.0/24 + dest_port: 23, 22 + protocol: any + policy: deny + syslog_enabled: true + delegate_to: localhost + register: protocol_any + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - protocol_any is success + - protocol_any is changed + - protocol_any.data.rules[0].protocol == "any" + + - name: Query firewall rules + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: query + delegate_to: localhost + register: query + + - name: Set one firewall rule with check mode + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + delegate_to: localhost + check_mode: true + register: create_one_check + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - create_one_check.data.rules|length == 2 + - create_one_check.data.rules.0.dest_cidr == '192.0.1.1/32' + - create_one_check.data.rules.0.protocol == 'tcp' + - create_one_check.data.rules.0.policy == 'deny' + - create_one_check is changed + - create_one_check.data is defined + + - name: Set one firewall rule + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + delegate_to: localhost + register: create_one + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - create_one.data.rules|length == 2 + - create_one.data.rules.0.dest_cidr == '192.0.1.1/32' + - create_one.data.rules.0.protocol == 'tcp' + - create_one.data.rules.0.policy == 'deny' + - create_one.changed == True + - create_one.data is defined + + - name: Check for idempotency + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + delegate_to: localhost + register: create_one_idempotent + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - create_one_idempotent.changed == False + - create_one_idempotent.data is defined + + - name: Update one existing rule + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + rules: + - comment: Deny all documentation addresses + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32,192.0.1.2/32 + protocol: tcp + policy: deny + delegate_to: localhost + register: update_one + + + - name: Enable syslog for default rule with check mode + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + syslog_default_rule: true + delegate_to: localhost + check_mode: true + register: default_syslog_check + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - default_syslog_check.data is defined + - default_syslog_check.data.rules.1.syslog_enabled == True + + - name: Enable syslog for default rule + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + syslog_default_rule: true + delegate_to: localhost + register: default_syslog + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - default_syslog.data is defined + + - name: Query firewall rules + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: query + delegate_to: localhost + register: query + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - query.data.rules.1.syslog_enabled == True + - default_syslog.changed == True + + - name: Disable syslog for default rule + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + rules: + - comment: Deny to documentation address + src_port: Any + src_cidr: Any + dest_port: 80,443 + dest_cidr: 192.0.1.1/32 + protocol: tcp + policy: deny + syslog_default_rule: false + delegate_to: localhost + register: disable_syslog + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - disable_syslog.data is defined + + - name: Query firewall rules + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: query + delegate_to: localhost + register: query + + - name: Enable syslog for default rule with no rules and with check mode + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + syslog_default_rule: true + delegate_to: localhost + check_mode: true + register: enable_syslog_only_check + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - enable_syslog_only_check.data.rules.1.syslog_enabled == True + - enable_syslog_only_check is changed + + - name: Query firewall rules + meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: query + delegate_to: localhost + register: query + + - name: Assert previous task is correct + ansible.builtin.assert: + that: + - query.data.rules.1.syslog_enabled == False + - disable_syslog.changed == True always: - - name: Delete all firewall rules - meraki_mx_site_to_site_firewall: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - state: present - rules: [] - delegate_to: localhost - register: delete_all - - - name: Delete network - meraki_network: - auth_key: '{{ auth_key }}' - org_name: '{{test_org_name}}' - net_name: TestNetAppliance - state: absent - delegate_to: localhost + - name: Delete all firewall rules + cisco.meraki.meraki_mx_site_to_site_firewall: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + rules: [] + delegate_to: localhost + register: delete_all + + - name: Delete network + cisco.meraki.meraki_network: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: TestNetAppliance + state: absent + delegate_to: localhost diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_vpn/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_vpn/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_site_to_site_vpn/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_static_route/meraki_static_route/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_static_route/meraki_static_route/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_static_route/meraki_static_route/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_third_party_vpn_peers/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_third_party_vpn_peers/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_third_party_vpn_peers/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_uplink_bandwidth/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_uplink_bandwidth/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_uplink_bandwidth/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_vlan/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_vlan/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_mx_vlan/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_network/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_network/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_network/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_network_settings/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_network_settings/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_network_settings/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/tasks/main.yml b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/tasks/main.yml index e7ad65b81..ea2323e57 100644 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/tasks/main.yml +++ b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/tasks/main.yml @@ -4,5 +4,5 @@ # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- - name: Run test cases - include: tests.yml ansible_connection=local - \ No newline at end of file + ansible.builtin.include_tasks: + file: tests.yml diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/tasks/tests.yml b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/tasks/tests.yml index 28ebce01e..35fb9c088 100644 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/tasks/tests.yml +++ b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_organization/tasks/tests.yml @@ -3,147 +3,140 @@ # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- -- block: - - name: Test an API key is provided - fail: - msg: Please define an API key - when: auth_key is not defined - - - name: Create a new organization named IntTestOrg - meraki_organization: - auth_key: '{{ auth_key }}' - org_name: IntTestOrg - state: present - output_level: debug - register: new_org - - - debug: - msg: '{{new_org}}' - - - name: Clone IntTestOrg - meraki_organization: - auth_key: '{{ auth_key }}' - clone: IntTestOrg - org_name: IntTestOrgCloned - state: present - register: cloned_org - - - debug: - msg: '{{cloned_org}}' - - - set_fact: - cloned_net_id: '{{cloned_org.data.id}}' - - - name: Rename IntTestOrg - meraki_organization: - auth_key: '{{ auth_key }}' - org_name: IntTestOrgRenamed - org_id: '{{ new_org.data.id }}' - state: present - register: modify_org - - - debug: - msg: '{{ modify_org }}' - - - set_fact: - renamed_org_id: '{{modify_org.data.id}}' - - - name: Rename IntTestOrg idempotent - meraki_organization: - auth_key: '{{ auth_key }}' - org_name: IntTestOrgRenamed - org_id: '{{ new_org.data.id }}' - state: present - register: modify_org_idempotent - - - name: Present assertions - assert: - that: - - '"https" in new_org.url' - - new_org.changed == True - - new_org.data.id is defined - - cloned_org.changed == True - - cloned_org.data.id is defined - - modify_org.changed == True - - 'modify_org.data.name == "IntTestOrgRenamed"' - - modify_org_idempotent.changed == False - - modify_org_idempotent.data is defined - - - name: List all organizations - meraki_organization: - auth_key: '{{ auth_key }}' - state: query - register: query_all - - - name: Query information about a single organization named IntTestOrg - meraki_organization: - auth_key: '{{ auth_key }}' - org_name: IntTestOrgRenamed - state: query - register: query_org - - - name: Query information about IntTestOrg by organization ID - meraki_organization: - auth_key: '{{ auth_key }}' - org_id: '{{ query_org.data.id }}' - state: query - register: query_org_id - - - name: Query assertions - assert: - that: - - query_org.data.id is defined - - query_all.changed == False - - query_all.data | length >= 1 - - 'query_org.data.name == "IntTestOrgRenamed"' - - 'query_org_id.data.id == query_org.data.id' - - - name: Delete without confirmation code - meraki_organization: - auth_key: '{{ auth_key }}' - state: absent - org_name: IntTestOrgCloned - register: delete_no_confirm - ignore_errors: yes - - - assert: - that: - 'delete_no_confirm.msg == "delete_confirm must match the network ID of the network to be deleted."' +- name: Execute tests for meraki_organiztion + block: + - name: Test an API key is provided + ansible.builtin.fail: + msg: Please define an API key + when: auth_key is not defined + + - name: Create a new organization named IntTestOrg + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + org_name: IntTestOrg + state: present + output_level: debug + register: new_org + + - name: Clone IntTestOrg + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + clone: IntTestOrg + org_name: IntTestOrgCloned + state: present + register: cloned_org + + - name: Set cloned network ID + ansible.builtin.set_fact: + cloned_net_id: '{{ cloned_org.data.id }}' + + - name: Rename IntTestOrg + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + org_name: IntTestOrgRenamed + org_id: '{{ new_org.data.id }}' + state: present + register: modify_org + + - name: Set renamed organization ID + ansible.builtin.set_fact: + renamed_org_id: '{{ modify_org.data.id }}' + + - name: Rename IntTestOrg idempotent + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + org_name: IntTestOrgRenamed + org_id: '{{ new_org.data.id }}' + state: present + register: modify_org_idempotent + + - name: Present assertions + ansible.builtin.assert: + that: + - '"https" in new_org.url' + - new_org.changed == True + - new_org.data.id is defined + - cloned_org.changed == True + - cloned_org.data.id is defined + - modify_org.changed == True + - 'modify_org.data.name == "IntTestOrgRenamed"' + - modify_org_idempotent.changed == False + - modify_org_idempotent.data is defined + + - name: List all organizations + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + state: query + register: query_all + + - name: Query information about a single organization named IntTestOrg + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + org_name: IntTestOrgRenamed + state: query + register: query_org + + - name: Query information about IntTestOrg by organization ID + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + org_id: '{{ query_org.data.id }}' + state: query + register: query_org_id + + - name: Query assertions + ansible.builtin.assert: + that: + - query_org.data.id is defined + - query_all.changed == False + - query_all.data | length >= 1 + - 'query_org.data.name == "IntTestOrgRenamed"' + - 'query_org_id.data.id == query_org.data.id' + + - name: Delete without confirmation code + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + state: absent + org_name: IntTestOrgCloned + register: delete_no_confirm + ignore_errors: true + + - name: Assert deletion error + ansible.builtin.assert: + that: + 'delete_no_confirm.msg == "delete_confirm must match the network ID of the network to be deleted."' always: - # - name: Pause playbook for more reliable deletion - # pause: - # minutes: 1 - - - name: Delete cloned organizations with check mode - meraki_organization: - auth_key: '{{ auth_key }}' - state: absent - org_name: IntTestOrgCloned - delete_confirm: '{{cloned_net_id}}' - register: deleted_org_check - check_mode: yes - - - assert: - that: - - deleted_org_check is changed - - - name: Delete cloned organizations - meraki_organization: - auth_key: '{{ auth_key }}' - state: absent - org_name: IntTestOrgCloned - delete_confirm: '{{cloned_net_id}}' - register: deleted_org - - - name: Delete renamed organization by id - meraki_organization: - auth_key: '{{ auth_key }}' - state: absent - org_id: '{{renamed_org_id}}' - delete_confirm: '{{renamed_org_id}}' - register: deleted_org_id - - - assert: - that: - - deleted_org_id is changed + - name: Delete cloned organizations with check mode + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + state: absent + org_name: IntTestOrgCloned + delete_confirm: '{{ cloned_net_id }}' + register: deleted_org_check + check_mode: true + + - name: Assert organization deletion changed + ansible.builtin.assert: + that: + - deleted_org_check is changed + + - name: Delete cloned organizations + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + state: absent + org_name: IntTestOrgCloned + delete_confirm: '{{ cloned_net_id }}' + register: deleted_org + + - name: Delete renamed organization by id + cisco.meraki.meraki_organization: + auth_key: '{{ auth_key }}' + state: absent + org_id: '{{ renamed_org_id }}' + delete_confirm: '{{ renamed_org_id }}' + register: deleted_org_id + + - name: Assert org_id deletion changed + ansible.builtin.assert: + that: + - deleted_org_id is changed diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_snmp/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_snmp/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_snmp/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_snmp/tasks/main.yml b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_snmp/tasks/main.yml index ed0868a40..06b78d594 100644 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_snmp/tasks/main.yml +++ b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_snmp/tasks/main.yml @@ -3,288 +3,276 @@ # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- -- block: - - name: Test an API key is provided - fail: - msg: Please define an API key - when: auth_key is not defined - - - name: Create SNMP network - meraki_network: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: present - type: appliance - delegate_to: localhost - register: new_net - - - set_fact: - net_id: new_net.data.id - - - name: Query all SNMP settings - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - state: query - delegate_to: localhost - register: snmp_query - - - debug: - msg: '{{snmp_query}}' - - - name: Enable SNMPv2c - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - state: present - v2c_enabled: true - delegate_to: localhost - register: snmp_v2_enable - - - debug: - msg: '{{snmp_v2_enable}}' - - - assert: - that: - - snmp_v2_enable.data.v2_community_string is defined - - snmp_v2_enable.data.v2c_enabled == true - - - name: Disable SNMPv2c - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - state: present - v2c_enabled: False - delegate_to: localhost - register: snmp_v2_disable - - - assert: - that: - - snmp_v2_disable.data.v2_community_string is not defined - - snmp_v2_disable.data.v2c_enabled == False - - - name: Enable SNMPv2c with org_id - meraki_snmp: - auth_key: '{{auth_key}}' - org_id: '{{test_org_id}}' - state: present - v2c_enabled: true - delegate_to: localhost - register: snmp_v2_enable_id - - - debug: - msg: '{{snmp_v2_enable_id}}' - - - assert: - that: - - snmp_v2_enable_id.data.v2_community_string is defined - - snmp_v2_enable_id.data.v2c_enabled == true - - - name: Disable SNMPv2c with org_id - meraki_snmp: - auth_key: '{{auth_key}}' - org_id: '{{test_org_id}}' - state: present - v2c_enabled: False - delegate_to: localhost - register: snmp_v2_disable_id - - - assert: - that: - - snmp_v2_disable_id.data.v2_community_string is not defined - - snmp_v2_disable_id.data.v2c_enabled == False - - - name: Enable SNMPv3 with check mode - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - state: present - v3_enabled: true - v3_auth_mode: SHA - v3_auth_pass: ansiblepass - v3_priv_mode: AES128 - v3_priv_pass: ansiblepass - delegate_to: localhost - check_mode: yes - register: snmp_v3_enable_check - - - assert: - that: - - snmp_v3_enable_check.data.v3_enabled == True - - snmp_v3_enable_check.changed == True - - - name: Enable SNMPv3 - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - state: present - v3_enabled: true - v3_auth_mode: SHA - v3_auth_pass: ansiblepass - v3_priv_mode: AES128 - v3_priv_pass: ansiblepass - delegate_to: localhost - register: snmp_v3_enable - - - assert: - that: - - snmp_v3_enable.data.v3_enabled == True - - snmp_v3_enable.changed == True - - - name: Check for idempotency - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - state: present - v3_enabled: true - v3_auth_mode: SHA - v3_auth_pass: ansiblepass - v3_priv_mode: AES128 - v3_priv_pass: ansiblepass - delegate_to: localhost - register: snmp_idempotent - - - debug: - msg: '{{snmp_idempotent}}' - - - assert: - that: - - snmp_idempotent.changed == False - - snmp_idempotent.data is defined - - - name: Add peer IPs - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - state: present - v3_enabled: true - v3_auth_mode: SHA - v3_auth_pass: ansiblepass - v3_priv_mode: AES128 - v3_priv_pass: ansiblepass - peer_ips: - - 1.1.1.1 - - 2.2.2.2 - delegate_to: localhost - register: peers - - - debug: - msg: '{{peers}}' - - - assert: - that: - - peers.data.peer_ips is defined - - - name: Set short password - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - state: present - v3_enabled: true - v3_auth_mode: SHA - v3_auth_pass: ansible - v3_priv_mode: AES128 - v3_priv_pass: ansible - delegate_to: localhost - register: short_password - ignore_errors: yes - - - assert: - that: - - '"at least 8" in short_password.msg' - - - name: Set network access type to community string - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: present - access: community - community_string: abc123 - delegate_to: localhost - register: set_net_community - - - debug: - var: set_net_community - - - assert: - that: - - set_net_community is changed - - set_net_community.data is defined - - - name: Set network access type to username - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: present - access: users - users: - - username: ansibleuser - passphrase: ansiblepass - delegate_to: localhost - register: set_net_user - - - debug: - var: set_net_user - - - assert: - that: - - set_net_user is changed - - set_net_user.data is defined - - - name: Set network access type to none - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: present - access: none - delegate_to: localhost - register: set_net_none - - - debug: - var: set_net_none - - - assert: - that: - - set_net_none is changed - - set_net_none.data is defined - - - name: Query network SNMP settings - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: query - delegate_to: localhost - register: get_net - - - debug: - var: get_net - - - assert: - that: - - get_net.data is defined +- name: Execute teests against meraki_snmp + block: + - name: Test an API key is provided + ansible.builtin.fail: + msg: Please define an API key + when: auth_key is not defined + + - name: Create SNMP network + cisco.meraki.meraki_network: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: present + type: appliance + delegate_to: localhost + register: new_net + + - name: Set net_id + ansible.builtin.set_fact: + net_id: new_net.data.id + + - name: Query all SNMP settings + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: query + delegate_to: localhost + register: snmp_query + + - name: Enable SNMPv2c + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + v2c_enabled: true + delegate_to: localhost + register: snmp_v2_enable + + - name: Assert v2c is enabled + ansible.builtin.assert: + that: + - snmp_v2_enable.data.v2_community_string is defined + - snmp_v2_enable.data.v2c_enabled == true + + - name: Disable SNMPv2c + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + v2c_enabled: false + delegate_to: localhost + register: snmp_v2_disable + + - name: Assert v2c is disabled + ansible.builtin.assert: + that: + - snmp_v2_disable.data.v2_community_string is not defined + - snmp_v2_disable.data.v2c_enabled == False + + - name: Enable SNMPv2c with org_id + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_id: '{{ test_org_id }}' + state: present + v2c_enabled: true + delegate_to: localhost + register: snmp_v2_enable_id + + - name: Assert v2c is enabled with org_id + ansible.builtin.assert: + that: + - snmp_v2_enable_id.data.v2_community_string is defined + - snmp_v2_enable_id.data.v2c_enabled == true + + - name: Disable SNMPv2c with org_id + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_id: '{{ test_org_id }}' + state: present + v2c_enabled: false + delegate_to: localhost + register: snmp_v2_disable_id + + - name: Assert v2c is disabled with org_id + ansible.builtin.assert: + that: + - snmp_v2_disable_id.data.v2_community_string is not defined + - snmp_v2_disable_id.data.v2c_enabled == False + + - name: Enable SNMPv3 with check mode + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + v3_enabled: true + v3_auth_mode: SHA + v3_auth_pass: ansiblepass + v3_priv_mode: AES128 + v3_priv_pass: ansiblepass + delegate_to: localhost + check_mode: true + register: snmp_v3_enable_check + + - name: Assert check mode + ansible.builtin.assert: + that: + - snmp_v3_enable_check.data.v3_enabled == True + - snmp_v3_enable_check.changed == True + + - name: Enable SNMPv3 + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + v3_enabled: true + v3_auth_mode: SHA + v3_auth_pass: ansiblepass + v3_priv_mode: AES128 + v3_priv_pass: ansiblepass + delegate_to: localhost + register: snmp_v3_enable + + - name: Assert v3 enabled + ansible.builtin.assert: + that: + - snmp_v3_enable.data.v3_enabled == True + - snmp_v3_enable.changed == True + + - name: Check for idempotency + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + v3_enabled: true + v3_auth_mode: SHA + v3_auth_pass: ansiblepass + v3_priv_mode: AES128 + v3_priv_pass: ansiblepass + delegate_to: localhost + register: snmp_idempotent + + - name: Assert idempotency + ansible.builtin.assert: + that: + - snmp_idempotent.changed == False + - snmp_idempotent.data is defined + + - name: Add peer IPs + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + v3_enabled: true + v3_auth_mode: SHA + v3_auth_pass: ansiblepass + v3_priv_mode: AES128 + v3_priv_pass: ansiblepass + peer_ips: + - 1.1.1.1 + - 2.2.2.2 + delegate_to: localhost + register: peers + + - name: Assert peer_ips is defined + ansible.builtin.assert: + that: + - peers.data.peer_ips is defined + + - name: Set short password + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + v3_enabled: true + v3_auth_mode: SHA + v3_auth_pass: ansible + v3_priv_mode: AES128 + v3_priv_pass: ansible + delegate_to: localhost + register: short_password + ignore_errors: true + + - name: Assert password length + ansible.builtin.assert: + that: + - '"at least 8" in short_password.msg' + + - name: Set network access type to community string + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: present + access: community + community_string: abc123 + delegate_to: localhost + register: set_net_community + + - name: Assert community string + ansible.builtin.assert: + that: + - set_net_community is changed + - set_net_community.data is defined + + - name: Set network access type to username + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: present + access: users + users: + - username: ansibleuser + passphrase: ansiblepass + delegate_to: localhost + register: set_net_user + + - name: Assert access type + ansible.builtin.assert: + that: + - set_net_user is changed + - set_net_user.data is defined + + - name: Set network access type to none + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: present + access: none + delegate_to: localhost + register: set_net_none + + - name: Assert access type of none + ansible.builtin.assert: + that: + - set_net_none is changed + - set_net_none.data is defined + + - name: Query network SNMP settings + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: query + delegate_to: localhost + register: get_net + + - name: Assert query + ansible.builtin.assert: + that: + - get_net.data is defined always: - - name: Disable SNMPv3 - meraki_snmp: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - state: present - v3_enabled: no - v3_auth_mode: SHA - v3_auth_pass: ansiblepass - v3_priv_mode: AES128 - v3_priv_pass: ansiblepass - delegate_to: localhost - - - name: Delete SNMP network - meraki_network: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: absent - delegate_to: localhost + - name: Disable SNMPv3 + cisco.meraki.meraki_snmp: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + state: present + v3_enabled: false + v3_auth_mode: SHA + v3_auth_pass: ansiblepass + v3_priv_mode: AES128 + v3_priv_pass: ansiblepass + delegate_to: localhost + + - name: Delete SNMP network + cisco.meraki.meraki_network: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: absent + delegate_to: localhost diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ssid/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ssid/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_ssid/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_syslog/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_syslog/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_syslog/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_syslog/tasks/main.yml b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_syslog/tasks/main.yml index 8bf518472..dc62a956b 100644 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_syslog/tasks/main.yml +++ b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_syslog/tasks/main.yml @@ -3,226 +3,233 @@ # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- -- block: - - name: Test an API key is provided - fail: - msg: Please define an API key - when: auth_key is not defined - - - set_fact: - syslog_test_net_name: 'syslog_{{test_net_name}}' - - - name: Create network with type appliance and switch - meraki_network: - auth_key: '{{ auth_key }}' - state: present - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - type: - - appliance - - wireless - delegate_to: localhost - register: new_net - - - set_fact: - net_id: '{{new_net.data.id}}' - - - name: Query syslog settings - meraki_syslog: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: query - delegate_to: localhost - register: query_all - - - name: Set syslog server - meraki_syslog: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: present - servers: - - host: 192.0.1.2 - port: 514 - roles: - - Appliance event log - - Flows - delegate_to: localhost - register: create_server - - - assert: - that: - - create_server['data']['servers'][0]['host'] == "192.0.1.2" - - create_server is changed - - - name: Set syslog server with idempotency - meraki_syslog: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: present - servers: - - host: 192.0.1.2 - port: 514 - roles: - - Appliance event log - - Flows - delegate_to: localhost - register: create_server_idempotency - - - assert: - that: - - create_server_idempotency.changed == False - - create_server_idempotency.data is defined - - - name: Set syslog server with wireless Event log - meraki_syslog: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: present - servers: - - host: 192.0.1.2 - port: 514 - roles: - - Appliance event log - - Flows - - wireless Event log - delegate_to: localhost - register: create_server - - - assert: - that: - - create_server['data']['servers'][0]['host'] == "192.0.1.2" - - create_server is changed - - - name: Set syslog server with wireless Event log with idempotency - meraki_syslog: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: present - servers: - - host: 192.0.1.2 - port: 514 - roles: - - Appliance event log - - Flows - - wireless event log - delegate_to: localhost - register: create_server_idempotency - - - assert: - that: - - create_server_idempotency.changed == False - - create_server_idempotency.data is defined - - - name: Set syslog servers to address bug 288 - meraki_syslog: - auth_key: "{{ auth_key }}" - state: present - org_name: "{{ test_org_name }}" - net_name: "{{ test_net_name }}" - servers: - - host: "10.3.15.11" - port: 604 - roles: - - Appliance event log - - Security events - - host: "10.5.15.11" - port: 604 - roles: - - Appliance event log - - Security events - - host: "10.9.15.11" - port: 604 - roles: - - Appliance event log - - Security events - - host: "10.5.250.12" - port: 514 - roles: - - Appliance event log - - Security events - - - name: Set multiple syslog servers - meraki_syslog: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_id: '{{net_id}}' - state: present - servers: - - host: 192.0.1.3 - port: 514 - roles: - - Appliance event log - - host: 192.0.1.4 - port: 514 - roles: - - Appliance event log - - Flows - - host: 192.0.1.5 - port: 514 - roles: - - Flows - delegate_to: localhost - register: create_multiple_servers - - - assert: - that: - - create_multiple_servers['data']['servers'][0]['host'] == "192.0.1.3" - - create_multiple_servers['data']['servers'][1]['host'] == "192.0.1.4" - - create_multiple_servers['data']['servers'][2]['host'] == "192.0.1.5" - - create_multiple_servers['data']['servers'] | length == 3 - - - name: Create syslog server with bad name - meraki_syslog: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: present - servers: - - host: 192.0.1.6 - port: 514 - roles: - - Invalid role - delegate_to: localhost - register: invalid_role - ignore_errors: yes - - - assert: - that: - - '"Invalid role found in" in invalid_role.msg' - - - name: Add role to existing syslog server # Adding doesn't work, just creation - meraki_syslog: - auth_key: '{{auth_key}}' - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' - state: present - servers: - - host: 192.0.1.2 - port: 514 - roles: - - Flows - delegate_to: localhost - register: add_role - - - debug: - msg: '{{add_role.data}}' - - - assert: - that: - - add_role.data.servers.0.roles.0 == 'Flows' +- name: Execute tasks for syslog module + block: + - name: Test an API key is provided + ansible.builtin.fail: + msg: Please define an API key + when: auth_key is not defined + + - name: Set test network name + ansible.builtin.set_fact: + syslog_test_net_name: 'syslog_{{ test_net_name }}' + + - name: Create network with type appliance and switch + cisco.meraki.meraki_network: + auth_key: '{{ auth_key }}' + state: present + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + type: + - appliance + - wireless + delegate_to: localhost + register: new_net + + - name: Set net_id + ansible.builtin.set_fact: + net_id: '{{ new_net.data.id }}' + + - name: Query syslog settings + cisco.meraki.meraki_syslog: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: query + delegate_to: localhost + register: query_all + + - name: Set syslog server + cisco.meraki.meraki_syslog: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: present + servers: + - host: 192.0.1.2 + port: 514 + roles: + - Appliance event log + - Flows + delegate_to: localhost + register: create_server + + - name: Assert host IP address + ansible.builtin.assert: + that: + - create_server['data']['servers'][0]['host'] == "192.0.1.2" + - create_server is changed + + - name: Set syslog server with idempotency + cisco.meraki.meraki_syslog: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: present + servers: + - host: 192.0.1.2 + port: 514 + roles: + - Appliance event log + - Flows + delegate_to: localhost + register: create_server_idempotency + + - name: Assert idempotency + ansible.builtin.assert: + that: + - create_server_idempotency.changed == False + - create_server_idempotency.data is defined + + - name: Set syslog server with wireless Event log + cisco.meraki.meraki_syslog: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: present + servers: + - host: 192.0.1.2 + port: 514 + roles: + - Appliance event log + - Flows + - wireless Event log + delegate_to: localhost + register: create_server + + - name: Assert host IP address + ansible.builtin.assert: + that: + - create_server['data']['servers'][0]['host'] == "192.0.1.2" + - create_server is changed + + - name: Set syslog server with wireless Event log with idempotency + cisco.meraki.meraki_syslog: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: present + servers: + - host: 192.0.1.2 + port: 514 + roles: + - Appliance event log + - Flows + - wireless event log + delegate_to: localhost + register: create_server_idempotency + + - name: Assert idempotency + ansible.builtin.assert: + that: + - create_server_idempotency.changed == False + - create_server_idempotency.data is defined + + - name: Set syslog servers to address bug 288 + cisco.meraki.meraki_syslog: + auth_key: "{{ auth_key }}" + state: present + org_name: "{{ test_org_name }}" + net_name: "{{ test_net_name }}" + servers: + - host: "10.3.15.11" + port: 604 + roles: + - Appliance event log + - Security events + - host: "10.5.15.11" + port: 604 + roles: + - Appliance event log + - Security events + - host: "10.9.15.11" + port: 604 + roles: + - Appliance event log + - Security events + - host: "10.5.250.12" + port: 514 + roles: + - Appliance event log + - Security events + + - name: Set multiple syslog servers + cisco.meraki.meraki_syslog: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_id: '{{ net_id }}' + state: present + servers: + - host: 192.0.1.3 + port: 514 + roles: + - Appliance event log + - host: 192.0.1.4 + port: 514 + roles: + - Appliance event log + - Flows + - host: 192.0.1.5 + port: 514 + roles: + - Flows + delegate_to: localhost + register: create_multiple_servers + + - name: Assert valid servers + ansible.builtin.assert: + that: + - create_multiple_servers['data']['servers'][0]['host'] == "192.0.1.3" + - create_multiple_servers['data']['servers'][1]['host'] == "192.0.1.4" + - create_multiple_servers['data']['servers'][2]['host'] == "192.0.1.5" + - create_multiple_servers['data']['servers'] | length == 3 + + - name: Create syslog server with bad name + cisco.meraki.meraki_syslog: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: present + servers: + - host: 192.0.1.6 + port: 514 + roles: + - Invalid role + delegate_to: localhost + register: invalid_role + ignore_errors: true + + - name: Assert "Invalid role found" in previous tasks error + ansible.builtin.assert: + that: + - '"Invalid role found in" in invalid_role.msg' + + - name: Add role to existing syslog server # Adding doesn't work, just creation + cisco.meraki.meraki_syslog: + auth_key: '{{ auth_key }}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' + state: present + servers: + - host: 192.0.1.2 + port: 514 + roles: + - Flows + delegate_to: localhost + register: add_role + + - name: Assert flows is the role + ansible.builtin.assert: + that: + - add_role.data.servers.0.roles.0 == 'Flows' always: - name: Delete syslog test network - meraki_network: + cisco.meraki.meraki_network: auth_key: '{{ auth_key }}' state: absent - org_name: '{{test_org_name}}' - net_name: '{{test_net_name}}' + org_name: '{{ test_org_name }}' + net_name: '{{ test_net_name }}' delegate_to: localhost register: delete_all - ignore_errors: yes + ignore_errors: true diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/aliases deleted file mode 100644 index ad7ccf7ad..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/aliases +++ /dev/null @@ -1 +0,0 @@ -unsupported diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/tasks/main.yml b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/tasks/main.yml index f671fc928..a75e73d69 100644 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/tasks/main.yml +++ b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/tasks/main.yml @@ -4,4 +4,5 @@ # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- - name: Run test cases - include: tests.yml ansible_connection=local + ansible.builtin.include_tasks: + file: tests.yml diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/tasks/tests.yml b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/tasks/tests.yml index 5455336e8..52d952243 100644 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/tasks/tests.yml +++ b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook/tasks/tests.yml @@ -9,6 +9,7 @@ ansible.builtin.fail: msg: Please define an API key when: auth_key is not defined + delegate_to: localhost - name: Create test network cisco.meraki.meraki_network: @@ -17,6 +18,7 @@ org_name: '{{ test_org_name }}' net_name: '{{ test_net_name }}' type: appliance + delegate_to: localhost - name: Query for any webhooks expecting None cisco.meraki.meraki_webhook: @@ -25,16 +27,19 @@ org_name: '{{ test_org_name }}' net_name: '{{ test_net_name }}' register: query_none + delegate_to: localhost - name: Query for any webhooks expecting None - debug ansible.builtin.debug: var: query_none + delegate_to: localhost - name: Query for any webhooks expecting None - assert ansible.builtin.assert: that: - query_none is not changed - query_none.data[0] is not defined + delegate_to: localhost - name: Create webhook with check mode cisco.meraki.meraki_webhook: @@ -47,16 +52,19 @@ shared_secret: shhhdonttellanyone check_mode: true register: create_one_check + delegate_to: localhost - name: Create webhook with check mode - debug ansible.builtin.debug: var: create_one_check + delegate_to: localhost - name: Create webhook with check mode - assert ansible.builtin.assert: that: - create_one_check is changed - create_one_check.data is defined + delegate_to: localhost - name: Create webhook cisco.meraki.meraki_webhook: @@ -68,20 +76,24 @@ url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244 shared_secret: shhhdonttellanyone register: create_one + delegate_to: localhost - name: Create webhook - debug ansible.builtin.debug: var: create_one + delegate_to: localhost - name: Create webhook - assert ansible.builtin.assert: that: - create_one is changed - create_one.data is defined + delegate_to: localhost - name: Set webhook_id for future use ansible.builtin.set_fact: webhook_id: '{{ create_one.data.id }}' + delegate_to: localhost - name: Query all webhooks expecting 1 cisco.meraki.meraki_webhook: @@ -90,10 +102,12 @@ org_name: '{{ test_org_name }}' net_name: '{{ test_net_name }}' register: query_one + delegate_to: localhost - name: Query all webhooks expecting 1 - debug ansible.builtin.debug: var: query_one + delegate_to: localhost - name: Query all webhooks expecting 1 - assert ansible.builtin.assert: @@ -101,6 +115,7 @@ - query_one.data is defined - query_one.data[0] is defined - query_one.data[1] is not defined + delegate_to: localhost - name: Query one webhook cisco.meraki.meraki_webhook: @@ -110,15 +125,18 @@ net_name: '{{ test_net_name }}' name: Test_Hook register: query_one + delegate_to: localhost - name: Query one webhook - debug ansible.builtin.debug: var: query_one + delegate_to: localhost - name: Query one webhook - assert ansible.builtin.assert: that: - query_one.data is defined + delegate_to: localhost - name: Query one webhook with id cisco.meraki.meraki_webhook: @@ -128,15 +146,18 @@ net_name: '{{ test_net_name }}' webhook_id: '{{ webhook_id }}' register: query_one_id + delegate_to: localhost - name: Query one webhook with id - debug ansible.builtin.debug: var: query_one_id + delegate_to: localhost - name: Query one webhook with id - assert ansible.builtin.assert: that: - query_one_id.data is defined + delegate_to: localhost - name: Update webhook with check mode cisco.meraki.meraki_webhook: @@ -149,12 +170,14 @@ shared_secret: shhhdonttellanyonehere check_mode: true register: update_check + delegate_to: localhost - name: Update webhook with check mode - assert ansible.builtin.assert: that: - update_check is changed - update_check.data is defined + delegate_to: localhost - name: Update webhook cisco.meraki.meraki_webhook: @@ -166,10 +189,12 @@ url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244 shared_secret: shhhdonttellanyonehere register: update + delegate_to: localhost - name: Update webhook - debug ansible.builtin.debug: var: update + delegate_to: localhost - name: Update webhook - assert ansible.builtin.assert: @@ -177,6 +202,7 @@ - update is changed - update.data is defined - update.data.shared_secret is not defined + delegate_to: localhost - name: Update webhook with idempotency with shared secret cisco.meraki.meraki_webhook: @@ -188,10 +214,12 @@ url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244 shared_secret: shhhdonttellanyonehere register: update_idempotent + delegate_to: localhost - name: Update webhook with idempotency with shared secret - debug ansible.builtin.debug: var: update_idempotent + delegate_to: localhost # response will always be "changed" since shared secret is not sent back in the response. - name: Update webhook with idempotency with shared secret - assert @@ -200,6 +228,7 @@ - update_idempotent is changed - update_idempotent.data is defined - update_idempotent.data.shared_secret is not defined + delegate_to: localhost - name: Update webhook with idempotency without shared secret cisco.meraki.meraki_webhook: @@ -210,6 +239,7 @@ name: Test_Hook url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244 register: update_idempotent2 + delegate_to: localhost - name: Update webhook with idempotency without shared secret - debug ansible.builtin.debug: @@ -233,6 +263,7 @@ url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244 shared_secret: shhhdonttellanyonehereid register: update_id + delegate_to: localhost - name: Update webhook with id - debug ansible.builtin.debug: @@ -254,6 +285,7 @@ name: TestPayloadTemplate body: "a fake body" register: payload_template + delegate_to: localhost - name: Debug payload_template ansible.builtin.debug: @@ -270,6 +302,7 @@ url: https://webhook.site/8eb5b76f-b167 shared_secret: shhhdonttellanyone register: webhook_with_template + delegate_to: localhost - name: Create webhook with a payload template - debug ansible.builtin.debug: @@ -290,6 +323,7 @@ net_name: '{{ test_net_name }}' name: Test_Hook_with_template register: delete_hook_with_template + delegate_to: localhost - name: Delete webhook with payload template - debug ansible.builtin.debug: @@ -310,6 +344,7 @@ test: test url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244 register: webhook_test + delegate_to: localhost - name: Set test_id for future use ansible.builtin.set_fact: @@ -327,6 +362,7 @@ net_name: '{{ test_net_name }}' test_id: '{{ test_id }}' register: webhook_test_status + delegate_to: localhost - name: Get webhook status - debug ansible.builtin.debug: @@ -344,6 +380,7 @@ org_name: '{{ test_org_name }}' net_name: '{{ test_net_name }}' register: query_all + delegate_to: localhost - name: Query all webhooks - debug ansible.builtin.debug: @@ -359,6 +396,7 @@ check_mode: true register: delete_invalid ignore_errors: true + delegate_to: localhost - name: Delete webhook invalid webhook - debug ansible.builtin.debug: @@ -378,6 +416,7 @@ name: Test_Hook check_mode: true register: delete_check + delegate_to: localhost - name: Delete webhook in check mode - debug ansible.builtin.debug: @@ -396,6 +435,7 @@ net_name: '{{ test_net_name }}' name: Test_Hook register: delete + delegate_to: localhost - name: Delete webhook - debug ansible.builtin.debug: @@ -417,6 +457,7 @@ net_name: '{{ test_net_name }}' state: absent name: TestPayloadTemplate + delegate_to: localhost - name: Delete test network cisco.meraki.meraki_network: @@ -424,3 +465,4 @@ state: absent org_name: '{{ test_org_name }}' net_name: '{{ test_net_name }}' + delegate_to: localhost diff --git a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook_payload_template/aliases b/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook_payload_template/aliases deleted file mode 100644 index 06fe32bc6..000000000 --- a/ansible_collections/cisco/meraki/tests/integration/targets/meraki_webhook_payload_template/aliases +++ /dev/null @@ -1,2 +0,0 @@ -unsupported - diff --git a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.12.txt b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.12.txt index d6f190be0..962f011a7 100644 --- a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.12.txt +++ b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.12.txt @@ -1 +1,129 @@ -plugins/modules/meraki_mx_intrusion_prevention.py validate-modules:invalid-argument-name +plugins/modules/meraki_action_batch.py validate-modules!skip +plugins/modules/meraki_admin.py validate-modules!skip +plugins/modules/meraki_alert.py validate-modules!skip +plugins/modules/meraki_config_template.py validate-modules!skip +plugins/modules/meraki_device.py validate-modules!skip +plugins/modules/meraki_firewalled_services.py validate-modules!skip +plugins/modules/meraki_management_interface.py validate-modules!skip +plugins/modules/meraki_mr_l7_firewall.py validate-modules!skip +plugins/modules/meraki_mr_radio.py validate-modules!skip +plugins/modules/meraki_mr_rf_profile.py validate-modules!skip +plugins/modules/meraki_mr_settings.py validate-modules!skip +plugins/modules/meraki_mr_ssid.py validate-modules!skip +plugins/modules/meraki_ms_access_list.py validate-modules!skip +plugins/modules/meraki_ms_access_policies.py validate-modules!skip +plugins/modules/meraki_ms_l3_interface.py validate-modules!skip +plugins/modules/meraki_ms_link_aggregation.py validate-modules!skip +plugins/modules/meraki_ms_ospf.py validate-modules!skip +plugins/modules/meraki_ms_stack.py validate-modules!skip +plugins/modules/meraki_ms_stack_l3_interface.py validate-modules!skip +plugins/modules/meraki_ms_storm_control.py validate-modules!skip +plugins/modules/meraki_ms_switchport.py validate-modules!skip +plugins/modules/meraki_mx_content_filtering.py validate-modules!skip +plugins/modules/meraki_mx_intrusion_prevention.py validate-modules!skip +plugins/modules/meraki_mx_l2_interface.py validate-modules!skip +plugins/modules/meraki_mx_l3_firewall.py validate-modules!skip +plugins/modules/meraki_mx_l7_firewall.py validate-modules!skip +plugins/modules/meraki_mx_malware.py validate-modules!skip +plugins/modules/meraki_mx_nat.py validate-modules!skip +plugins/modules/meraki_mx_network_vlan_settings.py validate-modules!skip +plugins/modules/meraki_mx_site_to_site_firewall.py validate-modules!skip +plugins/modules/meraki_mx_site_to_site_vpn.py validate-modules!skip +plugins/modules/meraki_mx_static_route.py validate-modules!skip +plugins/modules/meraki_mx_third_party_vpn_peers.py validate-modules!skip +plugins/modules/meraki_mx_uplink_bandwidth.py validate-modules!skip +plugins/modules/meraki_mx_vlan.py validate-modules!skip +plugins/modules/meraki_network.py validate-modules!skip +plugins/modules/meraki_network_settings.py validate-modules!skip +plugins/modules/meraki_organization.py validate-modules!skip +plugins/modules/meraki_snmp.py validate-modules!skip +plugins/modules/meraki_syslog.py validate-modules!skip +plugins/modules/meraki_webhook.py validate-modules!skip +plugins/modules/meraki_webhook_payload_template.py validate-modules!skip +plugins/modules/meraki_mr_l3_firewall.py validate-modules!skip +plugins/modules/meraki_action_batch.py yamllint!skip +plugins/modules/meraki_admin.py yamllint!skip +plugins/modules/meraki_alert.py yamllint!skip +plugins/modules/meraki_config_template.py yamllint!skip +plugins/modules/meraki_device.py yamllint!skip +plugins/modules/meraki_firewalled_services.py yamllint!skip +plugins/modules/meraki_management_interface.py yamllint!skip +plugins/modules/meraki_mr_l7_firewall.py yamllint!skip +plugins/modules/meraki_mr_radio.py yamllint!skip +plugins/modules/meraki_mr_rf_profile.py yamllint!skip +plugins/modules/meraki_mr_settings.py yamllint!skip +plugins/modules/meraki_mr_ssid.py yamllint!skip +plugins/modules/meraki_ms_access_list.py yamllint!skip +plugins/modules/meraki_ms_access_policies.py yamllint!skip +plugins/modules/meraki_ms_l3_interface.py yamllint!skip +plugins/modules/meraki_ms_link_aggregation.py yamllint!skip +plugins/modules/meraki_ms_ospf.py yamllint!skip +plugins/modules/meraki_ms_stack.py yamllint!skip +plugins/modules/meraki_ms_stack_l3_interface.py yamllint!skip +plugins/modules/meraki_ms_storm_control.py yamllint!skip +plugins/modules/meraki_ms_switchport.py yamllint!skip +plugins/modules/meraki_mx_content_filtering.py yamllint!skip +plugins/modules/meraki_mx_intrusion_prevention.py yamllint!skip +plugins/modules/meraki_mx_l2_interface.py yamllint!skip +plugins/modules/meraki_mx_l3_firewall.py yamllint!skip +plugins/modules/meraki_mx_l7_firewall.py yamllint!skip +plugins/modules/meraki_mx_malware.py yamllint!skip +plugins/modules/meraki_mx_nat.py yamllint!skip +plugins/modules/meraki_mx_network_vlan_settings.py yamllint!skip +plugins/modules/meraki_mx_site_to_site_firewall.py yamllint!skip +plugins/modules/meraki_mx_site_to_site_vpn.py yamllint!skip +plugins/modules/meraki_mx_static_route.py yamllint!skip +plugins/modules/meraki_mx_third_party_vpn_peers.py yamllint!skip +plugins/modules/meraki_mx_uplink_bandwidth.py yamllint!skip +plugins/modules/meraki_mx_vlan.py yamllint!skip +plugins/modules/meraki_network.py yamllint!skip +plugins/modules/meraki_network_settings.py yamllint!skip +plugins/modules/meraki_organization.py yamllint!skip +plugins/modules/meraki_snmp.py yamllint!skip +plugins/modules/meraki_syslog.py yamllint!skip +plugins/modules/meraki_webhook.py yamllint!skip +plugins/modules/meraki_webhook_payload_template.py yamllint!skip +plugins/modules/meraki_mr_l3_firewall.py yamllint!skip +plugins/modules/meraki_action_batch.py ansible-doc!skip +plugins/modules/meraki_admin.py ansible-doc!skip +plugins/modules/meraki_alert.py ansible-doc!skip +plugins/modules/meraki_config_template.py ansible-doc!skip +plugins/modules/meraki_device.py ansible-doc!skip +plugins/modules/meraki_firewalled_services.py ansible-doc!skip +plugins/modules/meraki_management_interface.py ansible-doc!skip +plugins/modules/meraki_mr_l7_firewall.py ansible-doc!skip +plugins/modules/meraki_mr_radio.py ansible-doc!skip +plugins/modules/meraki_mr_rf_profile.py ansible-doc!skip +plugins/modules/meraki_mr_settings.py ansible-doc!skip +plugins/modules/meraki_mr_ssid.py ansible-doc!skip +plugins/modules/meraki_ms_access_list.py ansible-doc!skip +plugins/modules/meraki_ms_access_policies.py ansible-doc!skip +plugins/modules/meraki_ms_l3_interface.py ansible-doc!skip +plugins/modules/meraki_ms_link_aggregation.py ansible-doc!skip +plugins/modules/meraki_ms_ospf.py ansible-doc!skip +plugins/modules/meraki_ms_stack.py ansible-doc!skip +plugins/modules/meraki_ms_stack_l3_interface.py ansible-doc!skip +plugins/modules/meraki_ms_storm_control.py ansible-doc!skip +plugins/modules/meraki_ms_switchport.py ansible-doc!skip +plugins/modules/meraki_mx_content_filtering.py ansible-doc!skip +plugins/modules/meraki_mx_intrusion_prevention.py ansible-doc!skip +plugins/modules/meraki_mx_l2_interface.py ansible-doc!skip +plugins/modules/meraki_mx_l3_firewall.py ansible-doc!skip +plugins/modules/meraki_mx_l7_firewall.py ansible-doc!skip +plugins/modules/meraki_mx_malware.py ansible-doc!skip +plugins/modules/meraki_mx_nat.py ansible-doc!skip +plugins/modules/meraki_mx_network_vlan_settings.py ansible-doc!skip +plugins/modules/meraki_mx_site_to_site_firewall.py ansible-doc!skip +plugins/modules/meraki_mx_site_to_site_vpn.py ansible-doc!skip +plugins/modules/meraki_mx_static_route.py ansible-doc!skip +plugins/modules/meraki_mx_third_party_vpn_peers.py ansible-doc!skip +plugins/modules/meraki_mx_uplink_bandwidth.py ansible-doc!skip +plugins/modules/meraki_mx_vlan.py ansible-doc!skip +plugins/modules/meraki_network.py ansible-doc!skip +plugins/modules/meraki_network_settings.py ansible-doc!skip +plugins/modules/meraki_organization.py ansible-doc!skip +plugins/modules/meraki_snmp.py ansible-doc!skip +plugins/modules/meraki_syslog.py ansible-doc!skip +plugins/modules/meraki_webhook.py ansible-doc!skip +plugins/modules/meraki_webhook_payload_template.py ansible-doc!skip +plugins/modules/meraki_mr_l3_firewall.py ansible-doc!skip \ No newline at end of file diff --git a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.13.txt b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.13.txt index d6f190be0..e69de29bb 100644 --- a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.13.txt +++ b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.13.txt @@ -1 +0,0 @@ -plugins/modules/meraki_mx_intrusion_prevention.py validate-modules:invalid-argument-name diff --git a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.14.txt b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.14.txt index d6f190be0..dce1be5cb 100644 --- a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.14.txt +++ b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.14.txt @@ -1 +1 @@ -plugins/modules/meraki_mx_intrusion_prevention.py validate-modules:invalid-argument-name +plugins/modules/meraki_mx_intrusion_prevention.py validate-modules:invalid-argument-name \ No newline at end of file diff --git a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.15.txt b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.15.txt index d6f190be0..dce1be5cb 100644 --- a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.15.txt +++ b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.15.txt @@ -1 +1 @@ -plugins/modules/meraki_mx_intrusion_prevention.py validate-modules:invalid-argument-name +plugins/modules/meraki_mx_intrusion_prevention.py validate-modules:invalid-argument-name \ No newline at end of file diff --git a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.16.txt b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.16.txt new file mode 100644 index 000000000..dce1be5cb --- /dev/null +++ b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.16.txt @@ -0,0 +1 @@ +plugins/modules/meraki_mx_intrusion_prevention.py validate-modules:invalid-argument-name \ No newline at end of file diff --git a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.17.txt b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.17.txt new file mode 100644 index 000000000..dce1be5cb --- /dev/null +++ b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.17.txt @@ -0,0 +1 @@ +plugins/modules/meraki_mx_intrusion_prevention.py validate-modules:invalid-argument-name \ No newline at end of file -- cgit v1.2.3