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 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')