|
|
|
# Test code for the Meraki modules
|
|
|
|
# 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: Create network without type
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetwork
|
|
|
|
timezone: America/Chicago
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_no_type
|
|
|
|
ignore_errors: yes
|
|
|
|
|
|
|
|
- name: Create network without organization
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
net_name: IntTestNetwork
|
|
|
|
timezone: America/Chicago
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_no_org
|
|
|
|
ignore_errors: yes
|
|
|
|
|
|
|
|
- name: Create network with type switch
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetworkSwitch
|
|
|
|
type: switch
|
|
|
|
timezone: America/Chicago
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_switch
|
|
|
|
|
|
|
|
- name: Create network with type switch by org ID
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_id: '{{test_org_id}}'
|
|
|
|
net_name: IntTestNetworkSwitchOrgID
|
|
|
|
type: switch
|
|
|
|
timezone: America/Chicago
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_switch_org_id
|
|
|
|
|
|
|
|
- name: Create network with type appliance and no timezone
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetworkAppliance
|
|
|
|
type: appliance
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_appliance_no_tz
|
|
|
|
|
|
|
|
- name: Enable VLAN support on appliance network
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{ test_org_name }}'
|
|
|
|
net_name: IntTestNetworkAppliance
|
|
|
|
enable_vlans: yes
|
|
|
|
delegate_to: localhost
|
|
|
|
register: enable_vlan
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- enable_vlan.data.enabled == True
|
|
|
|
|
|
|
|
- name: Enable VLAN support on appliance network with idempotency
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{ test_org_name }}'
|
|
|
|
net_name: IntTestNetworkAppliance
|
|
|
|
enable_vlans: yes
|
|
|
|
delegate_to: localhost
|
|
|
|
register: enable_vlan_idempotent
|
|
|
|
|
|
|
|
- debug:
|
|
|
|
var: enable_vlan_idempotent
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- enable_vlan_idempotent is not changed
|
|
|
|
- enable_vlan_idempotent.data is defined
|
|
|
|
|
|
|
|
- name: Disable VLAN support on appliance network
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{ test_org_name }}'
|
|
|
|
net_name: IntTestNetworkAppliance
|
|
|
|
enable_vlans: no
|
|
|
|
delegate_to: localhost
|
|
|
|
register: disable_vlan
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- disable_vlan.data.enabled == False
|
|
|
|
|
|
|
|
- name: Disable VLAN support on appliance network with idempotency
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{ test_org_name }}'
|
|
|
|
net_name: IntTestNetworkAppliance
|
|
|
|
enable_vlans: no
|
|
|
|
delegate_to: localhost
|
|
|
|
register: disable_vlan_idempotent
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- disable_vlan_idempotent is not changed
|
|
|
|
- disable_vlan_idempotent.data is defined
|
|
|
|
|
|
|
|
- name: Create network with type wireless
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetworkWireless
|
|
|
|
type: wireless
|
|
|
|
timezone: America/Chicago
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_wireless
|
|
|
|
|
|
|
|
- name: Create network with type wireless and check for idempotency
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetworkWireless
|
|
|
|
type: wireless
|
|
|
|
timezone: America/Chicago
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_wireless_idempotent
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- create_net_wireless_idempotent.data is defined
|
|
|
|
|
|
|
|
- name: Create network with type combined and disable my.meraki.com
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{ test_org_name }}'
|
|
|
|
net_name: IntTestNetworkCombined
|
|
|
|
type:
|
|
|
|
- appliance
|
|
|
|
- switch
|
|
|
|
timezone: America/Chicago
|
|
|
|
disable_my_meraki: yes
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_combined
|
|
|
|
|
|
|
|
- name: Reenable my.meraki.com
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetworkCombined
|
|
|
|
disable_my_meraki: no
|
|
|
|
delegate_to: localhost
|
|
|
|
register: enable_meraki_com
|
|
|
|
|
|
|
|
- name: Create network with one tag
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetworkTag
|
|
|
|
type: switch
|
|
|
|
timezone: America/Chicago
|
|
|
|
tags: first_tag
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_tag
|
|
|
|
|
|
|
|
- name: Create network with two tags
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetworkTags
|
|
|
|
type: switch
|
|
|
|
timezone: America/Chicago
|
|
|
|
tags:
|
|
|
|
- first_tag
|
|
|
|
- second_tag
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_tags
|
|
|
|
|
|
|
|
- name: Modify network
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetworkTags
|
|
|
|
type: switch
|
|
|
|
timezone: America/Chicago
|
|
|
|
tags:
|
|
|
|
- first_tag
|
|
|
|
- second_tag
|
|
|
|
- third_tag
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_modified
|
|
|
|
|
|
|
|
- name: Modify network with idempotency
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: present
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetworkTags
|
|
|
|
type: switch
|
|
|
|
timezone: America/Chicago
|
|
|
|
tags:
|
|
|
|
- first_tag
|
|
|
|
- second_tag
|
|
|
|
- third_tag
|
|
|
|
delegate_to: localhost
|
|
|
|
register: create_net_modified_idempotent
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- create_net_modified_idempotent.data is defined
|
|
|
|
|
|
|
|
- name: Present assertions
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- create_net_no_type.status == 500
|
|
|
|
- create_net_combined.data.type == 'combined'
|
|
|
|
- create_net_combined.data.disableMyMerakiCom == True
|
|
|
|
- enable_meraki_com.data.disableMyMerakiCom == False
|
|
|
|
- '"org_name or org_id parameters are required" in create_net_no_org.msg'
|
|
|
|
- '"IntTestNetworkAppliance" in create_net_appliance_no_tz.data.name'
|
|
|
|
- create_net_appliance_no_tz.changed == True
|
|
|
|
- '"IntTestNetworkSwitch" in create_net_switch.data.name'
|
|
|
|
- '"IntTestNetworkSwitchOrgID" in create_net_switch_org_id.data.name'
|
|
|
|
- '"IntTestNetworkWireless" in create_net_wireless.data.name'
|
|
|
|
- create_net_wireless_idempotent.changed == False
|
|
|
|
- create_net_wireless_idempotent.data is defined
|
|
|
|
- '"first_tag" in create_net_tag.data.tags'
|
|
|
|
- '"second_tag" in create_net_tags.data.tags'
|
|
|
|
- '"third_tag" in create_net_modified.data.tags'
|
|
|
|
- create_net_modified.changed == True
|
|
|
|
- create_net_modified_idempotent.changed == False
|
|
|
|
- create_net_modified_idempotent.data is defined
|
|
|
|
|
|
|
|
- name: Query all networks
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: query
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
delegate_to: localhost
|
|
|
|
register: net_query_all
|
|
|
|
|
|
|
|
- name: Query a configuration template
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{auth_key}}'
|
|
|
|
state: query
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: '{{test_template_name}}'
|
|
|
|
delegate_to: localhost
|
|
|
|
register: query_config_template
|
|
|
|
|
|
|
|
- name: Query one network
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: query
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: IntTestNetworkSwitch
|
|
|
|
delegate_to: localhost
|
|
|
|
register: net_query_one
|
|
|
|
|
|
|
|
- name: Query assertions
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'net_query_one.data.name == "IntTestNetworkSwitch"'
|
|
|
|
- 'query_config_template.data.name == "{{ test_template_name }}"'
|
|
|
|
|
|
|
|
#############################################################################
|
|
|
|
# Tear down starts here
|
|
|
|
#############################################################################
|
|
|
|
always:
|
|
|
|
- name: Delete network without org
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: absent
|
|
|
|
net_name: IntTestNetworkSwitch
|
|
|
|
delegate_to: localhost
|
|
|
|
register: delete_all_no_org
|
|
|
|
ignore_errors: yes
|
|
|
|
|
|
|
|
- name: Delete network by org ID
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: absent
|
|
|
|
org_id: '{{test_org_id}}'
|
|
|
|
net_name: IntTestNetworkSwitchOrgID
|
|
|
|
delegate_to: localhost
|
|
|
|
register: delete_net_org_id
|
|
|
|
|
|
|
|
- name: Query after delete with org ID
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: query
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
delegate_to: localhost
|
|
|
|
register: query_deleted_org_id
|
|
|
|
|
|
|
|
- name: Delete all networks
|
|
|
|
meraki_network:
|
|
|
|
auth_key: '{{ auth_key }}'
|
|
|
|
state: absent
|
|
|
|
org_name: '{{test_org_name}}'
|
|
|
|
net_name: '{{ item }}'
|
|
|
|
delegate_to: localhost
|
|
|
|
register: delete_all
|
|
|
|
ignore_errors: yes
|
|
|
|
loop:
|
|
|
|
- IntTestNetworkSwitch
|
|
|
|
- IntTestNetworkWireless
|
|
|
|
- IntTestNetworkAppliance
|
|
|
|
- IntTestNetworkCombined
|
|
|
|
- IntTestNetworkTag
|
|
|
|
- IntTestNetworkTags
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- 'delete_all_no_org.msg == "org_name or org_id parameters are required"'
|