ACI: Various changes and doc updates (#52957)

* ACI: Various changes and doc updates

* Fix typos
pull/52988/head
Dag Wieers 6 years ago committed by GitHub
parent bf3c291606
commit 076562e5c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -17,19 +17,6 @@ module: aci_aaa_user
short_description: Manage AAA users (aaa:User) short_description: Manage AAA users (aaa:User)
description: description:
- Manage AAA users on Cisco ACI fabrics. - Manage AAA users on Cisco ACI fabrics.
notes:
- This module is not idempotent when C(aaa_password) is being used
(even if that password was already set identically). This
appears to be an inconsistency wrt. the idempotent nature
of the APIC REST API. The vendor has been informed.
More information in :ref:`the ACI documentation <aci_guide_known_issues>`.
seealso:
- module: aci_aaa_user_certificate
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(aaa:User).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
requirements: requirements:
- python-dateutil - python-dateutil
version_added: '2.5' version_added: '2.5'
@ -96,6 +83,19 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- This module is not idempotent when C(aaa_password) is being used
(even if that password was already set identically). This
appears to be an inconsistency wrt. the idempotent nature
of the APIC REST API. The vendor has been informed.
More information in :ref:`the ACI documentation <aci_guide_known_issues>`.
seealso:
- module: aci_aaa_user_certificate
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(aaa:User).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -249,9 +249,6 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
from ansible.module_utils.basic import AnsibleModule
try: try:
from dateutil.tz import tzutc from dateutil.tz import tzutc
import dateutil.parser import dateutil.parser
@ -259,6 +256,9 @@ try:
except ImportError: except ImportError:
HAS_DATEUTIL = False HAS_DATEUTIL = False
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
@ -266,7 +266,7 @@ def main():
aaa_password=dict(type='str', no_log=True), aaa_password=dict(type='str', no_log=True),
aaa_password_lifetime=dict(type='int'), aaa_password_lifetime=dict(type='int'),
aaa_password_update_required=dict(type='bool'), aaa_password_update_required=dict(type='bool'),
aaa_user=dict(type='str', required=True, aliases=['name']), # Not required for querying all objects aaa_user=dict(type='str', aliases=['name']), # Not required for querying all objects
clear_password_history=dict(type='bool'), clear_password_history=dict(type='bool'),
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
email=dict(type='str'), email=dict(type='str'),

@ -17,16 +17,6 @@ module: aci_aaa_user_certificate
short_description: Manage AAA user certificates (aaa:UserCert) short_description: Manage AAA user certificates (aaa:UserCert)
description: description:
- Manage AAA user certificates on Cisco ACI fabrics. - Manage AAA user certificates on Cisco ACI fabrics.
notes:
- The C(aaa_user) must exist before using this module in your playbook.
The M(aci_aaa_user) module can be used for this.
seealso:
- module: aci_aaa_user
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(aaa:UserCert).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.5' version_added: '2.5'
options: options:
aaa_user: aaa_user:
@ -58,6 +48,16 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(aaa_user) must exist before using this module in your playbook.
The M(aci_aaa_user) module can be used for this.
seealso:
- module: aci_aaa_user
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(aaa:UserCert).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -209,8 +209,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
ACI_MAPPING = dict( ACI_MAPPING = dict(
appuser=dict( appuser=dict(
@ -227,9 +227,9 @@ ACI_MAPPING = dict(
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
aaa_user=dict(type='str', required=True), # Not required for querying all objects aaa_user=dict(type='str', required=True),
aaa_user_type=dict(type='str', default='user', choices=['appuser', 'user']), aaa_user_type=dict(type='str', default='user', choices=['appuser', 'user']),
certificate=dict(type='str', aliases=['cert_data', 'certificate_data']), # Not required for querying all objects certificate=dict(type='str', aliases=['cert_data', 'certificate_data']),
certificate_name=dict(type='str', aliases=['cert_name']), # Not required for querying all objects certificate_name=dict(type='str', aliases=['cert_name']), # Not required for querying all objects
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )

@ -17,12 +17,6 @@ module: aci_access_port_block_to_access_port
short_description: Manage port blocks of Fabric interface policy leaf profile interface selectors (infra:HPortS, infra:PortBlk) short_description: Manage port blocks of Fabric interface policy leaf profile interface selectors (infra:HPortS, infra:PortBlk)
description: description:
- Manage port blocks of Fabric interface policy leaf profile interface selectors on Cisco ACI fabrics. - Manage port blocks of Fabric interface policy leaf profile interface selectors on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(infra:HPortS) and B(infra:PortBlk).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Simon Metzger (@smnmtzgr)
version_added: '2.8' version_added: '2.8'
options: options:
leaf_interface_profile: leaf_interface_profile:
@ -76,6 +70,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(infra:HPortS) and B(infra:PortBlk).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Simon Metzger (@smnmtzgr)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -255,8 +255,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
@ -266,8 +266,8 @@ def main():
access_port_selector=dict(type='str', aliases=['name', 'access_port_selector_name']), # Not required for querying all objects access_port_selector=dict(type='str', aliases=['name', 'access_port_selector_name']), # Not required for querying all objects
leaf_port_blk=dict(type='str', aliases=['leaf_port_blk_name']), # Not required for querying all objects leaf_port_blk=dict(type='str', aliases=['leaf_port_blk_name']), # Not required for querying all objects
leaf_port_blk_description=dict(type='str'), leaf_port_blk_description=dict(type='str'),
from_port=dict(type='str', aliases=['from', 'fromPort', 'from_port_range']), # Not required for querying all objects and deleting port blocks from_port=dict(type='str', aliases=['from', 'fromPort', 'from_port_range']),
to_port=dict(type='str', aliases=['to', 'toPort', 'to_port_range']), # Not required for querying all objects and deleting port blocks to_port=dict(type='str', aliases=['to', 'toPort', 'to_port_range']),
from_card=dict(type='str', aliases=['from_card_range']), from_card=dict(type='str', aliases=['from_card_range']),
to_card=dict(type='str', aliases=['to_card_range']), to_card=dict(type='str', aliases=['to_card_range']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),

@ -17,12 +17,6 @@ module: aci_access_port_to_interface_policy_leaf_profile
short_description: Manage Fabric interface policy leaf profile interface selectors (infra:HPortS, infra:RsAccBaseGrp, infra:PortBlk) short_description: Manage Fabric interface policy leaf profile interface selectors (infra:HPortS, infra:RsAccBaseGrp, infra:PortBlk)
description: description:
- Manage Fabric interface policy leaf profile interface selectors on Cisco ACI fabrics. - Manage Fabric interface policy leaf profile interface selectors on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(infra:HPortS), B(infra:RsAccBaseGrp) and B(infra:PortBlk).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
version_added: '2.5' version_added: '2.5'
options: options:
leaf_interface_profile: leaf_interface_profile:
@ -119,6 +113,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(infra:HPortS), B(infra:RsAccBaseGrp) and B(infra:PortBlk).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -276,8 +276,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
INTERFACE_TYPE_MAPPING = dict( INTERFACE_TYPE_MAPPING = dict(
breakout='uni/infra/funcprof/brkoutportgrp-{0}', breakout='uni/infra/funcprof/brkoutportgrp-{0}',

@ -17,12 +17,6 @@ short_description: Manage attachable Access Entity Profile (AEP) objects (infra:
description: description:
- Connect to external virtual and physical domains by using - Connect to external virtual and physical domains by using
attachable Access Entity Profiles (AEP) on Cisco ACI fabrics. attachable Access Entity Profiles (AEP) on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(infra:AttEntityP) and B(infra:ProvAcc).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Swetha Chunduri (@schunduri)
version_added: '2.4' version_added: '2.4'
options: options:
aep: aep:
@ -52,6 +46,12 @@ options:
default: present default: present
choices: [ absent, present, query ] choices: [ absent, present, query ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(infra:AttEntityP) and B(infra:ProvAcc).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Swetha Chunduri (@schunduri)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -199,8 +199,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():

@ -17,17 +17,6 @@ module: aci_aep_to_domain
short_description: Bind AEPs to Physical or Virtual Domains (infra:RsDomP) short_description: Bind AEPs to Physical or Virtual Domains (infra:RsDomP)
description: description:
- Bind AEPs to Physical or Virtual Domains on Cisco ACI fabrics. - Bind AEPs to Physical or Virtual Domains on Cisco ACI fabrics.
notes:
- The C(aep) and C(domain) parameters should exist before using this module.
The M(aci_aep) and M(aci_domain) can be used for these.
seealso:
- module: aci_aep
- module: aci_domain
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:RsDomP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.5' version_added: '2.5'
options: options:
aep: aep:
@ -61,6 +50,17 @@ options:
type: str type: str
choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ] choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(aep) and C(domain) parameters should exist before using this module.
The M(aci_aep) and M(aci_domain) can be used for these.
seealso:
- module: aci_aep
- module: aci_domain
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:RsDomP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -213,8 +213,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
VM_PROVIDER_MAPPING = dict( VM_PROVIDER_MAPPING = dict(
cloudfoundry='CloudFoundry', cloudfoundry='CloudFoundry',

@ -16,17 +16,6 @@ module: aci_ap
short_description: Manage top level Application Profile (AP) objects (fv:Ap) short_description: Manage top level Application Profile (AP) objects (fv:Ap)
description: description:
- Manage top level Application Profile (AP) objects on Cisco ACI fabrics - Manage top level Application Profile (AP) objects on Cisco ACI fabrics
notes:
- This module does not manage EPGs, see M(aci_epg) to do this.
- The used C(tenant) must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:Ap).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Swetha Chunduri (@schunduri)
version_added: '2.4' version_added: '2.4'
options: options:
tenant: tenant:
@ -54,6 +43,17 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- This module does not manage EPGs, see M(aci_epg) to do this.
- The used C(tenant) must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:Ap).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Swetha Chunduri (@schunduri)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -204,8 +204,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
@ -213,7 +213,7 @@ def main():
argument_spec.update( argument_spec.update(
tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
ap=dict(type='str', aliases=['app_profile', 'app_profile_name', 'name']), # Not required for querying all objects ap=dict(type='str', aliases=['app_profile', 'app_profile_name', 'name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr'], required=False), description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )

@ -16,16 +16,6 @@ module: aci_bd
short_description: Manage Bridge Domains (BD) objects (fv:BD) short_description: Manage Bridge Domains (BD) objects (fv:BD)
description: description:
- Manages Bridge Domains (BD) on Cisco ACI fabrics. - Manages Bridge Domains (BD) on Cisco ACI fabrics.
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:BD).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
arp_flooding: arp_flooding:
@ -144,6 +134,16 @@ options:
type: str type: str
aliases: [ vrf_name ] aliases: [ vrf_name ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:BD).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -326,8 +326,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():

@ -16,19 +16,6 @@ module: aci_bd_subnet
short_description: Manage Subnets (fv:Subnet) short_description: Manage Subnets (fv:Subnet)
description: description:
- Manage Subnets on Cisco ACI fabrics. - Manage Subnets on Cisco ACI fabrics.
notes:
- The C(gateway) parameter is the root key used to access the Subnet (not name), so the C(gateway)
is required when the state is C(absent) or C(present).
- The C(tenant) and C(bd) used must exist before using this module in your playbook.
The M(aci_tenant) module and M(aci_bd) can be used for these.
seealso:
- module: aci_bd
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:Subnet).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
bd: bd:
@ -118,6 +105,19 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(gateway) parameter is the root key used to access the Subnet (not name), so the C(gateway)
is required when the state is C(absent) or C(present).
- The C(tenant) and C(bd) used must exist before using this module in your playbook.
The M(aci_tenant) module and M(aci_bd) can be used for these.
seealso:
- module: aci_bd
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:Subnet).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -333,11 +333,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
SUBNET_CONTROL_MAPPING = dict(nd_ra='nd', no_gw='no-default-gateway', querier_ip='querier', unspecified='')
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
SUBNET_CONTROL_MAPPING = dict(
nd_ra='nd',
no_gw='no-default-gateway',
querier_ip='querier',
unspecified='',
)
def main(): def main():

@ -16,17 +16,6 @@ module: aci_bd_to_l3out
short_description: Bind Bridge Domain to L3 Out (fv:RsBDToOut) short_description: Bind Bridge Domain to L3 Out (fv:RsBDToOut)
description: description:
- Bind Bridge Domain to L3 Out on Cisco ACI fabrics. - Bind Bridge Domain to L3 Out on Cisco ACI fabrics.
notes:
- The C(bd) and C(l3out) parameters should exist before using this module.
The M(aci_bd) and C(aci_l3out) can be used for these.
seealso:
- module: aci_bd
- module: aci_l3out
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:RsBDToOut).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
bd: bd:
@ -51,6 +40,17 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(bd) and C(l3out) parameters should exist before using this module.
The M(aci_bd) and C(aci_l3out) can be used for these.
seealso:
- module: aci_bd
- module: aci_l3out
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:RsBDToOut).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' # ''' EXAMPLES = r''' # '''
@ -160,11 +160,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
SUBNET_CONTROL_MAPPING = dict(nd_ra='nd', no_gw='no-default-gateway', querier_ip='querier', unspecified='')
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
SUBNET_CONTROL_MAPPING = dict(
nd_ra='nd',
no_gw='no-default-gateway',
querier_ip='querier',
unspecified='',
)
def main(): def main():
@ -172,8 +176,8 @@ def main():
argument_spec.update( argument_spec.update(
bd=dict(type='str', aliases=['bd_name', 'bridge_domain']), # Not required for querying all objects bd=dict(type='str', aliases=['bd_name', 'bridge_domain']), # Not required for querying all objects
l3out=dict(type='str'), # Not required for querying all objects l3out=dict(type='str'), # Not required for querying all objects
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )
module = AnsibleModule( module = AnsibleModule(

@ -17,13 +17,6 @@ short_description: Provides rollback and rollback preview functionality (config:
description: description:
- Provides rollback and rollback preview functionality for Cisco ACI fabrics. - Provides rollback and rollback preview functionality for Cisco ACI fabrics.
- Config Rollbacks are done using snapshots C(aci_snapshot) with the configImportP class. - Config Rollbacks are done using snapshots C(aci_snapshot) with the configImportP class.
seealso:
- module: aci_config_snapshot
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(config:ImportP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
compare_export_policy: compare_export_policy:
@ -79,6 +72,13 @@ options:
choices: [ preview, rollback ] choices: [ preview, rollback ]
default: rollback default: rollback
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- module: aci_config_snapshot
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(config:ImportP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''

@ -18,17 +18,6 @@ description:
- Manage Config Snapshots on Cisco ACI fabrics. - Manage Config Snapshots on Cisco ACI fabrics.
- Creating new Snapshots is done using the configExportP class. - Creating new Snapshots is done using the configExportP class.
- Removing Snapshots is done using the configSnapshot class. - Removing Snapshots is done using the configSnapshot class.
notes:
- The APIC does not provide a mechanism for naming the snapshots.
- 'Snapshot files use the following naming structure: ce_<config export policy name>-<yyyy>-<mm>-<dd>T<hh>:<mm>:<ss>.<mss>+<hh>:<mm>.'
- 'Snapshot objects use the following naming structure: run-<yyyy>-<mm>-<dd>T<hh>-<mm>-<ss>.'
seealso:
- module: aci_config_rollback
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(config:Snapshot) and B(config:ExportP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
description: description:
@ -70,6 +59,17 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The APIC does not provide a mechanism for naming the snapshots.
- 'Snapshot files use the following naming structure: ce_<config export policy name>-<yyyy>-<mm>-<dd>T<hh>:<mm>:<ss>.<mss>+<hh>:<mm>.'
- 'Snapshot objects use the following naming structure: run-<yyyy>-<mm>-<dd>T<hh>-<mm>-<ss>.'
seealso:
- module: aci_config_rollback
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(config:Snapshot) and B(config:ExportP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -219,8 +219,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():

@ -16,19 +16,6 @@ module: aci_contract
short_description: Manage contract resources (vz:BrCP) short_description: Manage contract resources (vz:BrCP)
description: description:
- Manage Contract resources on Cisco ACI fabrics. - Manage Contract resources on Cisco ACI fabrics.
notes:
- This module does not manage Contract Subjects, see M(aci_contract_subject) to do this.
Contract Subjects can still be removed using this module.
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_contract_subject
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:BrCP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
contract: contract:
@ -75,6 +62,19 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- This module does not manage Contract Subjects, see M(aci_contract_subject) to do this.
Contract Subjects can still be removed using this module.
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_contract_subject
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:BrCP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -226,15 +226,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
contract=dict(type='str', required=False, aliases=['contract_name', 'name']), # Not required for querying all objects contract=dict(type='str', aliases=['contract_name', 'name']), # Not required for querying all objects
tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
scope=dict(type='str', choices=['application-profile', 'context', 'global', 'tenant']), scope=dict(type='str', choices=['application-profile', 'context', 'global', 'tenant']),
priority=dict(type='str', choices=['level1', 'level2', 'level3', 'unspecified']), # No default provided on purpose priority=dict(type='str', choices=['level1', 'level2', 'level3', 'unspecified']), # No default provided on purpose

@ -16,17 +16,6 @@ module: aci_contract_subject
short_description: Manage initial Contract Subjects (vz:Subj) short_description: Manage initial Contract Subjects (vz:Subj)
description: description:
- Manage initial Contract Subjects on Cisco ACI fabrics. - Manage initial Contract Subjects on Cisco ACI fabrics.
notes:
- The C(tenant) and C(contract) used must exist before using this module in your playbook.
The M(aci_tenant) and M(aci_contract) modules can be used for this.
seealso:
- module: aci_contract
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:Subj).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Swetha Chunduri (@schunduri)
version_added: '2.4' version_added: '2.4'
options: options:
tenant: tenant:
@ -89,6 +78,17 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) and C(contract) used must exist before using this module in your playbook.
The M(aci_tenant) and M(aci_contract) modules can be used for this.
seealso:
- module: aci_contract
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:Subj).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Swetha Chunduri (@schunduri)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -245,10 +245,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
MATCH_MAPPING = dict(all='All', at_least_one='AtleastOne', at_most_one='AtmostOne', none='None') MATCH_MAPPING = dict(
all='All',
at_least_one='AtleastOne',
at_most_one='AtmostOne',
none='None',
)
def main(): def main():

@ -16,19 +16,6 @@ module: aci_contract_subject_to_filter
short_description: Bind Contract Subjects to Filters (vz:RsSubjFiltAtt) short_description: Bind Contract Subjects to Filters (vz:RsSubjFiltAtt)
description: description:
- Bind Contract Subjects to Filters on Cisco ACI fabrics. - Bind Contract Subjects to Filters on Cisco ACI fabrics.
notes:
- The C(tenant), C(contract), C(subject), and C(filter_name) must exist before using this module in your playbook.
The M(aci_tenant), M(aci_contract), M(aci_contract_subject), and M(aci_filter) modules can be used for these.
seealso:
- module: aci_tenant
- module: aci_contract
- module: aci_contract_subject
- module: aci_filter
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:RsSubjFiltAtt).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
contract: contract:
@ -67,6 +54,19 @@ options:
required: yes required: yes
aliases: [ tenant_name ] aliases: [ tenant_name ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant), C(contract), C(subject), and C(filter_name) must exist before using this module in your playbook.
The M(aci_tenant), M(aci_contract), M(aci_contract_subject), and M(aci_filter) modules can be used for these.
seealso:
- module: aci_tenant
- module: aci_contract
- module: aci_contract_subject
- module: aci_filter
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:RsSubjFiltAtt).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -227,8 +227,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
@ -236,9 +236,9 @@ def main():
argument_spec.update( argument_spec.update(
contract=dict(type='str', aliases=['contract_name']), # Not required for querying all objects contract=dict(type='str', aliases=['contract_name']), # Not required for querying all objects
filter=dict(type='str', aliases=['filter_name']), # Not required for querying all objects filter=dict(type='str', aliases=['filter_name']), # Not required for querying all objects
log=dict(tyep='str', choices=['log', 'none'], aliases=['directive']),
subject=dict(type='str', aliases=['contract_subject', 'subject_name']), # Not required for querying all objects subject=dict(type='str', aliases=['contract_subject', 'subject_name']), # Not required for querying all objects
tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
log=dict(tyep='str', choices=['log', 'none'], aliases=['directive']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )

@ -16,13 +16,6 @@ module: aci_domain
short_description: Manage physical, virtual, bridged, routed or FC domain profiles (phys:DomP, vmm:DomP, l2ext:DomP, l3ext:DomP, fc:DomP) short_description: Manage physical, virtual, bridged, routed or FC domain profiles (phys:DomP, vmm:DomP, l2ext:DomP, l3ext:DomP, fc:DomP)
description: description:
- Manage physical, virtual, bridged, routed or FC domain profiles on Cisco ACI fabrics. - Manage physical, virtual, bridged, routed or FC domain profiles on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(phys:DomP),
B(vmm:DomP), B(l2ext:DomP), B(l3ext:DomP) and B(fc:DomP)
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.5' version_added: '2.5'
options: options:
domain: domain:
@ -78,6 +71,13 @@ options:
type: str type: str
choices: [ avs, default, dvs, unknown ] choices: [ avs, default, dvs, unknown ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(phys:DomP),
B(vmm:DomP), B(l2ext:DomP), B(l3ext:DomP) and B(fc:DomP)
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -260,6 +260,7 @@ VM_PROVIDER_MAPPING = dict(
redhat='Redhat', redhat='Redhat',
vmware='VMware', vmware='VMware',
) )
VSWITCH_MAPPING = dict( VSWITCH_MAPPING = dict(
avs='n1kv', avs='n1kv',
default='default', default='default',
@ -271,12 +272,12 @@ VSWITCH_MAPPING = dict(
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
domain_type=dict(type='str', required=True, choices=['fc', 'l2dom', 'l3dom', 'phys', 'vmm'], aliases=['type']),
domain=dict(type='str', aliases=['domain_name', 'domain_profile', 'name']), # Not required for querying all objects
dscp=dict(type='str', dscp=dict(type='str',
choices=['AF11', 'AF12', 'AF13', 'AF21', 'AF22', 'AF23', 'AF31', 'AF32', 'AF33', 'AF41', 'AF42', 'AF43', choices=['AF11', 'AF12', 'AF13', 'AF21', 'AF22', 'AF23', 'AF31', 'AF32', 'AF33', 'AF41', 'AF42', 'AF43',
'CS0', 'CS1', 'CS2', 'CS3', 'CS4', 'CS5', 'CS6', 'CS7', 'EF', 'VA', 'unspecified'], 'CS0', 'CS1', 'CS2', 'CS3', 'CS4', 'CS5', 'CS6', 'CS7', 'EF', 'VA', 'unspecified'],
aliases=['target']), aliases=['target']),
domain=dict(type='str', aliases=['domain_name', 'domain_profile', 'name']), # Not required for querying all objects
domain_type=dict(type='str', required=True, choices=['fc', 'l2dom', 'l3dom', 'phys', 'vmm'], aliases=['type']), # Not required for querying all objects
encap_mode=dict(type='str', choices=['unknown', 'vlan', 'vxlan']), encap_mode=dict(type='str', choices=['unknown', 'vlan', 'vxlan']),
multicast_address=dict(type='str'), multicast_address=dict(type='str'),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),

@ -20,14 +20,6 @@ description:
notes: notes:
- The C(domain) and C(encap_pool) parameters should exist before using this module. - The C(domain) and C(encap_pool) parameters should exist before using this module.
The M(aci_domain) and M(aci_encap_pool) can be used for these. The M(aci_domain) and M(aci_encap_pool) can be used for these.
seealso:
- module: aci_domain
- module: aci_encap_pool
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:RsVlanNs).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.5' version_added: '2.5'
options: options:
domain: domain:
@ -73,6 +65,14 @@ options:
type: str type: str
choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ] choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- module: aci_domain
- module: aci_encap_pool
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:RsVlanNs).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -233,8 +233,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
VM_PROVIDER_MAPPING = dict( VM_PROVIDER_MAPPING = dict(
cloudfoundry='CloudFoundry', cloudfoundry='CloudFoundry',
@ -265,11 +265,11 @@ POOL_MAPPING = dict(
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
domain=dict(type='str', aliases=['domain_name', 'domain_profile']), domain_type=dict(type='str', required=True, choices=['fc', 'l2dom', 'l3dom', 'phys', 'vmm']),
domain_type=dict(type='str', choices=['fc', 'l2dom', 'l3dom', 'phys', 'vmm']),
pool=dict(type='str', aliases=['pool_name']),
pool_allocation_mode=dict(type='str', aliases=['allocation_mode', 'mode'], choices=['dynamic', 'static']),
pool_type=dict(type='str', required=True, choices=['vlan', 'vsan', 'vxlan']), pool_type=dict(type='str', required=True, choices=['vlan', 'vsan', 'vxlan']),
domain=dict(type='str', aliases=['domain_name', 'domain_profile']), # Not required for querying all objects
pool=dict(type='str', aliases=['pool_name']), # Not required for querying all objects
pool_allocation_mode=dict(type='str', aliases=['allocation_mode', 'mode'], choices=['dynamic', 'static']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
vm_provider=dict(type='str', choices=['cloudfoundry', 'kubernetes', 'microsoft', 'openshift', 'openstack', 'redhat', 'vmware']), vm_provider=dict(type='str', choices=['cloudfoundry', 'kubernetes', 'microsoft', 'openshift', 'openstack', 'redhat', 'vmware']),
) )

@ -17,17 +17,6 @@ module: aci_domain_to_vlan_pool
short_description: Bind Domain to VLAN Pools (infra:RsVlanNs) short_description: Bind Domain to VLAN Pools (infra:RsVlanNs)
description: description:
- Bind Domain to VLAN Pools on Cisco ACI fabrics. - Bind Domain to VLAN Pools on Cisco ACI fabrics.
notes:
- The C(domain) and C(vlan_pool) parameters should exist before using this module.
The M(aci_domain) and M(aci_vlan_pool) can be used for these.
seealso:
- module: aci_domain
- module: aci_vlan_pool
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:RsVlanNs).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.5' version_added: '2.5'
options: options:
domain: domain:
@ -67,6 +56,17 @@ options:
type: str type: str
choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ] choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(domain) and C(vlan_pool) parameters should exist before using this module.
The M(aci_domain) and M(aci_vlan_pool) can be used for these.
seealso:
- module: aci_domain
- module: aci_vlan_pool
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:RsVlanNs).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -249,8 +249,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
VM_PROVIDER_MAPPING = dict( VM_PROVIDER_MAPPING = dict(
cloudfoundry='CloudFoundry', cloudfoundry='CloudFoundry',
@ -266,8 +266,8 @@ VM_PROVIDER_MAPPING = dict(
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
domain_type=dict(type='str', required=True, choices=['fc', 'l2dom', 'l3dom', 'phys', 'vmm']),
domain=dict(type='str', aliases=['domain_name', 'domain_profile']), # Not required for querying all objects domain=dict(type='str', aliases=['domain_name', 'domain_profile']), # Not required for querying all objects
domain_type=dict(type='str', required=True, choices=['fc', 'l2dom', 'l3dom', 'phys', 'vmm']), # Not required for querying all objects
pool=dict(type='str', aliases=['pool_name', 'vlan_pool']), # Not required for querying all objects pool=dict(type='str', aliases=['pool_name', 'vlan_pool']), # Not required for querying all objects
pool_allocation_mode=dict(type='str', required=True, aliases=['allocation_mode', 'mode'], choices=['dynamic', 'static']), pool_allocation_mode=dict(type='str', required=True, aliases=['allocation_mode', 'mode'], choices=['dynamic', 'static']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),

@ -16,14 +16,6 @@ module: aci_encap_pool
short_description: Manage encap pools (fvns:VlanInstP, fvns:VxlanInstP, fvns:VsanInstP) short_description: Manage encap pools (fvns:VlanInstP, fvns:VxlanInstP, fvns:VsanInstP)
description: description:
- Manage vlan, vxlan, and vsan pools on Cisco ACI fabrics. - Manage vlan, vxlan, and vsan pools on Cisco ACI fabrics.
seealso:
- module: aci_encap_pool_range
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(fvns:VlanInstP),
B(fvns:VxlanInstP) and B(fvns:VsanInstP)
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.5' version_added: '2.5'
options: options:
description: description:
@ -49,7 +41,7 @@ options:
type: str type: str
required: yes required: yes
aliases: [ type ] aliases: [ type ]
choices: [ vlan, vxlan, vsan] choices: [ vlan, vsan, vxlan ]
state: state:
description: description:
- Use C(present) or C(absent) for adding or removing. - Use C(present) or C(absent) for adding or removing.
@ -58,6 +50,14 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- module: aci_encap_pool_range
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(fvns:VlanInstP),
B(fvns:VxlanInstP) and B(fvns:VsanInstP)
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -209,10 +209,10 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
ACI_MAPPING = dict( ACI_POOL_MAPPING = dict(
vlan=dict( vlan=dict(
aci_class='fvnsVlanInstP', aci_class='fvnsVlanInstP',
aci_mo='infra/vlanns-', aci_mo='infra/vlanns-',
@ -231,10 +231,10 @@ ACI_MAPPING = dict(
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
pool_type=dict(type='str', required=True, aliases=['type'], choices=['vlan', 'vsan', 'vxlan']),
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
pool=dict(type='str', aliases=['name', 'pool_name']), # Not required for querying all objects pool=dict(type='str', aliases=['name', 'pool_name']), # Not required for querying all objects
pool_allocation_mode=dict(type='str', aliases=['allocation_mode', 'mode'], choices=['dynamic', 'static']), pool_allocation_mode=dict(type='str', aliases=['allocation_mode', 'mode'], choices=['dynamic', 'static']),
pool_type=dict(type='str', aliases=['type'], choices=['vlan', 'vxlan', 'vsan'], required=True),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )
@ -253,8 +253,8 @@ def main():
pool_allocation_mode = module.params['pool_allocation_mode'] pool_allocation_mode = module.params['pool_allocation_mode']
state = module.params['state'] state = module.params['state']
aci_class = ACI_MAPPING[pool_type]["aci_class"] aci_class = ACI_POOL_MAPPING[pool_type]['aci_class']
aci_mo = ACI_MAPPING[pool_type]["aci_mo"] aci_mo = ACI_POOL_MAPPING[pool_type]['aci_mo']
pool_name = pool pool_name = pool
# ACI Pool URL requires the pool_allocation mode for vlan and vsan pools (ex: uni/infra/vlanns-[poolname]-static) # ACI Pool URL requires the pool_allocation mode for vlan and vsan pools (ex: uni/infra/vlanns-[poolname]-static)

@ -16,15 +16,6 @@ module: aci_encap_pool_range
short_description: Manage encap ranges assigned to pools (fvns:EncapBlk, fvns:VsanEncapBlk) short_description: Manage encap ranges assigned to pools (fvns:EncapBlk, fvns:VsanEncapBlk)
description: description:
- Manage vlan, vxlan, and vsan ranges that are assigned to pools on Cisco ACI fabrics. - Manage vlan, vxlan, and vsan ranges that are assigned to pools on Cisco ACI fabrics.
notes:
- The C(pool) must exist in order to add or delete a range.
seealso:
- module: aci_encap_pool
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(fvns:EncapBlk) and B(fvns:VsanEncapBlk).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.5' version_added: '2.5'
options: options:
allocation_mode: allocation_mode:
@ -81,6 +72,15 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(pool) must exist in order to add or delete a range.
seealso:
- module: aci_encap_pool
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(fvns:EncapBlk) and B(fvns:VsanEncapBlk).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -278,8 +278,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
ACI_POOL_MAPPING = dict( ACI_POOL_MAPPING = dict(
vlan=dict( vlan=dict(
@ -300,11 +300,11 @@ ACI_POOL_MAPPING = dict(
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
pool_type=dict(type='str', required=True, aliases=['type'], choices=['vlan', 'vxlan', 'vsan']),
allocation_mode=dict(type='str', aliases=['mode'], choices=['dynamic', 'inherit', 'static']), allocation_mode=dict(type='str', aliases=['mode'], choices=['dynamic', 'inherit', 'static']),
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
pool=dict(type='str', aliases=['pool_name']), # Not required for querying all objects pool=dict(type='str', aliases=['pool_name']), # Not required for querying all objects
pool_allocation_mode=dict(type='str', aliases=['pool_mode'], choices=['dynamic', 'static']), pool_allocation_mode=dict(type='str', aliases=['pool_mode'], choices=['dynamic', 'static']),
pool_type=dict(type='str', aliases=['type'], choices=['vlan', 'vxlan', 'vsan'], required=True),
range_end=dict(type='int', aliases=['end']), # Not required for querying all objects range_end=dict(type='int', aliases=['end']), # Not required for querying all objects
range_name=dict(type='str', aliases=["name", "range"]), # Not required for querying all objects range_name=dict(type='str', aliases=["name", "range"]), # Not required for querying all objects
range_start=dict(type='int', aliases=["start"]), # Not required for querying all objects range_start=dict(type='int', aliases=["start"]), # Not required for querying all objects

@ -16,17 +16,6 @@ module: aci_epg
short_description: Manage End Point Groups (EPG) objects (fv:AEPg) short_description: Manage End Point Groups (EPG) objects (fv:AEPg)
description: description:
- Manage End Point Groups (EPG) on Cisco ACI fabrics. - Manage End Point Groups (EPG) on Cisco ACI fabrics.
notes:
- The C(tenant) and C(app_profile) used must exist before using this module in your playbook.
The M(aci_tenant) and M(aci_ap) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_ap
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:AEPg).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Swetha Chunduri (@schunduri)
version_added: '2.4' version_added: '2.4'
options: options:
tenant: tenant:
@ -89,6 +78,17 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) and C(app_profile) used must exist before using this module in your playbook.
The M(aci_tenant) and M(aci_ap) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_ap
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:AEPg).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Swetha Chunduri (@schunduri)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -286,8 +286,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():

@ -16,16 +16,6 @@ module: aci_epg_monitoring_policy
short_description: Manage monitoring policies (mon:EPGPol) short_description: Manage monitoring policies (mon:EPGPol)
description: description:
- Manage monitoring policies on Cisco ACI fabrics. - Manage monitoring policies on Cisco ACI fabrics.
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(mon:EPGPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
monitoring_policy: monitoring_policy:
@ -53,6 +43,16 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(mon:EPGPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
# FIXME: Add more, better examples # FIXME: Add more, better examples
@ -172,15 +172,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
monitoring_policy=dict(type='str', required=False, aliases=['name']), # Not required for querying all objects monitoring_policy=dict(type='str', aliases=['name']), # Not required for querying all objects
tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )

@ -19,16 +19,6 @@ description:
notes: notes:
- The C(tenant), C(app_profile), C(EPG), and C(Contract) used must exist before using this module in your playbook. - The C(tenant), C(app_profile), C(EPG), and C(Contract) used must exist before using this module in your playbook.
The M(aci_tenant), M(aci_ap), M(aci_epg), and M(aci_contract) modules can be used for this. The M(aci_tenant), M(aci_ap), M(aci_epg), and M(aci_contract) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_ap
- module: aci_epg
- module: aci_contract
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(fv:RsCons) and B(fv:RsProv).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
ap: ap:
@ -77,6 +67,16 @@ options:
type: str type: str
aliases: [ tenant_name ] aliases: [ tenant_name ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- module: aci_tenant
- module: aci_ap
- module: aci_epg
- module: aci_contract
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(fv:RsCons) and B(fv:RsProv).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -236,20 +236,35 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
ACI_CLASS_MAPPING = {"consumer": {"class": "fvRsCons", "rn": "rscons-"}, "provider": {"class": "fvRsProv", "rn": "rsprov-"}} ACI_CLASS_MAPPING = dict(
PROVIDER_MATCH_MAPPING = {"all": "All", "at_least_one": "AtleastOne", "at_most_one": "AtmostOne", "none": "None"} consumer={
'class': 'fvRsCons',
'rn': 'rscons-',
},
provider={
'class': 'fvRsProv',
'rn': 'rsprov-',
},
)
PROVIDER_MATCH_MAPPING = dict(
all='All',
at_least_one='AtleastOne',
at_most_one='tmostOne',
none='None',
)
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
contract_type=dict(type='str', required=True, choices=['consumer', 'provider']),
ap=dict(type='str', aliases=['app_profile', 'app_profile_name']), # Not required for querying all objects ap=dict(type='str', aliases=['app_profile', 'app_profile_name']), # Not required for querying all objects
epg=dict(type='str', aliases=['epg_name']), # Not required for querying all objects epg=dict(type='str', aliases=['epg_name']), # Not required for querying all objects
contract=dict(type='str', aliases=['contract_name']), # Not required for querying all objects contract=dict(type='str', aliases=['contract_name']), # Not required for querying all objects
contract_type=dict(type='str', required=True, choices=['consumer', 'provider']),
priority=dict(type='str', choices=['level1', 'level2', 'level3', 'unspecified']), priority=dict(type='str', choices=['level1', 'level2', 'level3', 'unspecified']),
provider_match=dict(type='str', choices=['all', 'at_least_one', 'at_most_one', 'none']), provider_match=dict(type='str', choices=['all', 'at_least_one', 'at_most_one', 'none']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),

@ -16,22 +16,6 @@ module: aci_epg_to_domain
short_description: Bind EPGs to Domains (fv:RsDomAtt) short_description: Bind EPGs to Domains (fv:RsDomAtt)
description: description:
- Bind EPGs to Physical and Virtual Domains on Cisco ACI fabrics. - Bind EPGs to Physical and Virtual Domains on Cisco ACI fabrics.
notes:
- The C(tenant), C(ap), C(epg), and C(domain) used must exist before using this module in your playbook.
The M(aci_tenant) M(aci_ap), M(aci_epg) M(aci_domain) modules can be used for this.
- OpenStack VMM domains must not be created using this module. The OpenStack VMM domain is created directly
by the Cisco APIC Neutron plugin as part of the installation and configuration.
This module can be used to query status of an OpenStack VMM domain.
seealso:
- module: aci_tenant
- module: aci_ap
- module: aci_epg
- module: aci_domain
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:RsDomAtt).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
allow_useg: allow_useg:
@ -115,6 +99,22 @@ options:
type: str type: str
choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ] choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant), C(ap), C(epg), and C(domain) used must exist before using this module in your playbook.
The M(aci_tenant) M(aci_ap), M(aci_epg) M(aci_domain) modules can be used for this.
- OpenStack VMM domains must not be created using this module. The OpenStack VMM domain is created directly
by the Cisco APIC Neutron plugin as part of the installation and configuration.
This module can be used to query status of an OpenStack VMM domain.
seealso:
- module: aci_tenant
- module: aci_ap
- module: aci_epg
- module: aci_domain
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:RsDomAtt).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -273,8 +273,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
VM_PROVIDER_MAPPING = dict( VM_PROVIDER_MAPPING = dict(
cloudfoundry='CloudFoundry', cloudfoundry='CloudFoundry',

@ -17,12 +17,6 @@ module: aci_fabric_node
short_description: Manage Fabric Node Members (fabric:NodeIdentP) short_description: Manage Fabric Node Members (fabric:NodeIdentP)
description: description:
- Manage Fabric Node Members on Cisco ACI fabrics. - Manage Fabric Node Members on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fabric:NodeIdentP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
version_added: '2.5' version_added: '2.5'
options: options:
pod_id: pod_id:
@ -62,6 +56,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fabric:NodeIdentP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -201,8 +201,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
# NOTE: (This problem is also present on the APIC GUI) # NOTE: (This problem is also present on the APIC GUI)

@ -17,16 +17,6 @@ short_description: Manages top level filter objects (vz:Filter)
description: description:
- Manages top level filter objects on Cisco ACI fabrics. - Manages top level filter objects on Cisco ACI fabrics.
- This modules does not manage filter entries, see M(aci_filter_entry) for this functionality. - This modules does not manage filter entries, see M(aci_filter_entry) for this functionality.
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:Filter).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
filter: filter:
@ -54,6 +44,16 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:Filter).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -205,15 +205,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
filter=dict(type='str', required=False, aliases=['name', 'filter_name']), # Not required for querying all objects filter=dict(type='str', aliases=['name', 'filter_name']), # Not required for querying all objects
tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )

@ -16,17 +16,6 @@ module: aci_filter_entry
short_description: Manage filter entries (vz:Entry) short_description: Manage filter entries (vz:Entry)
description: description:
- Manage filter entries for a filter on Cisco ACI fabrics. - Manage filter entries for a filter on Cisco ACI fabrics.
notes:
- The C(tenant) and C(filter) used must exist before using this module in your playbook.
The M(aci_tenant) and M(aci_filter) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_filter
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:Entry).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
arp_flag: arp_flag:
@ -108,6 +97,17 @@ options:
type: str type: str
aliases: [ tenant_name ] aliases: [ tenant_name ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) and C(filter) used must exist before using this module in your playbook.
The M(aci_tenant) and M(aci_filter) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_filter
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:Entry).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -230,8 +230,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
VALID_ARP_FLAGS = ['arp_reply', 'arp_request', 'unspecified'] VALID_ARP_FLAGS = ['arp_reply', 'arp_request', 'unspecified']
VALID_ETHER_TYPES = ['arp', 'fcoe', 'ip', 'mac_security', 'mpls_ucast', 'trill', 'unspecified'] VALID_ETHER_TYPES = ['arp', 'fcoe', 'ip', 'mac_security', 'mpls_ucast', 'trill', 'unspecified']

@ -17,13 +17,7 @@ module: aci_firmware_source
short_description: Manage firmware image sources (firmware:OSource) short_description: Manage firmware image sources (firmware:OSource)
description: description:
- Manage firmware image sources on Cisco ACI fabrics. - Manage firmware image sources on Cisco ACI fabrics.
author:
- Dag Wieers (@dagwieers)
version_added: '2.5' version_added: '2.5'
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(firmware:OSource).
link: https://developer.cisco.com/docs/apic-mim-ref/
options: options:
source: source:
description: description:
@ -62,6 +56,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(firmware:OSource).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -211,8 +211,8 @@ url:
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():

@ -16,13 +16,7 @@ module: aci_interface_policy_fc
short_description: Manage Fibre Channel interface policies (fc:IfPol) short_description: Manage Fibre Channel interface policies (fc:IfPol)
description: description:
- Manage ACI Fiber Channel interface policies on Cisco ACI fabrics. - Manage ACI Fiber Channel interface policies on Cisco ACI fabrics.
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fc:IfPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
options: options:
fc_policy: fc_policy:
description: description:
@ -49,6 +43,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fc:IfPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -168,14 +168,14 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
fc_policy=dict(type='str', required=False, aliases=['name']), # Not required for querying all objects fc_policy=dict(type='str', aliases=['name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
port_mode=dict(type='str', choices=['f', 'np']), # No default provided on purpose port_mode=dict(type='str', choices=['f', 'np']), # No default provided on purpose
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),

@ -16,13 +16,7 @@ module: aci_interface_policy_l2
short_description: Manage Layer 2 interface policies (l2:IfPol) short_description: Manage Layer 2 interface policies (l2:IfPol)
description: description:
- Manage Layer 2 interface policies on Cisco ACI fabrics. - Manage Layer 2 interface policies on Cisco ACI fabrics.
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(l2:IfPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
options: options:
l2_policy: l2_policy:
description: description:
@ -60,6 +54,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(l2:IfPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -178,17 +178,21 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
# Mapping dicts are used to normalize the proposed data to what the APIC expects, which will keep diffs accurate # Mapping dicts are used to normalize the proposed data to what the APIC expects, which will keep diffs accurate
QINQ_MAPPING = dict(core='corePort', disabled='disabled', edge='edgePort') QINQ_MAPPING = dict(
core='corePort',
disabled='disabled',
edge='edgePort',
)
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
l2_policy=dict(type='str', required=False, aliases=['name']), # Not required for querying all policies l2_policy=dict(type='str', aliases=['name']), # Not required for querying all policies
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
vlan_scope=dict(type='str', choices=['global', 'portlocal']), # No default provided on purpose vlan_scope=dict(type='str', choices=['global', 'portlocal']), # No default provided on purpose
qinq=dict(type='str', choices=['core', 'disabled', 'edge']), qinq=dict(type='str', choices=['core', 'disabled', 'edge']),

@ -17,15 +17,6 @@ module: aci_interface_policy_leaf_policy_group
short_description: Manage fabric interface policy leaf policy groups (infra:AccBndlGrp, infra:AccPortGrp) short_description: Manage fabric interface policy leaf policy groups (infra:AccBndlGrp, infra:AccPortGrp)
description: description:
- Manage fabric interface policy leaf policy groups on Cisco ACI fabrics. - Manage fabric interface policy leaf policy groups on Cisco ACI fabrics.
notes:
- When using the module please select the appropriate link_aggregation_type (lag_type).
C(link) for Port Channel(PC), C(node) for Virtual Port Channel(VPC) and C(leaf) for Leaf Access Port Policy Group.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(infra:AccBndlGrp) and B(infra:AccPortGrp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
version_added: '2.5' version_added: '2.5'
options: options:
policy_group: policy_group:
@ -136,6 +127,15 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- When using the module please select the appropriate link_aggregation_type (lag_type).
C(link) for Port Channel(PC), C(node) for Virtual Port Channel(VPC) and C(leaf) for Leaf Access Port Policy Group.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(infra:AccBndlGrp) and B(infra:AccPortGrp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -313,18 +313,18 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
policy_group=dict(type='str', aliases=['name', 'policy_group_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),
# NOTE: Since this module needs to include both infra:AccBndlGrp (for PC and VPC) and infra:AccPortGrp (for leaf access port policy group): # NOTE: Since this module needs to include both infra:AccBndlGrp (for PC and VPC) and infra:AccPortGrp (for leaf access port policy group):
# NOTE: I'll allow the user to make the choice here (link(PC), node(VPC), leaf(leaf-access port policy group)) # NOTE: I'll allow the user to make the choice here (link(PC), node(VPC), leaf(leaf-access port policy group))
lag_type=dict(type='str', required=True, aliases=['lag_type_name'], choices=['leaf', 'link', 'node']), lag_type=dict(type='str', required=True, aliases=['lag_type_name'], choices=['leaf', 'link', 'node']),
policy_group=dict(type='str', aliases=['name', 'policy_group_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),
link_level_policy=dict(type='str', aliases=['link_level_policy_name']), link_level_policy=dict(type='str', aliases=['link_level_policy_name']),
cdp_policy=dict(type='str', aliases=['cdp_policy_name']), cdp_policy=dict(type='str', aliases=['cdp_policy_name']),
mcp_policy=dict(type='str', aliases=['mcp_policy_name']), mcp_policy=dict(type='str', aliases=['mcp_policy_name']),

@ -17,12 +17,6 @@ module: aci_interface_policy_leaf_profile
short_description: Manage fabric interface policy leaf profiles (infra:AccPortP) short_description: Manage fabric interface policy leaf profiles (infra:AccPortP)
description: description:
- Manage fabric interface policy leaf profiles on Cisco ACI fabrics. - Manage fabric interface policy leaf profiles on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:AccPortP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
version_added: '2.5' version_added: '2.5'
options: options:
leaf_interface_profile: leaf_interface_profile:
@ -44,6 +38,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:AccPortP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -190,8 +190,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():

@ -16,12 +16,6 @@ module: aci_interface_policy_lldp
short_description: Manage LLDP interface policies (lldp:IfPol) short_description: Manage LLDP interface policies (lldp:IfPol)
description: description:
- Manage LLDP interface policies on Cisco ACI fabrics. - Manage LLDP interface policies on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(lldp:IfPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
lldp_policy: lldp_policy:
@ -53,6 +47,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(lldp:IfPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
# FIXME: Add more, better examples # FIXME: Add more, better examples
@ -173,14 +173,14 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
lldp_policy=dict(type='str', require=False, aliases=['name']), # Not required for querying all objects lldp_policy=dict(type='str', aliases=['name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
receive_state=dict(type='raw'), # Turn into a boolean in v2.9 receive_state=dict(type='raw'), # Turn into a boolean in v2.9
transmit_state=dict(type='raw'), # Turn into a boolean in v2.9 transmit_state=dict(type='raw'), # Turn into a boolean in v2.9

@ -16,12 +16,6 @@ module: aci_interface_policy_mcp
short_description: Manage MCP interface policies (mcp:IfPol) short_description: Manage MCP interface policies (mcp:IfPol)
description: description:
- Manage MCP interface policies on Cisco ACI fabrics. - Manage MCP interface policies on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(mcp:IfPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
mcp: mcp:
@ -48,6 +42,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(mcp:IfPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
# FIXME: Add more, better examples # FIXME: Add more, better examples
@ -167,14 +167,14 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
mcp=dict(type='str', required=False, aliases=['mcp_interface', 'name']), # Not required for querying all objects mcp=dict(type='str', aliases=['mcp_interface', 'name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
admin_state=dict(type='raw'), # Turn into a boolean in v2.9 admin_state=dict(type='raw'), # Turn into a boolean in v2.9
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),

@ -17,12 +17,6 @@ module: aci_interface_policy_ospf
short_description: Manage OSPF interface policies (ospf:IfPol) short_description: Manage OSPF interface policies (ospf:IfPol)
description: description:
- Manage OSPF interface policies on Cisco ACI fabrics. - Manage OSPF interface policies on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(ospf:IfPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.7' version_added: '2.7'
options: options:
tenant: tenant:
@ -135,6 +129,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(ospf:IfPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -285,15 +285,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
ospf=dict(type='str', required=False, aliases=['ospf_interface', 'name']), # Not required for querying all objects ospf=dict(type='str', aliases=['ospf_interface', 'name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
network_type=dict(type='str', choices=['bcast', 'p2p']), network_type=dict(type='str', choices=['bcast', 'p2p']),
cost=dict(type='int'), cost=dict(type='int'),

@ -16,12 +16,6 @@ module: aci_interface_policy_port_channel
short_description: Manage port channel interface policies (lacp:LagPol) short_description: Manage port channel interface policies (lacp:LagPol)
description: description:
- Manage port channel interface policies on Cisco ACI fabrics. - Manage port channel interface policies on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(lacp:LagPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
port_channel: port_channel:
@ -97,6 +91,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(lacp:LagPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -217,18 +217,18 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
port_channel=dict(type='str', required=False, aliases=['name']), # Not required for querying all objects port_channel=dict(type='str', aliases=['name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
min_links=dict(type='int'), min_links=dict(type='int'),
max_links=dict(type='int'), max_links=dict(type='int'),
mode=dict(type='str', choices=['off', 'mac-pin', 'active', 'passive', 'mac-pin-nicload']), mode=dict(type='str', choices=['active', 'mac-pin', 'mac-pin-nicload', 'off', 'passive']),
fast_select=dict(type='bool'), fast_select=dict(type='bool'),
graceful_convergence=dict(type='bool'), graceful_convergence=dict(type='bool'),
load_defer=dict(type='bool'), load_defer=dict(type='bool'),

@ -16,12 +16,6 @@ module: aci_interface_policy_port_security
short_description: Manage port security (l2:PortSecurityPol) short_description: Manage port security (l2:PortSecurityPol)
description: description:
- Manage port security on Cisco ACI fabrics. - Manage port security on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(l2:PortSecurityPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
port_security: port_security:
@ -49,6 +43,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(l2:PortSecurityPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
# FIXME: Add more, better examples # FIXME: Add more, better examples
@ -168,14 +168,14 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
port_security=dict(type='str', required=False, aliases=['name']), # Not required for querying all objects port_security=dict(type='str', aliases=['name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
max_end_points=dict(type='int'), max_end_points=dict(type='int'),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),

@ -17,15 +17,6 @@ module: aci_interface_selector_to_switch_policy_leaf_profile
short_description: Bind interface selector profiles to switch policy leaf profiles (infra:RsAccPortP) short_description: Bind interface selector profiles to switch policy leaf profiles (infra:RsAccPortP)
description: description:
- Bind interface selector profiles to switch policy leaf profiles on Cisco ACI fabrics. - Bind interface selector profiles to switch policy leaf profiles on Cisco ACI fabrics.
notes:
- This module requires an existing leaf profile, the module M(aci_switch_policy_leaf_profile) can be used for this.
seealso:
- module: aci_switch_policy_leaf_profile
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:RsAccPortP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
version_added: '2.5' version_added: '2.5'
options: options:
leaf_profile: leaf_profile:
@ -46,6 +37,15 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- This module requires an existing leaf profile, the module M(aci_switch_policy_leaf_profile) can be used for this.
seealso:
- module: aci_switch_policy_leaf_profile
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:RsAccPortP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -186,8 +186,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():

@ -16,18 +16,6 @@ module: aci_l3out
short_description: Manage Layer 3 Outside (L3Out) objects (l3ext:Out) short_description: Manage Layer 3 Outside (L3Out) objects (l3ext:Out)
description: description:
- Manage Layer 3 Outside (L3Out) on Cisco ACI fabrics. - Manage Layer 3 Outside (L3Out) on Cisco ACI fabrics.
notes:
- The C(tenant) and C(domain) and C(vrf) used must exist before using this module in your playbook.
The M(aci_tenant) and M(aci_domain) and M(aci_vrf) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_domain
- module: aci_vrf
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(l3ext:Out).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Rostyslav Davydenko (@rost-d)
version_added: '2.6' version_added: '2.6'
options: options:
tenant: tenant:
@ -92,6 +80,18 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) and C(domain) and C(vrf) used must exist before using this module in your playbook.
The M(aci_tenant) and M(aci_domain) and M(aci_vrf) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_domain
- module: aci_vrf
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(l3ext:Out).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Rostyslav Davydenko (@rost-d)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -236,17 +236,17 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
l3out=dict(type='str', aliases=['l3out_name', 'name']), tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
l3out=dict(type='str', aliases=['l3out_name', 'name']), # Not required for querying all objects
domain=dict(type='str', aliases=['ext_routed_domain_name', 'routed_domain']), domain=dict(type='str', aliases=['ext_routed_domain_name', 'routed_domain']),
vrf=dict(type='str', aliases=['vrf_name']), vrf=dict(type='str', aliases=['vrf_name']),
tenant=dict(type='str', aliases=['tenant_name']),
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
route_control=dict(type='list', choices=['export', 'import'], aliases=['route_control_enforcement']), route_control=dict(type='list', choices=['export', 'import'], aliases=['route_control_enforcement']),
dscp=dict(type='str', dscp=dict(type='str',

@ -16,16 +16,6 @@ module: aci_l3out_route_tag_policy
short_description: Manage route tag policies (l3ext:RouteTagPol) short_description: Manage route tag policies (l3ext:RouteTagPol)
description: description:
- Manage route tag policies on Cisco ACI fabrics. - Manage route tag policies on Cisco ACI fabrics.
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(l3ext:RouteTagPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
rtp: rtp:
@ -59,6 +49,16 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(l3ext:RouteTagPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
# FIXME: Add more, better examples # FIXME: Add more, better examples
@ -179,15 +179,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
rtp=dict(type='str', required=False, aliases=['name', 'rtp_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for quering all objects
tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for quering all objects rtp=dict(type='str', aliases=['name', 'rtp_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
tag=dict(type='int'), tag=dict(type='int'),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),

@ -18,21 +18,6 @@ short_description: Direct access to the Cisco APIC REST API
description: description:
- Enables the management of the Cisco ACI fabric through direct access to the Cisco APIC REST API. - Enables the management of the Cisco ACI fabric through direct access to the Cisco APIC REST API.
- Thanks to the idempotent nature of the APIC, this module is idempotent and reports changes. - Thanks to the idempotent nature of the APIC, this module is idempotent and reports changes.
notes:
- Certain payloads are known not to be idempotent, so be careful when constructing payloads,
e.g. using C(status="created") will cause idempotency issues, use C(status="modified") instead.
More information in :ref:`the ACI documentation <aci_guide_known_issues>`.
- Certain payloads (and used paths) are known to report no changes happened when changes did happen.
This is a known APIC problem and has been reported to the vendor. A workaround for this issue exists.
More information in :ref:`the ACI documentation <aci_guide_known_issues>`.
- XML payloads require the C(lxml) and C(xmljson) python libraries. For JSON payloads nothing special is needed.
seealso:
- module: aci_tenant
- name: Cisco APIC REST API Configuration Guide
description: More information about the APIC REST API.
link: http://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/apic/sw/2-x/rest_cfg/2_1_x/b_Cisco_APIC_REST_API_Configuration_Guide.html
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
requirements: requirements:
- lxml (when using XML payload) - lxml (when using XML payload)
@ -72,6 +57,21 @@ options:
type: path type: path
aliases: [ config_file ] aliases: [ config_file ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- Certain payloads are known not to be idempotent, so be careful when constructing payloads,
e.g. using C(status="created") will cause idempotency issues, use C(status="modified") instead.
More information in :ref:`the ACI documentation <aci_guide_known_issues>`.
- Certain payloads (and used paths) are known to report no changes happened when changes did happen.
This is a known APIC problem and has been reported to the vendor. A workaround for this issue exists.
More information in :ref:`the ACI documentation <aci_guide_known_issues>`.
- XML payloads require the C(lxml) and C(xmljson) python libraries. For JSON payloads nothing special is needed.
seealso:
- module: aci_tenant
- name: Cisco APIC REST API Configuration Guide
description: More information about the APIC REST API.
link: http://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/apic/sw/2-x/rest_cfg/2_1_x/b_Cisco_APIC_REST_API_Configuration_Guide.html
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''

@ -17,18 +17,6 @@ module: aci_static_binding_to_epg
short_description: Bind static paths to EPGs (fv:RsPathAtt) short_description: Bind static paths to EPGs (fv:RsPathAtt)
description: description:
- Bind static paths to EPGs on Cisco ACI fabrics. - Bind static paths to EPGs on Cisco ACI fabrics.
notes:
- The C(tenant), C(ap), C(epg) used must exist before using this module in your playbook.
The M(aci_tenant), M(aci_ap), M(aci_epg) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_ap
- module: aci_epg
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:RsPathAtt).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
version_added: '2.5' version_added: '2.5'
options: options:
tenant: tenant:
@ -121,6 +109,18 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant), C(ap), C(epg) used must exist before using this module in your playbook.
The M(aci_tenant), M(aci_ap), M(aci_epg) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_ap
- module: aci_epg
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:RsPathAtt).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -279,8 +279,25 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
INTERFACE_MODE_MAPPING = {
'802.1p': 'native',
'access': 'untagged',
'native': 'native',
'regular': 'regular',
'tagged': 'regular',
'trunk': 'regular',
'untagged': 'untagged',
}
INTERFACE_TYPE_MAPPING = dict(
fex='topology/pod-{pod_id}/paths-{leafs}/extpaths-{extpaths}/pathep-[eth{interface}]',
port_channel='topology/pod-{pod_id}/paths-{leafs}/pathep-[{interface}]',
switch_port='topology/pod-{pod_id}/paths-{leafs}/pathep-[eth{interface}]',
vpc='topology/pod-{pod_id}/protpaths-{leafs}/pathep-[{interface}]',
)
# TODO: change 'deploy_immediacy' to 'resolution_immediacy' (as seen in aci_epg_to_domain)? # TODO: change 'deploy_immediacy' to 'resolution_immediacy' (as seen in aci_epg_to_domain)?
@ -299,8 +316,8 @@ def main():
aliases=['interface_mode_name', 'mode']), aliases=['interface_mode_name', 'mode']),
interface_type=dict(type='str', default='switch_port', choices=['fex', 'port_channel', 'switch_port', 'vpc']), interface_type=dict(type='str', default='switch_port', choices=['fex', 'port_channel', 'switch_port', 'vpc']),
pod_id=dict(type='int', aliases=['pod', 'pod_number']), # Not required for querying all objects pod_id=dict(type='int', aliases=['pod', 'pod_number']), # Not required for querying all objects
leafs=dict(type='list', aliases=['leaves', 'nodes', 'paths', 'switches']), leafs=dict(type='list', aliases=['leaves', 'nodes', 'paths', 'switches']), # Not required for querying all objects
interface=dict(type='str'), interface=dict(type='str'), # Not required for querying all objects
extpaths=dict(type='int'), extpaths=dict(type='int'),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )
@ -333,53 +350,31 @@ def main():
# Users are likely to use integers for leaf IDs, which would raise an exception when using the join method # Users are likely to use integers for leaf IDs, which would raise an exception when using the join method
leafs.extend(str(leaf).split('-')) leafs.extend(str(leaf).split('-'))
if len(leafs) == 1: if len(leafs) == 1:
if interface_type != 'vpc': if interface_type == 'vpc':
leafs = leafs[0]
else:
module.fail_json(msg='A interface_type of "vpc" requires 2 leafs') module.fail_json(msg='A interface_type of "vpc" requires 2 leafs')
leafs = leafs[0]
elif len(leafs) == 2: elif len(leafs) == 2:
if interface_type == 'vpc': if interface_type != 'vpc':
leafs = "-".join(leafs)
else:
module.fail_json(msg='The interface_types "switch_port", "port_channel", and "fex" \ module.fail_json(msg='The interface_types "switch_port", "port_channel", and "fex" \
do not support using multiple leafs for a single binding') do not support using multiple leafs for a single binding')
leafs = "-".join(leafs)
else: else:
module.fail_json(msg='The "leafs" parameter must not have more than 2 entries') module.fail_json(msg='The "leafs" parameter must not have more than 2 entries')
interface = module.params['interface'] interface = module.params['interface']
extpaths = module.params['extpaths'] extpaths = module.params['extpaths']
state = module.params['state'] state = module.params['state']
static_path = ''
if encap_id is not None: if encap_id is not None:
if encap_id in range(1, 4097): if encap_id not in range(1, 4097):
encap_id = 'vlan-{0}'.format(encap_id)
else:
module.fail_json(msg='Valid VLAN assigments are from 1 to 4096') module.fail_json(msg='Valid VLAN assigments are from 1 to 4096')
encap_id = 'vlan-{0}'.format(encap_id)
if primary_encap_id is not None: if primary_encap_id is not None:
if primary_encap_id in range(1, 4097): if primary_encap_id not in range(1, 4097):
primary_encap_id = 'vlan-{0}'.format(primary_encap_id)
else:
module.fail_json(msg='Valid VLAN assigments are from 1 to 4096') module.fail_json(msg='Valid VLAN assigments are from 1 to 4096')
primary_encap_id = 'vlan-{0}'.format(primary_encap_id)
INTERFACE_MODE_MAPPING = { static_path = INTERFACE_TYPE_MAPPING[interface_type].format(pod_id=pod_id, leafs=leafs, extpaths=extpaths, interface=interface)
'802.1p': 'native',
'access': 'untagged',
'native': 'native',
'regular': 'regular',
'tagged': 'regular',
'trunk': 'regular',
'untagged': 'untagged',
}
INTERFACE_TYPE_MAPPING = dict(
fex='topology/pod-{0}/paths-{1}/extpaths-{2}/pathep-[eth{3}]'.format(pod_id, leafs, extpaths, interface),
port_channel='topology/pod-{0}/paths-{1}/pathep-[{2}]'.format(pod_id, leafs, interface),
switch_port='topology/pod-{0}/paths-{1}/pathep-[eth{2}]'.format(pod_id, leafs, interface),
vpc='topology/pod-{0}/protpaths-{1}/pathep-[{2}]'.format(pod_id, leafs, interface),
)
static_path = INTERFACE_TYPE_MAPPING[interface_type]
path_target_filter = {} path_target_filter = {}
if pod_id is not None and leafs is not None and interface is not None and (interface_type != 'fex' or extpaths is not None): if pod_id is not None and leafs is not None and interface is not None and (interface_type != 'fex' or extpaths is not None):

@ -17,17 +17,6 @@ module: aci_switch_leaf_selector
short_description: Bind leaf selectors to switch policy leaf profiles (infra:LeafS, infra:NodeBlk, infra:RsAccNodePGrep) short_description: Bind leaf selectors to switch policy leaf profiles (infra:LeafS, infra:NodeBlk, infra:RsAccNodePGrep)
description: description:
- Bind leaf selectors (with node block range and policy group) to switch policy leaf profiles on Cisco ACI fabrics. - Bind leaf selectors (with node block range and policy group) to switch policy leaf profiles on Cisco ACI fabrics.
notes:
- This module is to be used with M(aci_switch_policy_leaf_profile).
One first creates a leaf profile (infra:NodeP) and then creates an associated selector (infra:LeafS),
seealso:
- module: aci_switch_policy_leaf_profile
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(infra:LeafS),
B(infra:NodeBlk) and B(infra:RsAccNodePGrp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
version_added: '2.5' version_added: '2.5'
options: options:
description: description:
@ -76,6 +65,17 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- This module is to be used with M(aci_switch_policy_leaf_profile).
One first creates a leaf profile (infra:NodeP) and then creates an associated selector (infra:LeafS),
seealso:
- module: aci_switch_policy_leaf_profile
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(infra:LeafS),
B(infra:NodeBlk) and B(infra:RsAccNodePGrp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -233,8 +233,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():

@ -17,13 +17,6 @@ module: aci_switch_policy_leaf_profile
short_description: Manage switch policy leaf profiles (infra:NodeP) short_description: Manage switch policy leaf profiles (infra:NodeP)
description: description:
- Manage switch policy leaf profiles on Cisco ACI fabrics. - Manage switch policy leaf profiles on Cisco ACI fabrics.
seealso:
- module: aci_switch_policy_leaf_profile
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:NodeP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
version_added: '2.5' version_added: '2.5'
options: options:
leaf_profile: leaf_profile:
@ -44,6 +37,13 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- module: aci_switch_policy_leaf_profile
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(infra:NodeP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -182,8 +182,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():

@ -17,13 +17,6 @@ module: aci_switch_policy_vpc_protection_group
short_description: Manage switch policy explicit vPC protection groups (fabric:ExplicitGEp, fabric:NodePEp). short_description: Manage switch policy explicit vPC protection groups (fabric:ExplicitGEp, fabric:NodePEp).
description: description:
- Manage switch policy explicit vPC protection groups on Cisco ACI fabrics. - Manage switch policy explicit vPC protection groups on Cisco ACI fabrics.
seealso:
- module: aci_switch_policy_leaf_profile
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(fabric:ExplicitGEp) and B(fabric:NodePEp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
version_added: '2.5' version_added: '2.5'
options: options:
protection_group: protection_group:
@ -61,6 +54,13 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- module: aci_switch_policy_leaf_profile
- name: APIC Management Information Model reference
description: More information about the internal APIC classes B(fabric:ExplicitGEp) and B(fabric:NodePEp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Bruno Calogero (@brunocalogero)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -210,8 +210,8 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():

@ -17,16 +17,6 @@ module: aci_taboo_contract
short_description: Manage taboo contracts (vz:BrCP) short_description: Manage taboo contracts (vz:BrCP)
description: description:
- Manage taboo contracts on Cisco ACI fabrics. - Manage taboo contracts on Cisco ACI fabrics.
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:BrCP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
taboo_contract: taboo_contract:
@ -60,6 +50,16 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(vz:BrCP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -209,15 +209,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
taboo_contract=dict(type='str', required=False, aliases=['name']), # Not required for querying all contracts taboo_contract=dict(type='str', aliases=['name']), # Not required for querying all contracts
tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all contracts tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all contracts
scope=dict(type='str', choices=['application-profile', 'context', 'global', 'tenant']), scope=dict(type='str', choices=['application-profile', 'context', 'global', 'tenant']),
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),

@ -16,12 +16,6 @@ module: aci_tenant
short_description: Manage tenants (fv:Tenant) short_description: Manage tenants (fv:Tenant)
description: description:
- Manage tenants on Cisco ACI fabrics. - Manage tenants on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:Tenant).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
tenant: tenant:
@ -43,6 +37,12 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:Tenant).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -190,14 +190,14 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
tenant=dict(type='str', required=False, aliases=['name', 'tenant_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['name', 'tenant_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )

@ -16,16 +16,6 @@ module: aci_tenant_action_rule_profile
short_description: Manage action rule profiles (rtctrl:AttrP) short_description: Manage action rule profiles (rtctrl:AttrP)
description: description:
- Manage action rule profiles on Cisco ACI fabrics. - Manage action rule profiles on Cisco ACI fabrics.
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(rtctrl:AttrP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
action_rule: action_rule:
@ -51,6 +41,16 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(rtctrl:AttrP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
# FIXME: Add more, better examples # FIXME: Add more, better examples
@ -170,15 +170,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
action_rule=dict(type='str', required=False, aliases=['action_rule_name', 'name']), # Not required for querying all objects action_rule=dict(type='str', aliases=['action_rule_name', 'name']), # Not required for querying all objects
tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )

@ -16,16 +16,6 @@ module: aci_tenant_ep_retention_policy
short_description: Manage End Point (EP) retention protocol policies (fv:EpRetPol) short_description: Manage End Point (EP) retention protocol policies (fv:EpRetPol)
description: description:
- Manage End Point (EP) retention protocol policies on Cisco ACI fabrics. - Manage End Point (EP) retention protocol policies on Cisco ACI fabrics.
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:EpRetPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Swetha Chunduri (@schunduri)
version_added: '2.4' version_added: '2.4'
options: options:
tenant: tenant:
@ -87,11 +77,21 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:EpRetPol).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Swetha Chunduri (@schunduri)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
- name: Add a new EPR policy - name: Add a new EPR policy
aci_epr_policy: aci_tenant_ep_retention_policy:
host: apic host: apic
username: admin username: admin
password: SomeSecretPassword password: SomeSecretPassword
@ -107,7 +107,7 @@ EXAMPLES = r'''
delegate_to: localhost delegate_to: localhost
- name: Remove an EPR policy - name: Remove an EPR policy
aci_epr_policy: aci_tenant_ep_retention_policy:
host: apic host: apic
username: admin username: admin
password: SomeSecretPassword password: SomeSecretPassword
@ -117,7 +117,7 @@ EXAMPLES = r'''
delegate_to: localhost delegate_to: localhost
- name: Query an EPR policy - name: Query an EPR policy
aci_epr_policy: aci_tenant_ep_retention_policy:
host: apic host: apic
username: admin username: admin
password: SomeSecretPassword password: SomeSecretPassword
@ -128,7 +128,7 @@ EXAMPLES = r'''
register: query_result register: query_result
- name: Query all EPR policies - name: Query all EPR policies
aci_epr_policy: aci_tenant_ep_retention_policy:
host: apic host: apic
username: admin username: admin
password: SomeSecretPassword password: SomeSecretPassword
@ -242,17 +242,20 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
BOUNCE_TRIG_MAPPING = dict(coop='protocol', rarp='rarp-flood') BOUNCE_TRIG_MAPPING = dict(
coop='protocol',
rarp='rarp-flood',
)
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
epr_policy=dict(type='str', aliases=['epr_name', 'name']), epr_policy=dict(type='str', aliases=['epr_name', 'name']), # Not required for querying all objects
bounce_age=dict(type='int'), bounce_age=dict(type='int'),
bounce_trigger=dict(type='str', choices=['coop', 'flood']), bounce_trigger=dict(type='str', choices=['coop', 'flood']),
hold_interval=dict(type='int'), hold_interval=dict(type='int'),

@ -16,16 +16,6 @@ module: aci_tenant_span_dst_group
short_description: Manage SPAN destination groups (span:DestGrp) short_description: Manage SPAN destination groups (span:DestGrp)
description: description:
- Manage SPAN destination groups on Cisco ACI fabrics. - Manage SPAN destination groups on Cisco ACI fabrics.
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(span:DestGrp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
version_added: '2.4' version_added: '2.4'
options: options:
dst_group: dst_group:
@ -53,6 +43,16 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(span:DestGrp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Dag Wieers (@dagwieers)
''' '''
# FIXME: Add more, better examples # FIXME: Add more, better examples
@ -172,15 +172,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
dst_group=dict(type='str', required=False, aliases=['name']), # Not required for querying all objects tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all objects dst_group=dict(type='str', aliases=['name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )

@ -16,16 +16,6 @@ module: aci_tenant_span_src_group
short_description: Manage SPAN source groups (span:SrcGrp) short_description: Manage SPAN source groups (span:SrcGrp)
description: description:
- Manage SPAN source groups on Cisco ACI fabrics. - Manage SPAN source groups on Cisco ACI fabrics.
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(span:SrcGrp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
admin_state: admin_state:
@ -60,6 +50,16 @@ options:
type: str type: str
aliases: [ tenant_name ] aliases: [ tenant_name ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(span:SrcGrp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -180,19 +180,19 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
src_group=dict(type='str', aliases=['name']), # Not required for querying all objects
admin_state=dict(type='raw'), # Turn into a boolean in v2.9 admin_state=dict(type='raw'), # Turn into a boolean in v2.9
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
dst_group=dict(type='str'), dst_group=dict(type='str'),
src_group=dict(type='str', required=False, aliases=['name']), # Not required for querying all objects
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all objects
) )
module = AnsibleModule( module = AnsibleModule(

@ -16,18 +16,6 @@ module: aci_tenant_span_src_group_to_dst_group
short_description: Bind SPAN source groups to destination groups (span:SpanLbl) short_description: Bind SPAN source groups to destination groups (span:SpanLbl)
description: description:
- Bind SPAN source groups to associated destinaton groups on Cisco ACI fabrics. - Bind SPAN source groups to associated destinaton groups on Cisco ACI fabrics.
notes:
- The C(tenant), C(src_group), and C(dst_group) must exist before using this module in your playbook.
The M(aci_tenant), M(aci_tenant_span_src_group), and M(aci_tenant_span_dst_group) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_tenant_span_src_group
- module: aci_tenant_span_dst_group
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(span:SrcGrp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
description: description:
@ -56,6 +44,18 @@ options:
type: str type: str
aliases: [ tenant_name ] aliases: [ tenant_name ]
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant), C(src_group), and C(dst_group) must exist before using this module in your playbook.
The M(aci_tenant), M(aci_tenant_span_src_group), and M(aci_tenant_span_dst_group) modules can be used for this.
seealso:
- module: aci_tenant
- module: aci_tenant_span_src_group
- module: aci_tenant_span_dst_group
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(span:SrcGrp).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -175,18 +175,18 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
description=dict(type='str', aliases=['descr']), tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
dst_group=dict(type='str'), # Not required for querying all objects dst_group=dict(type='str'), # Not required for querying all objects
src_group=dict(type='str'), # Not required for querying all objects src_group=dict(type='str'), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
) )
module = AnsibleModule( module = AnsibleModule(

@ -18,13 +18,6 @@ module: aci_vlan_pool
short_description: Manage VLAN pools (fvns:VlanInstP) short_description: Manage VLAN pools (fvns:VlanInstP)
description: description:
- Manage VLAN pools on Cisco ACI fabrics. - Manage VLAN pools on Cisco ACI fabrics.
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fvns:VlanInstP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
- Dag Wieers (@dagwieers)
version_added: '2.5' version_added: '2.5'
options: options:
pool_allocation_mode: pool_allocation_mode:
@ -51,6 +44,13 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
seealso:
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fvns:VlanInstP).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -201,15 +201,15 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
description=dict(type='str', aliases=['descr']),
pool=dict(type='str', aliases=['name', 'pool_name']), # Not required for querying all objects pool=dict(type='str', aliases=['name', 'pool_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),
pool_allocation_mode=dict(type='str', aliases=['allocation_mode', 'mode'], choices=['dynamic', 'static']), pool_allocation_mode=dict(type='str', aliases=['allocation_mode', 'mode'], choices=['dynamic', 'static']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )

@ -18,16 +18,6 @@ module: aci_vlan_pool_encap_block
short_description: Manage encap blocks assigned to VLAN pools (fvns:EncapBlk) short_description: Manage encap blocks assigned to VLAN pools (fvns:EncapBlk)
description: description:
- Manage VLAN encap blocks that are assigned to VLAN pools on Cisco ACI fabrics. - Manage VLAN encap blocks that are assigned to VLAN pools on Cisco ACI fabrics.
notes:
- The C(pool) must exist in order to add or delete a encap block.
seealso:
- module: aci_vlan_pool
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fvns:EncapBlk).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
- Dag Wieers (@dagwieers)
version_added: '2.5' version_added: '2.5'
options: options:
allocation_mode: allocation_mode:
@ -75,6 +65,16 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(pool) must exist in order to add or delete a encap block.
seealso:
- module: aci_vlan_pool
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fvns:EncapBlk).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
- Dag Wieers (@dagwieers)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -237,20 +237,20 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
allocation_mode=dict(type='str', aliases=['mode'], choices=['dynamic', 'inherit', 'static']),
description=dict(type='str', aliases=['descr']),
pool=dict(type='str', aliases=['pool_name']), # Not required for querying all objects pool=dict(type='str', aliases=['pool_name']), # Not required for querying all objects
pool_allocation_mode=dict(type='str', aliases=['pool_mode'], choices=['dynamic', 'static']),
block_name=dict(type='str', aliases=['name']), # Not required for querying all objects block_name=dict(type='str', aliases=['name']), # Not required for querying all objects
block_end=dict(type='int', aliases=['end']), # Not required for querying all objects block_end=dict(type='int', aliases=['end']), # Not required for querying all objects
block_start=dict(type='int', aliases=["start"]), # Not required for querying all objects block_start=dict(type='int', aliases=["start"]), # Not required for querying all objects
allocation_mode=dict(type='str', aliases=['mode'], choices=['dynamic', 'inherit', 'static']),
description=dict(type='str', aliases=['descr']),
pool_allocation_mode=dict(type='str', aliases=['pool_mode'], choices=['dynamic', 'static']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
) )

@ -17,16 +17,6 @@ short_description: Manage contexts or VRFs (fv:Ctx)
description: description:
- Manage contexts or VRFs on Cisco ACI fabrics. - Manage contexts or VRFs on Cisco ACI fabrics.
- Each context is a private network associated to a tenant, i.e. VRF. - Each context is a private network associated to a tenant, i.e. VRF.
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:Ctx).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
version_added: '2.4' version_added: '2.4'
options: options:
tenant: tenant:
@ -62,6 +52,16 @@ options:
choices: [ absent, present, query ] choices: [ absent, present, query ]
default: present default: present
extends_documentation_fragment: aci extends_documentation_fragment: aci
notes:
- The C(tenant) used must exist before using this module in your playbook.
The M(aci_tenant) module can be used for this.
seealso:
- module: aci_tenant
- name: APIC Management Information Model reference
description: More information about the internal APIC class B(fv:Ctx).
link: https://developer.cisco.com/docs/apic-mim-ref/
author:
- Jacob McGill (@jmcgill298)
''' '''
EXAMPLES = r''' EXAMPLES = r'''
@ -214,19 +214,19 @@ url:
sample: https://10.11.12.13/api/mo/uni/tn-production.json sample: https://10.11.12.13/api/mo/uni/tn-production.json
''' '''
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
from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
def main(): def main():
argument_spec = aci_argument_spec() argument_spec = aci_argument_spec()
argument_spec.update( argument_spec.update(
tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
vrf=dict(type='str', aliases=['context', 'name', 'vrf_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']), description=dict(type='str', aliases=['descr']),
policy_control_direction=dict(choices=['ingress', 'egress'], type='str'), policy_control_direction=dict(type='str', choices=['egress', 'ingress']),
policy_control_preference=dict(choices=['enforced', 'unenforced'], type='str'), policy_control_preference=dict(type='str', choices=['enforced', 'unenforced']),
state=dict(choices=['absent', 'present', 'query'], type='str', default='present'), state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all objects
vrf=dict(type='str', required=False, aliases=['context', 'name', 'vrf_name']), # Not required for querying all objects
) )
module = AnsibleModule( module = AnsibleModule(

@ -168,7 +168,7 @@
- name: missing required param - error message works - name: missing required param - error message works
aci_encap_pool_range: aci_encap_pool_range:
<<: *aci_range_present <<: *aci_range_present
pool_type: "{{ fake_var | default(omit) }}" pool_type: '{{ omit }}'
ignore_errors: yes ignore_errors: yes
register: range_present_pool_type register: range_present_pool_type
@ -193,7 +193,7 @@
- name: missing required param - error message works - name: missing required param - error message works
aci_encap_pool_range: aci_encap_pool_range:
<<: *aci_range_present <<: *aci_range_present
pool_allocation_mode: "{{ fake_var | default(omit) }}" pool_allocation_mode: '{{ omit }}'
ignore_errors: yes ignore_errors: yes
register: range_present_allocation register: range_present_allocation
@ -220,7 +220,7 @@
- name: query vlan pool range - from, to, and name are filtered - name: query vlan pool range - from, to, and name are filtered
aci_encap_pool_range: &aci_range_query_filter aci_encap_pool_range: &aci_range_query_filter
<<: *aci_range_query <<: *aci_range_query
pool: "{{ fake_var | default(omit) }}" pool: '{{ omit }}'
register: range_query_from_to_name register: range_query_from_to_name
- name: query assertions - name: query assertions
@ -238,7 +238,7 @@
- name: query vlan pool range - from and name are filtered - name: query vlan pool range - from and name are filtered
aci_encap_pool_range: aci_encap_pool_range:
<<: *aci_range_query_filter <<: *aci_range_query_filter
range_end: "{{ fake_var | default(omit) }}" range_end: '{{ omit }}'
register: range_query_from_name register: range_query_from_name
- name: query assertions - name: query assertions
@ -254,7 +254,7 @@
- name: query vlan pool range - to and name are filtered - name: query vlan pool range - to and name are filtered
aci_encap_pool_range: aci_encap_pool_range:
<<: *aci_range_query_filter <<: *aci_range_query_filter
range_start: "{{ fake_var | default(omit) }}" range_start: '{{ omit }}'
register: range_query_to_name register: range_query_to_name
- name: query assertions - name: query assertions
@ -270,8 +270,8 @@
- name: query vlan pool range - name is filtered - name: query vlan pool range - name is filtered
aci_encap_pool_range: aci_encap_pool_range:
<<: *aci_range_query_filter <<: *aci_range_query_filter
range_start: "{{ fake_var | default(omit) }}" range_start: '{{ omit) }}'
range_end: "{{ fake_var | default(omit) }}" range_end: '{{ omit }}'
register: range_query_name register: range_query_name
- name: query assertions - name: query assertions
@ -285,7 +285,7 @@
- name: query vlan pool range - from and to are filtered - name: query vlan pool range - from and to are filtered
aci_encap_pool_range: aci_encap_pool_range:
<<: *aci_range_query_filter <<: *aci_range_query_filter
range_name: "{{ fake_var | default(omit) }}" range_name: '{{ omit }}'
register: range_query_from_to register: range_query_from_to
- name: query assertions - name: query assertions
@ -317,7 +317,7 @@
aci_encap_pool_range: aci_encap_pool_range:
<<: *aci_pool_present <<: *aci_pool_present
state: query state: query
pool: "{{ fake_var | default(omit) }}" pool: '{{ omit }}'
register: range_query_all register: range_query_all
- name: query assertions - name: query assertions

Loading…
Cancel
Save