a85750dc98
* Initial proposal for new parameter option for response format - output_version parameter dictates the response key case - new is snake_case, old is camelCase - If new, conversion is done at the end of module execution - This is purely a proposal and not a final draft * Add support for ANSIBLE_MERAKI_FORMAT env var - If env var is set to 'camelcase' it will output camelcase - Otherwise, will default to snakecase - Added note to documentation fragment - As of now, all module documentation needs to be updated * Fix pep8 errors and remove output_version args * Restructure check in exit_json so it actually works * Add changelog fragment * Change output_format to a parameter with env var fallback - ANSIBLE_MERAKI_FORMAT is the valid env var - Added documentation * Convert to camel_dict_to_snake_dict() which is from Ansible - Fixed integration tests * Fix yaml lint error * exit_json camel_case conversion handles no data - exit_json would fail if data wasn't provided - Updated 3 integration tests for new naming convention * convert_camel_to_snake() handles lists and dicts - The native Ansible method doesn't handle first level lists - convert_camel_to_snake() acts simply as a wrapper for the method - There maybe a situation where nested lists are a problem, must test - Fixed integration tests in some modules * A few integration test fixes * Convert response documentation to snake case
325 lines
6.5 KiB
YAML
325 lines
6.5 KiB
YAML
# 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)
|
|
---
|
|
- name: Test an API key is provided
|
|
fail:
|
|
msg: Please define an API key
|
|
when: auth_key is not defined
|
|
|
|
- name: Use an invalid domain
|
|
meraki_switchport:
|
|
auth_key: '{{ auth_key }}'
|
|
host: marrrraki.com
|
|
state: query
|
|
serial: Q2HP-2C6E-GTLD
|
|
org_name: IntTestOrg
|
|
delegate_to: localhost
|
|
register: invaliddomain
|
|
ignore_errors: yes
|
|
|
|
- name: Disable HTTP
|
|
meraki_switchport:
|
|
auth_key: '{{ auth_key }}'
|
|
use_https: false
|
|
state: query
|
|
serial: Q2HP-2C6E-GTLD
|
|
output_level: debug
|
|
delegate_to: localhost
|
|
register: http
|
|
ignore_errors: yes
|
|
|
|
- name: Connection assertions
|
|
assert:
|
|
that:
|
|
- '"Failed to connect to" in invaliddomain.msg'
|
|
- '"http" in http.url'
|
|
|
|
- name: Query all switchports
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: query
|
|
serial: Q2HP-2C6E-GTLD
|
|
delegate_to: localhost
|
|
register: query_all
|
|
|
|
- debug:
|
|
msg: '{{query_all}}'
|
|
|
|
- name: Query one switchport
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: query
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 1
|
|
delegate_to: localhost
|
|
register: query_one
|
|
|
|
- debug:
|
|
msg: '{{query_one}}'
|
|
|
|
- name: Enable switchport
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 7
|
|
enabled: true
|
|
delegate_to: localhost
|
|
register: update_port_true
|
|
|
|
- debug:
|
|
msg: '{{update_port_true}}'
|
|
|
|
- assert:
|
|
that:
|
|
- update_port_true.data.enabled == True
|
|
|
|
- name: Disable switchport
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 7
|
|
enabled: false
|
|
delegate_to: localhost
|
|
register: update_port_false
|
|
|
|
- debug:
|
|
msg: '{{update_port_false}}'
|
|
|
|
- assert:
|
|
that:
|
|
- update_port_false.data.enabled == False
|
|
|
|
|
|
- name: Name switchport
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 7
|
|
name: Test Port
|
|
delegate_to: localhost
|
|
register: update_port_name
|
|
|
|
- debug:
|
|
msg: '{{update_port_name}}'
|
|
|
|
- assert:
|
|
that:
|
|
- update_port_name.data.name == 'Test Port'
|
|
|
|
- name: Configure access port
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 7
|
|
enabled: true
|
|
name: Test Port
|
|
tags: desktop
|
|
type: access
|
|
vlan: 10
|
|
delegate_to: localhost
|
|
register: update_access_port
|
|
|
|
- debug:
|
|
msg: '{{update_access_port}}'
|
|
|
|
- assert:
|
|
that:
|
|
- update_access_port.data.vlan == 10
|
|
|
|
- name: Configure port as trunk
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 8
|
|
enabled: true
|
|
name: Test Port
|
|
type: trunk
|
|
vlan: 10
|
|
allowed_vlans: 10, 100, 200
|
|
delegate_to: localhost
|
|
|
|
- name: Convert trunk port to access
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 8
|
|
enabled: true
|
|
name: Test Port
|
|
type: access
|
|
vlan: 10
|
|
delegate_to: localhost
|
|
|
|
- name: Test converted port for idempotency
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 8
|
|
enabled: true
|
|
name: Test Port
|
|
type: access
|
|
vlan: 10
|
|
delegate_to: localhost
|
|
register: convert_idempotent
|
|
|
|
- assert:
|
|
that:
|
|
- convert_idempotent.changed == False
|
|
|
|
- name: Configure access port with voice VLAN
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 7
|
|
enabled: true
|
|
name: Test Port
|
|
tags: desktop
|
|
type: access
|
|
vlan: 10
|
|
voice_vlan: 11
|
|
delegate_to: localhost
|
|
register: update_port_vvlan
|
|
|
|
- debug:
|
|
msg: '{{update_port_vvlan}}'
|
|
|
|
- assert:
|
|
that:
|
|
- update_port_vvlan.data.voice_vlan == 11
|
|
- update_port_vvlan.changed == True
|
|
|
|
- name: Check access port for idempotenty
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 7
|
|
enabled: true
|
|
name: Test Port
|
|
tags: desktop
|
|
type: access
|
|
vlan: 10
|
|
voice_vlan: 11
|
|
delegate_to: localhost
|
|
register: update_port_access_idempotent
|
|
|
|
- debug:
|
|
msg: '{{update_port_access_idempotent}}'
|
|
|
|
- assert:
|
|
that:
|
|
- update_port_access_idempotent.changed == False
|
|
- update_port_access_idempotent.data is defined
|
|
|
|
- name: Configure trunk port
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 7
|
|
enabled: true
|
|
name: Server port
|
|
tags: server
|
|
type: trunk
|
|
allowed_vlans: all
|
|
vlan: 8
|
|
delegate_to: localhost
|
|
register: update_trunk
|
|
|
|
- debug:
|
|
msg: '{{update_trunk}}'
|
|
|
|
- assert:
|
|
that:
|
|
- update_trunk.data.tags == 'server'
|
|
- update_trunk.data.type == 'trunk'
|
|
- update_trunk.data.allowed_vlans == 'all'
|
|
|
|
- name: Configure trunk port with specific VLANs
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 7
|
|
enabled: true
|
|
name: Server port
|
|
tags: server
|
|
type: trunk
|
|
vlan: 8
|
|
allowed_vlans:
|
|
- 10
|
|
- 15
|
|
- 20
|
|
delegate_to: localhost
|
|
register: update_trunk
|
|
|
|
- debug:
|
|
msg: '{{update_trunk}}'
|
|
|
|
- assert:
|
|
that:
|
|
- update_trunk.data.tags == 'server'
|
|
- update_trunk.data.type == 'trunk'
|
|
- update_trunk.data.allowed_vlans == '8,10,15,20'
|
|
|
|
- name: Configure trunk port with specific VLANs and native VLAN
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 7
|
|
enabled: true
|
|
name: Server port
|
|
tags: server
|
|
type: trunk
|
|
vlan: 2
|
|
allowed_vlans:
|
|
- 10
|
|
- 15
|
|
- 20
|
|
delegate_to: localhost
|
|
register: update_trunk
|
|
|
|
- debug:
|
|
msg: '{{update_trunk}}'
|
|
|
|
- assert:
|
|
that:
|
|
- update_trunk.data.tags == 'server'
|
|
- update_trunk.data.type == 'trunk'
|
|
- update_trunk.data.allowed_vlans == '2,10,15,20'
|
|
|
|
- name: Check for idempotency on trunk port
|
|
meraki_switchport:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
serial: Q2HP-2C6E-GTLD
|
|
number: 7
|
|
enabled: true
|
|
name: Server port
|
|
tags: server
|
|
type: trunk
|
|
vlan: 2
|
|
allowed_vlans:
|
|
- 10
|
|
- 15
|
|
- 20
|
|
delegate_to: localhost
|
|
register: update_trunk_idempotent
|
|
|
|
- debug:
|
|
msg: '{{update_trunk_idempotent}}'
|
|
|
|
- assert:
|
|
that:
|
|
- update_trunk_idempotent.changed == False
|
|
- update_trunk_idempotent.data is defined
|