meraki - Enabled support for configuration template configuration (#42392)
* Enabled support for configuration template configuration - get_nets() now pulls down templates and networks - A few changes in VLAN and network to operate as a POC * Ansibot changes - Fix undefined variable - Document net_id in meraki_vlan * Fix indentation
This commit is contained in:
parent
779f3c0c1a
commit
9036f846a3
4 changed files with 66 additions and 2 deletions
|
@ -206,6 +206,9 @@ class MerakiModule(object):
|
|||
if self.status != 200:
|
||||
self.fail_json(msg='Network lookup failed')
|
||||
self.nets = self.request(path, method='GET')
|
||||
templates = self.get_config_templates(org_id)
|
||||
for t in templates:
|
||||
self.nets.append(t)
|
||||
return self.nets
|
||||
|
||||
def get_net(self, org_name, net_name, data=None):
|
||||
|
@ -236,6 +239,19 @@ class MerakiModule(object):
|
|||
return n['id']
|
||||
self.fail_json(msg='No network found with the name {0}'.format(net_name))
|
||||
|
||||
def get_config_templates(self, org_id):
|
||||
path = self.construct_path('get_all', function='configTemplates', org_id=org_id)
|
||||
response = self.request(path, 'GET')
|
||||
if self.status != 200:
|
||||
self.fail_json(msg='Unable to get configuration templates')
|
||||
return response
|
||||
|
||||
def get_template_id(self, name, data):
|
||||
for template in data:
|
||||
if name == template['name']:
|
||||
return template['id']
|
||||
self.fail_json(msg='No configuration template named {0} found'.format(name))
|
||||
|
||||
def construct_path(self, action, function=None, org_id=None, net_id=None, org_name=None):
|
||||
"""Build a path from the URL catalog.
|
||||
|
||||
|
|
|
@ -31,8 +31,11 @@ options:
|
|||
default: query
|
||||
net_name:
|
||||
description:
|
||||
- Name of network which VLAN is or should be in.
|
||||
- Name of network which VLAN is in or should be in.
|
||||
aliases: [network]
|
||||
net_id:
|
||||
description:
|
||||
- ID of network which VLAN is in or should be in.
|
||||
vlan_id:
|
||||
description:
|
||||
- ID number of VLAN.
|
||||
|
@ -200,6 +203,7 @@ def main():
|
|||
argument_spec = meraki_argument_spec()
|
||||
argument_spec.update(state=dict(type='str', choices=['absent', 'present', 'query'], default='query'),
|
||||
net_name=dict(type='str', aliases=['network']),
|
||||
net_id=dict(type='str'),
|
||||
vlan_id=dict(type='int'),
|
||||
name=dict(type='str', aliases=['vlan_name']),
|
||||
subnet=dict(type='str'),
|
||||
|
@ -243,7 +247,10 @@ def main():
|
|||
|
||||
payload = None
|
||||
|
||||
nets = temp_get_nets(meraki, meraki.params['org_name'])
|
||||
org_id = meraki.params['org_id']
|
||||
if org_id is None:
|
||||
org_id = meraki.get_org_id(meraki.params['org_name'])
|
||||
nets = meraki.get_nets(org_id=org_id)
|
||||
net_id = None
|
||||
if meraki.params['net_name']:
|
||||
net_id = meraki.get_net_id(net_name=meraki.params['net_name'], data=nets)
|
||||
|
|
|
@ -169,6 +169,15 @@
|
|||
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 }}'
|
||||
|
@ -182,6 +191,7 @@
|
|||
assert:
|
||||
that:
|
||||
- 'net_query_one.data.name == "IntTestNetworkSwitch"'
|
||||
- 'query_config_template.data.name == "DevConfigTemplate"'
|
||||
|
||||
|
||||
#############################################################################
|
||||
|
|
|
@ -66,6 +66,24 @@
|
|||
- create_vlan.data.id == 2
|
||||
- create_vlan.changed == True
|
||||
|
||||
- name: Create VLAN in template configuration
|
||||
meraki_vlan:
|
||||
auth_key: '{{auth_key}}'
|
||||
state: present
|
||||
org_name: '{{test_org_name}}'
|
||||
net_name: '{{test_template_name}}'
|
||||
vlan_id: 2
|
||||
name: TestVLAN
|
||||
subnet: 192.168.250.0/24
|
||||
appliance_ip: 192.168.250.1
|
||||
delegate_to: localhost
|
||||
register: create_vlan_template
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- create_vlan_template.data.id == 2
|
||||
- create_vlan_template.changed == True
|
||||
|
||||
- name: Update VLAN
|
||||
meraki_vlan:
|
||||
auth_key: '{{auth_key}}'
|
||||
|
@ -305,3 +323,16 @@
|
|||
|
||||
- debug:
|
||||
msg: '{{delete_vlan}}'
|
||||
|
||||
- name: Delete VLAN using template ID
|
||||
meraki_vlan:
|
||||
auth_key: '{{auth_key}}'
|
||||
state: absent
|
||||
org_name: '{{test_org_name}}'
|
||||
net_id: '{{test_template_id}}'
|
||||
vlan_id: 2
|
||||
delegate_to: localhost
|
||||
register: delete_vlan_template
|
||||
|
||||
- debug:
|
||||
msg: '{{delete_vlan_template}}'
|
||||
|
|
Loading…
Reference in a new issue