A static leaf is build from the pod id and leaf id (#55120)

This commit is contained in:
Dag Wieers 2019-04-11 06:03:57 +02:00 committed by GitHub
parent 62f4eb7053
commit b6bf910bf4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -44,6 +44,10 @@ options:
description: description:
- The name of the EPG. - The name of the EPG.
type: str type: str
pod:
description:
- The pod of the static leaf.
type: str
leaf: leaf:
description: description:
- The path of the static leaf. - The path of the static leaf.
@ -140,6 +144,7 @@ def main():
template=dict(type='str', required=True), template=dict(type='str', required=True),
anp=dict(type='str', required=True), anp=dict(type='str', required=True),
epg=dict(type='str', required=True), epg=dict(type='str', required=True),
pod=dict(type='str'), # This parameter is not required for querying all objects
leaf=dict(type='str', aliases=['name']), leaf=dict(type='str', aliases=['name']),
vlan=dict(type='int'), vlan=dict(type='int'),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
@ -149,8 +154,8 @@ def main():
argument_spec=argument_spec, argument_spec=argument_spec,
supports_check_mode=True, supports_check_mode=True,
required_if=[ required_if=[
['state', 'absent', ['leaf', 'vlan']], ['state', 'absent', ['pod', 'leaf', 'vlan']],
['state', 'present', ['leaf', 'vlan']], ['state', 'present', ['pod', 'leaf', 'vlan']],
], ],
) )
@ -159,10 +164,13 @@ def main():
template = module.params['template'] template = module.params['template']
anp = module.params['anp'] anp = module.params['anp']
epg = module.params['epg'] epg = module.params['epg']
pod = module.params['pod']
leaf = module.params['leaf'] leaf = module.params['leaf']
vlan = module.params['vlan'] vlan = module.params['vlan']
state = module.params['state'] state = module.params['state']
leafpath = 'topology/{0}/node-{1}'.format(pod, leaf)
mso = MSOModule(module) mso = MSOModule(module)
# Get schema_id # Get schema_id
@ -202,8 +210,8 @@ def main():
# Get Leaf # Get Leaf
leafs = [(l['path'], l['portEncapVlan']) for l in schema_obj['sites'][site_idx]['anps'][anp_idx]['epgs'][epg_idx]['staticLeafs']] leafs = [(l['path'], l['portEncapVlan']) for l in schema_obj['sites'][site_idx]['anps'][anp_idx]['epgs'][epg_idx]['staticLeafs']]
if (leaf, vlan) in leafs: if (leafpath, vlan) in leafs:
leaf_idx = leafs.index((leaf, vlan)) leaf_idx = leafs.index((leafpath, vlan))
# FIXME: Changes based on index are DANGEROUS # FIXME: Changes based on index are DANGEROUS
leaf_path = '/sites/{0}/anps/{1}/epgs/{2}/staticLeafs/{3}'.format(site_template, anp, epg, leaf_idx) leaf_path = '/sites/{0}/anps/{1}/epgs/{2}/staticLeafs/{3}'.format(site_template, anp, epg, leaf_idx)
mso.existing = schema_obj['sites'][site_idx]['anps'][anp_idx]['epgs'][epg_idx]['staticLeafs'][leaf_idx] mso.existing = schema_obj['sites'][site_idx]['anps'][anp_idx]['epgs'][epg_idx]['staticLeafs'][leaf_idx]
@ -226,7 +234,7 @@ def main():
elif state == 'present': elif state == 'present':
payload = dict( payload = dict(
path=leaf, path=leafpath,
portEncapVlan=vlan, portEncapVlan=vlan,
) )