aci_aptiplp: Support missing policy_group

This commit is contained in:
Dag Wieers 2018-11-02 18:37:46 +01:00 committed by Toshio Kuratomi
parent d4152e161d
commit 4fa4d13024

View file

@ -94,7 +94,7 @@ EXAMPLES = r'''
access_port_selector: accessportselectorname
leaf_port_blk: leafportblkname
from_port: 13
toi_port: 16
to_port: 16
policy_group: policygroupname
state: present
delegate_to: localhost
@ -242,6 +242,13 @@ url:
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
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():
argument_spec = aci_argument_spec()
@ -282,6 +289,30 @@ def main():
interface_type = module.params['interface_type']
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.construct_url(
root_class=dict(
@ -300,13 +331,6 @@ def main():
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()
if state == 'present':
@ -317,27 +341,7 @@ def main():
name=access_port_selector,
# type='range',
),
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],
),
),
),
],
child_configs=child_configs,
)
aci.get_diff(aci_class='infraHPortS')