aci_aptiplp: Support missing policy_group
This commit is contained in:
parent
d4152e161d
commit
4fa4d13024
1 changed files with 33 additions and 29 deletions
|
@ -94,7 +94,7 @@ EXAMPLES = r'''
|
||||||
access_port_selector: accessportselectorname
|
access_port_selector: accessportselectorname
|
||||||
leaf_port_blk: leafportblkname
|
leaf_port_blk: leafportblkname
|
||||||
from_port: 13
|
from_port: 13
|
||||||
toi_port: 16
|
to_port: 16
|
||||||
policy_group: policygroupname
|
policy_group: policygroupname
|
||||||
state: present
|
state: present
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
@ -242,6 +242,13 @@ url:
|
||||||
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
|
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
|
||||||
|
INTERFACE_TYPE_MAPPING = dict(
|
||||||
|
fex='uni/infra/funcprof/accportgrp-{0}',
|
||||||
|
port_channel='uni/infra/funcprof/accbundle-{0}',
|
||||||
|
switch_port='uni/infra/funcprof/accportgrp-{0}',
|
||||||
|
vpc='uni/infra/funcprof/accbundle-{0}',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
argument_spec = aci_argument_spec()
|
argument_spec = aci_argument_spec()
|
||||||
|
@ -282,6 +289,30 @@ def main():
|
||||||
interface_type = module.params['interface_type']
|
interface_type = module.params['interface_type']
|
||||||
state = module.params['state']
|
state = module.params['state']
|
||||||
|
|
||||||
|
# Build child_configs dyanmically
|
||||||
|
child_configs = [dict(
|
||||||
|
infraPortBlk=dict(
|
||||||
|
attributes=dict(
|
||||||
|
descr=leaf_port_blk_description,
|
||||||
|
name=leaf_port_blk,
|
||||||
|
fromPort=from_port,
|
||||||
|
toPort=to_port,
|
||||||
|
fromCard=from_card,
|
||||||
|
toCard=to_card,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)]
|
||||||
|
|
||||||
|
# Add infraRsAccBaseGrp only when policy_group was defined
|
||||||
|
if policy_group is not None:
|
||||||
|
child_configs.append(dict(
|
||||||
|
infraRsAccBaseGrp=dict(
|
||||||
|
attributes=dict(
|
||||||
|
tDn=INTERFACE_TYPE_MAPPING[interface_type].format(policy_group),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
))
|
||||||
|
|
||||||
aci = ACIModule(module)
|
aci = ACIModule(module)
|
||||||
aci.construct_url(
|
aci.construct_url(
|
||||||
root_class=dict(
|
root_class=dict(
|
||||||
|
@ -300,13 +331,6 @@ def main():
|
||||||
child_classes=['infraPortBlk', 'infraRsAccBaseGrp'],
|
child_classes=['infraPortBlk', 'infraRsAccBaseGrp'],
|
||||||
)
|
)
|
||||||
|
|
||||||
INTERFACE_TYPE_MAPPING = dict(
|
|
||||||
fex='uni/infra/funcprof/accportgrp-{0}'.format(policy_group),
|
|
||||||
port_channel='uni/infra/funcprof/accbundle-{0}'.format(policy_group),
|
|
||||||
switch_port='uni/infra/funcprof/accportgrp-{0}'.format(policy_group),
|
|
||||||
vpc='uni/infra/funcprof/accbundle-{0}'.format(policy_group),
|
|
||||||
)
|
|
||||||
|
|
||||||
aci.get_existing()
|
aci.get_existing()
|
||||||
|
|
||||||
if state == 'present':
|
if state == 'present':
|
||||||
|
@ -317,27 +341,7 @@ def main():
|
||||||
name=access_port_selector,
|
name=access_port_selector,
|
||||||
# type='range',
|
# type='range',
|
||||||
),
|
),
|
||||||
child_configs=[
|
child_configs=child_configs,
|
||||||
dict(
|
|
||||||
infraPortBlk=dict(
|
|
||||||
attributes=dict(
|
|
||||||
descr=leaf_port_blk_description,
|
|
||||||
name=leaf_port_blk,
|
|
||||||
fromPort=from_port,
|
|
||||||
toPort=to_port,
|
|
||||||
fromCard=from_card,
|
|
||||||
toCard=to_card,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
dict(
|
|
||||||
infraRsAccBaseGrp=dict(
|
|
||||||
attributes=dict(
|
|
||||||
tDn=INTERFACE_TYPE_MAPPING[interface_type],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
aci.get_diff(aci_class='infraHPortS')
|
aci.get_diff(aci_class='infraHPortS')
|
||||||
|
|
Loading…
Reference in a new issue