273 lines
6.4 KiB
YAML
273 lines
6.4 KiB
YAML
# Test code for the Meraki Webhook module
|
|
# Copyright: (c) 2019, 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 test network
|
|
meraki_network:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
type: appliance
|
|
|
|
- name: Create webhook with check mode
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
name: Test_Hook
|
|
url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244
|
|
shared_secret: shhhdonttellanyone
|
|
check_mode: yes
|
|
register: create_one_check
|
|
|
|
- debug:
|
|
var: create_one_check
|
|
|
|
- assert:
|
|
that:
|
|
- create_one_check is changed
|
|
- create_one_check.data is defined
|
|
|
|
- name: Create webhook
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
name: Test_Hook
|
|
url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244
|
|
shared_secret: shhhdonttellanyone
|
|
register: create_one
|
|
|
|
- debug:
|
|
var: create_one
|
|
|
|
- assert:
|
|
that:
|
|
- create_one is changed
|
|
- create_one.data is defined
|
|
|
|
- set_fact:
|
|
webhook_id: '{{create_one.data.id}}'
|
|
|
|
- name: Query one webhook
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: query
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
name: Test_Hook
|
|
register: query_one
|
|
|
|
- debug:
|
|
var: query_one
|
|
|
|
- assert:
|
|
that:
|
|
- query_one.data is defined
|
|
|
|
- name: Query one webhook with id
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: query
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
webhook_id: '{{webhook_id}}'
|
|
register: query_one_id
|
|
|
|
- debug:
|
|
var: query_one_id
|
|
|
|
- assert:
|
|
that:
|
|
- query_one_id.data is defined
|
|
|
|
- name: Update webhook with check mode
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
name: Test_Hook
|
|
url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244
|
|
shared_secret: shhhdonttellanyonehere
|
|
check_mode: yes
|
|
register: update_check
|
|
|
|
- assert:
|
|
that:
|
|
- update_check is changed
|
|
- update_check.data is defined
|
|
|
|
- name: Update webhook
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
name: Test_Hook
|
|
url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244
|
|
shared_secret: shhhdonttellanyonehere
|
|
register: update
|
|
|
|
- debug:
|
|
var: update
|
|
|
|
- assert:
|
|
that:
|
|
- update is changed
|
|
- update.data is defined
|
|
|
|
- name: Update webhook with idempotency
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
name: Test_Hook
|
|
url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244
|
|
shared_secret: shhhdonttellanyonehere
|
|
register: update_idempotent
|
|
|
|
- debug:
|
|
var: update_idempotent
|
|
|
|
- assert:
|
|
that:
|
|
- update_idempotent is not changed
|
|
- update_idempotent.data is defined
|
|
|
|
- name: Update webhook with id
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
webhook_id: '{{webhook_id}}'
|
|
name: Test_Hook
|
|
url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244
|
|
shared_secret: shhhdonttellanyonehereid
|
|
register: update_id
|
|
|
|
- debug:
|
|
var: update_id
|
|
|
|
- assert:
|
|
that:
|
|
- update_id is changed
|
|
- update_id.data is defined
|
|
|
|
- name: Test webhook
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
test: test
|
|
url: https://webhook.site/8eb5b76f-b167-4cb8-9fc4-42621b724244
|
|
register: webhook_test
|
|
|
|
- debug:
|
|
var: webhook_test
|
|
|
|
- set_fact:
|
|
test_id: '{{webhook_test.data.id}}'
|
|
|
|
- name: Get webhook status
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: present
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
test: status
|
|
test_id: '{{test_id}}'
|
|
register: webhook_test_status
|
|
|
|
- debug:
|
|
var: webhook_test_status
|
|
|
|
- assert:
|
|
that:
|
|
- webhook_test_status.data is defined
|
|
|
|
- name: Query all webhooks
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: query
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
register: query_all
|
|
|
|
- debug:
|
|
var: query_all
|
|
|
|
- name: Delete webhook invalid webhook
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: absent
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
name: Test_Hook_Invalid
|
|
check_mode: yes
|
|
register: delete_invalid
|
|
ignore_errors: yes
|
|
|
|
- debug:
|
|
var: delete_invalid
|
|
|
|
- assert:
|
|
that:
|
|
- 'delete_invalid.msg == "There is no webhook with the name Test_Hook_Invalid"'
|
|
|
|
- name: Delete webhook in check mode
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: absent
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
name: Test_Hook
|
|
check_mode: yes
|
|
register: delete_check
|
|
|
|
- debug:
|
|
var: delete_check
|
|
|
|
- assert:
|
|
that:
|
|
- delete_check is changed
|
|
|
|
- name: Delete webhook
|
|
meraki_webhook:
|
|
auth_key: '{{auth_key}}'
|
|
state: absent
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|
|
name: Test_Hook
|
|
register: delete
|
|
|
|
- debug:
|
|
var: delete
|
|
|
|
- assert:
|
|
that:
|
|
- delete is changed
|
|
|
|
always:
|
|
#############################################################################
|
|
# Tear down starts here
|
|
#############################################################################
|
|
- name: Delete test network
|
|
meraki_network:
|
|
auth_key: '{{auth_key}}'
|
|
state: absent
|
|
org_name: '{{test_org_name}}'
|
|
net_name: '{{test_net_name}}'
|