# Test code for the Meraki Organization module # Copyright: (c) 2018, Kevin Breit (@kbreit) # 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: Add invalid peer IPs meraki_snmp: auth_key: '{{auth_key}}' org_name: '{{test_org_name}}' state: present peer_ips: 1.1.1.1 2.2.2.2 delegate_to: localhost register: invalid_peers ignore_errors: yes - assert: that: '"Peer IP addresses are semi-colon delimited." in invalid_peers.msg' - 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 peer_ips: 1.1.1.1;2.2.2.2 delegate_to: localhost register: short_password ignore_errors: yes - debug: msg: '{{short_password}}' - 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 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