summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDag Wieers <dag@wieers.com>2019-02-26 14:55:40 +0100
committerGitHub <noreply@github.com>2019-02-26 14:55:40 +0100
commit076562e5c2c690ecd2d4ecccb0a1da370ef60420 (patch)
tree9c219fd5ae3f775ffd35136da7b164b131b367e0
parentbf3c291606ccd92272038d7df00b10ba791e4592 (diff)
downloadansible-076562e5c2c690ecd2d4ecccb0a1da370ef60420.tar.gz
ACI: Various changes and doc updates (#52957)
* ACI: Various changes and doc updates * Fix typos
-rw-r--r--lib/ansible/modules/network/aci/aci_aaa_user.py34
-rw-r--r--lib/ansible/modules/network/aci/aci_aaa_user_certificate.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_access_port_block_to_access_port.py18
-rw-r--r--lib/ansible/modules/network/aci/aci_access_port_to_interface_policy_leaf_profile.py14
-rw-r--r--lib/ansible/modules/network/aci/aci_aep.py14
-rw-r--r--lib/ansible/modules/network/aci/aci_aep_to_domain.py24
-rw-r--r--lib/ansible/modules/network/aci/aci_ap.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_bd.py22
-rw-r--r--lib/ansible/modules/network/aci/aci_bd_subnet.py38
-rw-r--r--lib/ansible/modules/network/aci/aci_bd_to_l3out.py36
-rw-r--r--lib/ansible/modules/network/aci/aci_config_rollback.py14
-rw-r--r--lib/ansible/modules/network/aci/aci_config_snapshot.py24
-rw-r--r--lib/ansible/modules/network/aci/aci_contract.py32
-rw-r--r--lib/ansible/modules/network/aci/aci_contract_subject.py31
-rw-r--r--lib/ansible/modules/network/aci/aci_contract_subject_to_filter.py30
-rw-r--r--lib/ansible/modules/network/aci/aci_domain.py19
-rw-r--r--lib/ansible/modules/network/aci/aci_domain_to_encap_pool.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_domain_to_vlan_pool.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_encap_pool.py28
-rw-r--r--lib/ansible/modules/network/aci/aci_encap_pool_range.py22
-rw-r--r--lib/ansible/modules/network/aci/aci_epg.py24
-rw-r--r--lib/ansible/modules/network/aci/aci_epg_monitoring_policy.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_epg_to_contract.py43
-rw-r--r--lib/ansible/modules/network/aci/aci_epg_to_domain.py34
-rw-r--r--lib/ansible/modules/network/aci/aci_fabric_node.py14
-rw-r--r--lib/ansible/modules/network/aci/aci_filter.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_filter_entry.py24
-rw-r--r--lib/ansible/modules/network/aci/aci_firmware_source.py14
-rw-r--r--lib/ansible/modules/network/aci/aci_interface_policy_fc.py16
-rw-r--r--lib/ansible/modules/network/aci/aci_interface_policy_l2.py22
-rw-r--r--lib/ansible/modules/network/aci/aci_interface_policy_leaf_policy_group.py24
-rw-r--r--lib/ansible/modules/network/aci/aci_interface_policy_leaf_profile.py14
-rw-r--r--lib/ansible/modules/network/aci/aci_interface_policy_lldp.py16
-rw-r--r--lib/ansible/modules/network/aci/aci_interface_policy_mcp.py16
-rw-r--r--lib/ansible/modules/network/aci/aci_interface_policy_ospf.py18
-rw-r--r--lib/ansible/modules/network/aci/aci_interface_policy_port_channel.py18
-rw-r--r--lib/ansible/modules/network/aci/aci_interface_policy_port_security.py16
-rw-r--r--lib/ansible/modules/network/aci/aci_interface_selector_to_switch_policy_leaf_profile.py20
-rw-r--r--lib/ansible/modules/network/aci/aci_l3out.py30
-rw-r--r--lib/ansible/modules/network/aci/aci_l3out_route_tag_policy.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_rest.py30
-rw-r--r--lib/ansible/modules/network/aci/aci_static_binding_to_epg.py87
-rw-r--r--lib/ansible/modules/network/aci/aci_switch_leaf_selector.py24
-rw-r--r--lib/ansible/modules/network/aci/aci_switch_policy_leaf_profile.py16
-rw-r--r--lib/ansible/modules/network/aci/aci_switch_policy_vpc_protection_group.py16
-rw-r--r--lib/ansible/modules/network/aci/aci_taboo_contract.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_tenant.py16
-rw-r--r--lib/ansible/modules/network/aci/aci_tenant_action_rule_profile.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_tenant_ep_retention_policy.py37
-rw-r--r--lib/ansible/modules/network/aci/aci_tenant_span_dst_group.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_tenant_span_src_group.py26
-rw-r--r--lib/ansible/modules/network/aci/aci_tenant_span_src_group_to_dst_group.py30
-rw-r--r--lib/ansible/modules/network/aci/aci_vlan_pool.py18
-rw-r--r--lib/ansible/modules/network/aci/aci_vlan_pool_encap_block.py28
-rw-r--r--lib/ansible/modules/network/aci/aci_vrf.py32
-rw-r--r--test/integration/targets/aci_encap_pool_range/tasks/vlan.yml18
56 files changed, 716 insertions, 685 deletions
diff --git a/lib/ansible/modules/network/aci/aci_aaa_user.py b/lib/ansible/modules/network/aci/aci_aaa_user.py
index 38381745d1..75e81db21f 100644
--- a/lib/ansible/modules/network/aci/aci_aaa_user.py
+++ b/lib/ansible/modules/network/aci/aci_aaa_user.py
@@ -17,19 +17,6 @@ module: aci_aaa_user
short_description: Manage AAA users (aaa:User)
description:
- 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:
- python-dateutil
version_added: '2.5'
@@ -96,6 +83,19 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -249,9 +249,6 @@ url:
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:
from dateutil.tz import tzutc
import dateutil.parser
@@ -259,6 +256,9 @@ try:
except ImportError:
HAS_DATEUTIL = False
+from ansible.module_utils.basic import AnsibleModule
+from ansible.module_utils.network.aci.aci import ACIModule, aci_argument_spec
+
def main():
argument_spec = aci_argument_spec()
@@ -266,7 +266,7 @@ def main():
aaa_password=dict(type='str', no_log=True),
aaa_password_lifetime=dict(type='int'),
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'),
description=dict(type='str', aliases=['descr']),
email=dict(type='str'),
diff --git a/lib/ansible/modules/network/aci/aci_aaa_user_certificate.py b/lib/ansible/modules/network/aci/aci_aaa_user_certificate.py
index 2ce6b906f5..d631cef8ad 100644
--- a/lib/ansible/modules/network/aci/aci_aaa_user_certificate.py
+++ b/lib/ansible/modules/network/aci/aci_aaa_user_certificate.py
@@ -17,16 +17,6 @@ module: aci_aaa_user_certificate
short_description: Manage AAA user certificates (aaa:UserCert)
description:
- 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'
options:
aaa_user:
@@ -58,6 +48,16 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -209,8 +209,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
ACI_MAPPING = dict(
appuser=dict(
@@ -227,9 +227,9 @@ ACI_MAPPING = dict(
def main():
argument_spec = aci_argument_spec()
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']),
- 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
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
diff --git a/lib/ansible/modules/network/aci/aci_access_port_block_to_access_port.py b/lib/ansible/modules/network/aci/aci_access_port_block_to_access_port.py
index 4e3808419e..5d91e31ef4 100644
--- a/lib/ansible/modules/network/aci/aci_access_port_block_to_access_port.py
+++ b/lib/ansible/modules/network/aci/aci_access_port_block_to_access_port.py
@@ -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)
description:
- 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'
options:
leaf_interface_profile:
@@ -76,6 +70,12 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -255,8 +255,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
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
leaf_port_blk=dict(type='str', aliases=['leaf_port_blk_name']), # Not required for querying all objects
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
- to_port=dict(type='str', aliases=['to', 'toPort', 'to_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']),
from_card=dict(type='str', aliases=['from_card_range']),
to_card=dict(type='str', aliases=['to_card_range']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
diff --git a/lib/ansible/modules/network/aci/aci_access_port_to_interface_policy_leaf_profile.py b/lib/ansible/modules/network/aci/aci_access_port_to_interface_policy_leaf_profile.py
index e43de17b8a..c0d33cc236 100644
--- a/lib/ansible/modules/network/aci/aci_access_port_to_interface_policy_leaf_profile.py
+++ b/lib/ansible/modules/network/aci/aci_access_port_to_interface_policy_leaf_profile.py
@@ -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)
description:
- 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'
options:
leaf_interface_profile:
@@ -119,6 +113,12 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -276,8 +276,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
INTERFACE_TYPE_MAPPING = dict(
breakout='uni/infra/funcprof/brkoutportgrp-{0}',
diff --git a/lib/ansible/modules/network/aci/aci_aep.py b/lib/ansible/modules/network/aci/aci_aep.py
index c3ddede046..bed57e0e17 100644
--- a/lib/ansible/modules/network/aci/aci_aep.py
+++ b/lib/ansible/modules/network/aci/aci_aep.py
@@ -17,12 +17,6 @@ short_description: Manage attachable Access Entity Profile (AEP) objects (infra:
description:
- Connect to external virtual and physical domains by using
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'
options:
aep:
@@ -52,6 +46,12 @@ options:
default: present
choices: [ absent, present, query ]
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'''
@@ -199,8 +199,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
diff --git a/lib/ansible/modules/network/aci/aci_aep_to_domain.py b/lib/ansible/modules/network/aci/aci_aep_to_domain.py
index 65a4f612d5..c7b178bfad 100644
--- a/lib/ansible/modules/network/aci/aci_aep_to_domain.py
+++ b/lib/ansible/modules/network/aci/aci_aep_to_domain.py
@@ -17,17 +17,6 @@ module: aci_aep_to_domain
short_description: Bind AEPs to Physical or Virtual Domains (infra:RsDomP)
description:
- 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'
options:
aep:
@@ -61,6 +50,17 @@ options:
type: str
choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ]
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'''
@@ -213,8 +213,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
VM_PROVIDER_MAPPING = dict(
cloudfoundry='CloudFoundry',
diff --git a/lib/ansible/modules/network/aci/aci_ap.py b/lib/ansible/modules/network/aci/aci_ap.py
index 6ac50732d3..54071063c8 100644
--- a/lib/ansible/modules/network/aci/aci_ap.py
+++ b/lib/ansible/modules/network/aci/aci_ap.py
@@ -16,17 +16,6 @@ module: aci_ap
short_description: Manage top level Application Profile (AP) objects (fv:Ap)
description:
- 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'
options:
tenant:
@@ -54,6 +43,17 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -204,8 +204,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
@@ -213,7 +213,7 @@ def main():
argument_spec.update(
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
- description=dict(type='str', aliases=['descr'], required=False),
+ description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
diff --git a/lib/ansible/modules/network/aci/aci_bd.py b/lib/ansible/modules/network/aci/aci_bd.py
index d9336ea96c..a28780c2eb 100644
--- a/lib/ansible/modules/network/aci/aci_bd.py
+++ b/lib/ansible/modules/network/aci/aci_bd.py
@@ -16,16 +16,6 @@ module: aci_bd
short_description: Manage Bridge Domains (BD) objects (fv:BD)
description:
- 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'
options:
arp_flooding:
@@ -144,6 +134,16 @@ options:
type: str
aliases: [ vrf_name ]
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'''
@@ -326,8 +326,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
diff --git a/lib/ansible/modules/network/aci/aci_bd_subnet.py b/lib/ansible/modules/network/aci/aci_bd_subnet.py
index 3e09211cea..9afde0a754 100644
--- a/lib/ansible/modules/network/aci/aci_bd_subnet.py
+++ b/lib/ansible/modules/network/aci/aci_bd_subnet.py
@@ -16,19 +16,6 @@ module: aci_bd_subnet
short_description: Manage Subnets (fv:Subnet)
description:
- 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'
options:
bd:
@@ -118,6 +105,19 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -333,11 +333,15 @@ url:
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.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():
diff --git a/lib/ansible/modules/network/aci/aci_bd_to_l3out.py b/lib/ansible/modules/network/aci/aci_bd_to_l3out.py
index f2a83d3a1b..07ca49e33a 100644
--- a/lib/ansible/modules/network/aci/aci_bd_to_l3out.py
+++ b/lib/ansible/modules/network/aci/aci_bd_to_l3out.py
@@ -16,17 +16,6 @@ module: aci_bd_to_l3out
short_description: Bind Bridge Domain to L3 Out (fv:RsBDToOut)
description:
- 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'
options:
bd:
@@ -51,6 +40,17 @@ options:
choices: [ absent, present, query ]
default: present
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''' # '''
@@ -160,11 +160,15 @@ url:
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.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():
@@ -172,8 +176,8 @@ def main():
argument_spec.update(
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
- state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
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(
diff --git a/lib/ansible/modules/network/aci/aci_config_rollback.py b/lib/ansible/modules/network/aci/aci_config_rollback.py
index 847aa8706a..a65044be74 100644
--- a/lib/ansible/modules/network/aci/aci_config_rollback.py
+++ b/lib/ansible/modules/network/aci/aci_config_rollback.py
@@ -17,13 +17,6 @@ short_description: Provides rollback and rollback preview functionality (config:
description:
- Provides rollback and rollback preview functionality for Cisco ACI fabrics.
- 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'
options:
compare_export_policy:
@@ -79,6 +72,13 @@ options:
choices: [ preview, rollback ]
default: rollback
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'''
diff --git a/lib/ansible/modules/network/aci/aci_config_snapshot.py b/lib/ansible/modules/network/aci/aci_config_snapshot.py
index b21950366f..c6d99310e5 100644
--- a/lib/ansible/modules/network/aci/aci_config_snapshot.py
+++ b/lib/ansible/modules/network/aci/aci_config_snapshot.py
@@ -18,17 +18,6 @@ description:
- Manage Config Snapshots on Cisco ACI fabrics.
- Creating new Snapshots is done using the configExportP 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'
options:
description:
@@ -70,6 +59,17 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -219,8 +219,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
diff --git a/lib/ansible/modules/network/aci/aci_contract.py b/lib/ansible/modules/network/aci/aci_contract.py
index 721547b25f..a3a49d853d 100644
--- a/lib/ansible/modules/network/aci/aci_contract.py
+++ b/lib/ansible/modules/network/aci/aci_contract.py
@@ -16,19 +16,6 @@ module: aci_contract
short_description: Manage contract resources (vz:BrCP)
description:
- 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'
options:
contract:
@@ -75,6 +62,19 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -226,15 +226,15 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
- contract=dict(type='str', required=False, 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
+ contract=dict(type='str', aliases=['contract_name', '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']),
scope=dict(type='str', choices=['application-profile', 'context', 'global', 'tenant']),
priority=dict(type='str', choices=['level1', 'level2', 'level3', 'unspecified']), # No default provided on purpose
diff --git a/lib/ansible/modules/network/aci/aci_contract_subject.py b/lib/ansible/modules/network/aci/aci_contract_subject.py
index bed455a34e..8f00126c25 100644
--- a/lib/ansible/modules/network/aci/aci_contract_subject.py
+++ b/lib/ansible/modules/network/aci/aci_contract_subject.py
@@ -16,17 +16,6 @@ module: aci_contract_subject
short_description: Manage initial Contract Subjects (vz:Subj)
description:
- 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'
options:
tenant:
@@ -89,6 +78,17 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -245,10 +245,15 @@ url:
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.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():
diff --git a/lib/ansible/modules/network/aci/aci_contract_subject_to_filter.py b/lib/ansible/modules/network/aci/aci_contract_subject_to_filter.py
index 21274597ff..120b64dbd0 100644
--- a/lib/ansible/modules/network/aci/aci_contract_subject_to_filter.py
+++ b/lib/ansible/modules/network/aci/aci_contract_subject_to_filter.py
@@ -16,19 +16,6 @@ module: aci_contract_subject_to_filter
short_description: Bind Contract Subjects to Filters (vz:RsSubjFiltAtt)
description:
- 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'
options:
contract:
@@ -67,6 +54,19 @@ options:
required: yes
aliases: [ tenant_name ]
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'''
@@ -227,8 +227,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
@@ -236,9 +236,9 @@ def main():
argument_spec.update(
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
- log=dict(tyep='str', choices=['log', 'none'], aliases=['directive']),
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
+ log=dict(tyep='str', choices=['log', 'none'], aliases=['directive']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
diff --git a/lib/ansible/modules/network/aci/aci_domain.py b/lib/ansible/modules/network/aci/aci_domain.py
index ed0148eff4..eb8f87e67c 100644
--- a/lib/ansible/modules/network/aci/aci_domain.py
+++ b/lib/ansible/modules/network/aci/aci_domain.py
@@ -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)
description:
- 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'
options:
domain:
@@ -78,6 +71,13 @@ options:
type: str
choices: [ avs, default, dvs, unknown ]
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'''
@@ -260,6 +260,7 @@ VM_PROVIDER_MAPPING = dict(
redhat='Redhat',
vmware='VMware',
)
+
VSWITCH_MAPPING = dict(
avs='n1kv',
default='default',
@@ -271,12 +272,12 @@ VSWITCH_MAPPING = dict(
def main():
argument_spec = aci_argument_spec()
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',
choices=['AF11', 'AF12', 'AF13', 'AF21', 'AF22', 'AF23', 'AF31', 'AF32', 'AF33', 'AF41', 'AF42', 'AF43',
'CS0', 'CS1', 'CS2', 'CS3', 'CS4', 'CS5', 'CS6', 'CS7', 'EF', 'VA', 'unspecified'],
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']),
multicast_address=dict(type='str'),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
diff --git a/lib/ansible/modules/network/aci/aci_domain_to_encap_pool.py b/lib/ansible/modules/network/aci/aci_domain_to_encap_pool.py
index 49ac49f5b1..243e3d26f2 100644
--- a/lib/ansible/modules/network/aci/aci_domain_to_encap_pool.py
+++ b/lib/ansible/modules/network/aci/aci_domain_to_encap_pool.py
@@ -20,14 +20,6 @@ description:
notes:
- 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.
-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'
options:
domain:
@@ -73,6 +65,14 @@ options:
type: str
choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ]
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'''
@@ -233,8 +233,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
VM_PROVIDER_MAPPING = dict(
cloudfoundry='CloudFoundry',
@@ -265,11 +265,11 @@ POOL_MAPPING = dict(
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
- domain=dict(type='str', aliases=['domain_name', 'domain_profile']),
- 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']),
+ domain_type=dict(type='str', required=True, choices=['fc', 'l2dom', 'l3dom', 'phys', 'vmm']),
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']),
vm_provider=dict(type='str', choices=['cloudfoundry', 'kubernetes', 'microsoft', 'openshift', 'openstack', 'redhat', 'vmware']),
)
diff --git a/lib/ansible/modules/network/aci/aci_domain_to_vlan_pool.py b/lib/ansible/modules/network/aci/aci_domain_to_vlan_pool.py
index 11655a5845..3431f776cc 100644
--- a/lib/ansible/modules/network/aci/aci_domain_to_vlan_pool.py
+++ b/lib/ansible/modules/network/aci/aci_domain_to_vlan_pool.py
@@ -17,17 +17,6 @@ module: aci_domain_to_vlan_pool
short_description: Bind Domain to VLAN Pools (infra:RsVlanNs)
description:
- 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'
options:
domain:
@@ -67,6 +56,17 @@ options:
type: str
choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ]
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'''
@@ -249,8 +249,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
VM_PROVIDER_MAPPING = dict(
cloudfoundry='CloudFoundry',
@@ -266,8 +266,8 @@ VM_PROVIDER_MAPPING = dict(
def main():
argument_spec = aci_argument_spec()
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_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_allocation_mode=dict(type='str', required=True, aliases=['allocation_mode', 'mode'], choices=['dynamic', 'static']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
diff --git a/lib/ansible/modules/network/aci/aci_encap_pool.py b/lib/ansible/modules/network/aci/aci_encap_pool.py
index 966091b91b..28fd7cef15 100644
--- a/lib/ansible/modules/network/aci/aci_encap_pool.py
+++ b/lib/ansible/modules/network/aci/aci_encap_pool.py
@@ -16,14 +16,6 @@ module: aci_encap_pool
short_description: Manage encap pools (fvns:VlanInstP, fvns:VxlanInstP, fvns:VsanInstP)
description:
- 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'
options:
description:
@@ -49,7 +41,7 @@ options:
type: str
required: yes
aliases: [ type ]
- choices: [ vlan, vxlan, vsan]
+ choices: [ vlan, vsan, vxlan ]
state:
description:
- Use C(present) or C(absent) for adding or removing.
@@ -58,6 +50,14 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -209,10 +209,10 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
-ACI_MAPPING = dict(
+ACI_POOL_MAPPING = dict(
vlan=dict(
aci_class='fvnsVlanInstP',
aci_mo='infra/vlanns-',
@@ -231,10 +231,10 @@ ACI_MAPPING = dict(
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
+ pool_type=dict(type='str', required=True, aliases=['type'], choices=['vlan', 'vsan', 'vxlan']),
description=dict(type='str', aliases=['descr']),
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_type=dict(type='str', aliases=['type'], choices=['vlan', 'vxlan', 'vsan'], required=True),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
@@ -253,8 +253,8 @@ def main():
pool_allocation_mode = module.params['pool_allocation_mode']
state = module.params['state']
- aci_class = ACI_MAPPING[pool_type]["aci_class"]
- aci_mo = ACI_MAPPING[pool_type]["aci_mo"]
+ aci_class = ACI_POOL_MAPPING[pool_type]['aci_class']
+ aci_mo = ACI_POOL_MAPPING[pool_type]['aci_mo']
pool_name = pool
# ACI Pool URL requires the pool_allocation mode for vlan and vsan pools (ex: uni/infra/vlanns-[poolname]-static)
diff --git a/lib/ansible/modules/network/aci/aci_encap_pool_range.py b/lib/ansible/modules/network/aci/aci_encap_pool_range.py
index 908d4362d0..9b1b03026d 100644
--- a/lib/ansible/modules/network/aci/aci_encap_pool_range.py
+++ b/lib/ansible/modules/network/aci/aci_encap_pool_range.py
@@ -16,15 +16,6 @@ module: aci_encap_pool_range
short_description: Manage encap ranges assigned to pools (fvns:EncapBlk, fvns:VsanEncapBlk)
description:
- 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'
options:
allocation_mode:
@@ -81,6 +72,15 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -278,8 +278,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
ACI_POOL_MAPPING = dict(
vlan=dict(
@@ -300,11 +300,11 @@ ACI_POOL_MAPPING = dict(
def main():
argument_spec = aci_argument_spec()
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']),
description=dict(type='str', aliases=['descr']),
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_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_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
diff --git a/lib/ansible/modules/network/aci/aci_epg.py b/lib/ansible/modules/network/aci/aci_epg.py
index 2cfc567523..2e5d84e72d 100644
--- a/lib/ansible/modules/network/aci/aci_epg.py
+++ b/lib/ansible/modules/network/aci/aci_epg.py
@@ -16,17 +16,6 @@ module: aci_epg
short_description: Manage End Point Groups (EPG) objects (fv:AEPg)
description:
- 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'
options:
tenant:
@@ -89,6 +78,17 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -286,8 +286,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
diff --git a/lib/ansible/modules/network/aci/aci_epg_monitoring_policy.py b/lib/ansible/modules/network/aci/aci_epg_monitoring_policy.py
index 245d7815dd..57ecb68d35 100644
--- a/lib/ansible/modules/network/aci/aci_epg_monitoring_policy.py
+++ b/lib/ansible/modules/network/aci/aci_epg_monitoring_policy.py
@@ -16,16 +16,6 @@ module: aci_epg_monitoring_policy
short_description: Manage monitoring policies (mon:EPGPol)
description:
- 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'
options:
monitoring_policy:
@@ -53,6 +43,16 @@ options:
choices: [ absent, present, query ]
default: present
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
@@ -172,15 +172,15 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
- monitoring_policy=dict(type='str', required=False, aliases=['name']), # Not required for querying all objects
- tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all objects
+ monitoring_policy=dict(type='str', aliases=['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']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
diff --git a/lib/ansible/modules/network/aci/aci_epg_to_contract.py b/lib/ansible/modules/network/aci/aci_epg_to_contract.py
index 5b8d36e983..201544fb19 100644
--- a/lib/ansible/modules/network/aci/aci_epg_to_contract.py
+++ b/lib/ansible/modules/network/aci/aci_epg_to_contract.py
@@ -19,16 +19,6 @@ description:
notes:
- 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.
-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'
options:
ap:
@@ -77,6 +67,16 @@ options:
type: str
aliases: [ tenant_name ]
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'''
@@ -236,20 +236,35 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
-ACI_CLASS_MAPPING = {"consumer": {"class": "fvRsCons", "rn": "rscons-"}, "provider": {"class": "fvRsProv", "rn": "rsprov-"}}
-PROVIDER_MATCH_MAPPING = {"all": "All", "at_least_one": "AtleastOne", "at_most_one": "AtmostOne", "none": "None"}
+ACI_CLASS_MAPPING = dict(
+ 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():
argument_spec = aci_argument_spec()
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
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_type=dict(type='str', required=True, choices=['consumer', 'provider']),
priority=dict(type='str', choices=['level1', 'level2', 'level3', 'unspecified']),
provider_match=dict(type='str', choices=['all', 'at_least_one', 'at_most_one', 'none']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
diff --git a/lib/ansible/modules/network/aci/aci_epg_to_domain.py b/lib/ansible/modules/network/aci/aci_epg_to_domain.py
index 5d6e725f3b..2d2a4584eb 100644
--- a/lib/ansible/modules/network/aci/aci_epg_to_domain.py
+++ b/lib/ansible/modules/network/aci/aci_epg_to_domain.py
@@ -16,22 +16,6 @@ module: aci_epg_to_domain
short_description: Bind EPGs to Domains (fv:RsDomAtt)
description:
- 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'
options:
allow_useg:
@@ -115,6 +99,22 @@ options:
type: str
choices: [ cloudfoundry, kubernetes, microsoft, openshift, openstack, redhat, vmware ]
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'''
@@ -273,8 +273,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
VM_PROVIDER_MAPPING = dict(
cloudfoundry='CloudFoundry',
diff --git a/lib/ansible/modules/network/aci/aci_fabric_node.py b/lib/ansible/modules/network/aci/aci_fabric_node.py
index 38fed3836a..09b6ef0c3e 100644
--- a/lib/ansible/modules/network/aci/aci_fabric_node.py
+++ b/lib/ansible/modules/network/aci/aci_fabric_node.py
@@ -17,12 +17,6 @@ module: aci_fabric_node
short_description: Manage Fabric Node Members (fabric:NodeIdentP)
description:
- 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'
options:
pod_id:
@@ -62,6 +56,12 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -201,8 +201,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
# NOTE: (This problem is also present on the APIC GUI)
diff --git a/lib/ansible/modules/network/aci/aci_filter.py b/lib/ansible/modules/network/aci/aci_filter.py
index 18ca2a9033..85a7ad2f8f 100644
--- a/lib/ansible/modules/network/aci/aci_filter.py
+++ b/lib/ansible/modules/network/aci/aci_filter.py
@@ -17,16 +17,6 @@ short_description: Manages top level filter objects (vz:Filter)
description:
- Manages top level filter objects on Cisco ACI fabrics.
- 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'
options:
filter:
@@ -54,6 +44,16 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -205,15 +205,15 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
- filter=dict(type='str', required=False, 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
+ filter=dict(type='str', aliases=['name', 'filter_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']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
diff --git a/lib/ansible/modules/network/aci/aci_filter_entry.py b/lib/ansible/modules/network/aci/aci_filter_entry.py
index 264cb7c2cb..abe0c23c5f 100644
--- a/lib/ansible/modules/network/aci/aci_filter_entry.py
+++ b/lib/ansible/modules/network/aci/aci_filter_entry.py
@@ -16,17 +16,6 @@ module: aci_filter_entry
short_description: Manage filter entries (vz:Entry)
description:
- 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'
options:
arp_flag:
@@ -108,6 +97,17 @@ options:
type: str
aliases: [ tenant_name ]
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'''
@@ -230,8 +230,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
VALID_ARP_FLAGS = ['arp_reply', 'arp_request', 'unspecified']
VALID_ETHER_TYPES = ['arp', 'fcoe', 'ip', 'mac_security', 'mpls_ucast', 'trill', 'unspecified']
diff --git a/lib/ansible/modules/network/aci/aci_firmware_source.py b/lib/ansible/modules/network/aci/aci_firmware_source.py
index ccaf85294a..f5f7c6a463 100644
--- a/lib/ansible/modules/network/aci/aci_firmware_source.py
+++ b/lib/ansible/modules/network/aci/aci_firmware_source.py
@@ -17,13 +17,7 @@ module: aci_firmware_source
short_description: Manage firmware image sources (firmware:OSource)
description:
- Manage firmware image sources on Cisco ACI fabrics.
-author:
-- Dag Wieers (@dagwieers)
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:
source:
description:
@@ -62,6 +56,12 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -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.network.aci.aci import ACIModule, aci_argument_spec
def main():
diff --git a/lib/ansible/modules/network/aci/aci_interface_policy_fc.py b/lib/ansible/modules/network/aci/aci_interface_policy_fc.py
index 36a5b57e2b..ca128da427 100644
--- a/lib/ansible/modules/network/aci/aci_interface_policy_fc.py
+++ b/lib/ansible/modules/network/aci/aci_interface_policy_fc.py
@@ -16,13 +16,7 @@ module: aci_interface_policy_fc
short_description: Manage Fibre Channel interface policies (fc:IfPol)
description:
- Manage ACI Fiber Channel interface policies on Cisco ACI fabrics.
-author:
-- Dag Wieers (@dagwieers)
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:
fc_policy:
description:
@@ -49,6 +43,12 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -168,14 +168,14 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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']),
port_mode=dict(type='str', choices=['f', 'np']), # No default provided on purpose
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
diff --git a/lib/ansible/modules/network/aci/aci_interface_policy_l2.py b/lib/ansible/modules/network/aci/aci_interface_policy_l2.py
index a7ef6c33f8..ac151c3e26 100644
--- a/lib/ansible/modules/network/aci/aci_interface_policy_l2.py
+++ b/lib/ansible/modules/network/aci/aci_interface_policy_l2.py
@@ -16,13 +16,7 @@ module: aci_interface_policy_l2
short_description: Manage Layer 2 interface policies (l2:IfPol)
description:
- Manage Layer 2 interface policies on Cisco ACI fabrics.
-author:
-- Dag Wieers (@dagwieers)
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:
l2_policy:
description:
@@ -60,6 +54,12 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -178,17 +178,21 @@ url:
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.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
-QINQ_MAPPING = dict(core='corePort', disabled='disabled', edge='edgePort')
+QINQ_MAPPING = dict(
+ core='corePort',
+ disabled='disabled',
+ edge='edgePort',
+)
def main():
argument_spec = aci_argument_spec()
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']),
vlan_scope=dict(type='str', choices=['global', 'portlocal']), # No default provided on purpose
qinq=dict(type='str', choices=['core', 'disabled', 'edge']),
diff --git a/lib/ansible/modules/network/aci/aci_interface_policy_leaf_policy_group.py b/lib/ansible/modules/network/aci/aci_interface_policy_leaf_policy_group.py
index a8a33ed2ca..5b2d6c308a 100644
--- a/lib/ansible/modules/network/aci/aci_interface_policy_leaf_policy_group.py
+++ b/lib/ansible/modules/network/aci/aci_interface_policy_leaf_policy_group.py
@@ -17,15 +17,6 @@ module: aci_interface_policy_leaf_policy_group
short_description: Manage fabric interface policy leaf policy groups (infra:AccBndlGrp, infra:AccPortGrp)
description:
- 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'
options:
policy_group:
@@ -136,6 +127,15 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -313,18 +313,18 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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: 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']),
+ 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']),
cdp_policy=dict(type='str', aliases=['cdp_policy_name']),
mcp_policy=dict(type='str', aliases=['mcp_policy_name']),
diff --git a/lib/ansible/modules/network/aci/aci_interface_policy_leaf_profile.py b/lib/ansible/modules/network/aci/aci_interface_policy_leaf_profile.py
index dd61f034f0..d41ee5d16d 100644
--- a/lib/ansible/modules/network/aci/aci_interface_policy_leaf_profile.py
+++ b/lib/ansible/modules/network/aci/aci_interface_policy_leaf_profile.py
@@ -17,12 +17,6 @@ module: aci_interface_policy_leaf_profile
short_description: Manage fabric interface policy leaf profiles (infra:AccPortP)
description:
- 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'
options:
leaf_interface_profile:
@@ -44,6 +38,12 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -190,8 +190,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
diff --git a/lib/ansible/modules/network/aci/aci_interface_policy_lldp.py b/lib/ansible/modules/network/aci/aci_interface_policy_lldp.py
index 107c4bf5b3..490144e5b8 100644
--- a/lib/ansible/modules/network/aci/aci_interface_policy_lldp.py
+++ b/lib/ansible/modules/network/aci/aci_interface_policy_lldp.py
@@ -16,12 +16,6 @@ module: aci_interface_policy_lldp
short_description: Manage LLDP interface policies (lldp:IfPol)
description:
- 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'
options:
lldp_policy:
@@ -53,6 +47,12 @@ options:
choices: [ absent, present, query ]
default: present
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
@@ -173,14 +173,14 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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']),
receive_state=dict(type='raw'), # Turn into a boolean in v2.9
transmit_state=dict(type='raw'), # Turn into a boolean in v2.9
diff --git a/lib/ansible/modules/network/aci/aci_interface_policy_mcp.py b/lib/ansible/modules/network/aci/aci_interface_policy_mcp.py
index b41d40a6b3..529e5af455 100644
--- a/lib/ansible/modules/network/aci/aci_interface_policy_mcp.py
+++ b/lib/ansible/modules/network/aci/aci_interface_policy_mcp.py
@@ -16,12 +16,6 @@ module: aci_interface_policy_mcp
short_description: Manage MCP interface policies (mcp:IfPol)
description:
- 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'
options:
mcp:
@@ -48,6 +42,12 @@ options:
choices: [ absent, present, query ]
default: present
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
@@ -167,14 +167,14 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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']),
admin_state=dict(type='raw'), # Turn into a boolean in v2.9
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
diff --git a/lib/ansible/modules/network/aci/aci_interface_policy_ospf.py b/lib/ansible/modules/network/aci/aci_interface_policy_ospf.py
index c207c80a95..d1639f30b2 100644
--- a/lib/ansible/modules/network/aci/aci_interface_policy_ospf.py
+++ b/lib/ansible/modules/network/aci/aci_interface_policy_ospf.py
@@ -17,12 +17,6 @@ module: aci_interface_policy_ospf
short_description: Manage OSPF interface policies (ospf:IfPol)
description:
- 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'
options:
tenant:
@@ -135,6 +129,12 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -285,15 +285,15 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
- tenant=dict(type='str', required=False, 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
+ tenant=dict(type='str', aliases=['tenant_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']),
network_type=dict(type='str', choices=['bcast', 'p2p']),
cost=dict(type='int'),
diff --git a/lib/ansible/modules/network/aci/aci_interface_policy_port_channel.py b/lib/ansible/modules/network/aci/aci_interface_policy_port_channel.py
index eecd25e2da..39cce58144 100644
--- a/lib/ansible/modules/network/aci/aci_interface_policy_port_channel.py
+++ b/lib/ansible/modules/network/aci/aci_interface_policy_port_channel.py
@@ -16,12 +16,6 @@ module: aci_interface_policy_port_channel
short_description: Manage port channel interface policies (lacp:LagPol)
description:
- 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'
options:
port_channel:
@@ -97,6 +91,12 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -217,18 +217,18 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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']),
min_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'),
graceful_convergence=dict(type='bool'),
load_defer=dict(type='bool'),
diff --git a/lib/ansible/modules/network/aci/aci_interface_policy_port_security.py b/lib/ansible/modules/network/aci/aci_interface_policy_port_security.py
index 0e2f297e44..0afc90c035 100644
--- a/lib/ansible/modules/network/aci/aci_interface_policy_port_security.py
+++ b/lib/ansible/modules/network/aci/aci_interface_policy_port_security.py
@@ -16,12 +16,6 @@ module: aci_interface_policy_port_security
short_description: Manage port security (l2:PortSecurityPol)
description:
- 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'
options:
port_security:
@@ -49,6 +43,12 @@ options:
choices: [ absent, present, query ]
default: present
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
@@ -168,14 +168,14 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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']),
max_end_points=dict(type='int'),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
diff --git a/lib/ansible/modules/network/aci/aci_interface_selector_to_switch_policy_leaf_profile.py b/lib/ansible/modules/network/aci/aci_interface_selector_to_switch_policy_leaf_profile.py
index a212bffccf..991117b690 100644
--- a/lib/ansible/modules/network/aci/aci_interface_selector_to_switch_policy_leaf_profile.py
+++ b/lib/ansible/modules/network/aci/aci_interface_selector_to_switch_policy_leaf_profile.py
@@ -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)
description:
- 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'
options:
leaf_profile:
@@ -46,6 +37,15 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -186,8 +186,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
diff --git a/lib/ansible/modules/network/aci/aci_l3out.py b/lib/ansible/modules/network/aci/aci_l3out.py
index 0e28670688..cfe2480c6f 100644
--- a/lib/ansible/modules/network/aci/aci_l3out.py
+++ b/lib/ansible/modules/network/aci/aci_l3out.py
@@ -16,18 +16,6 @@ module: aci_l3out
short_description: Manage Layer 3 Outside (L3Out) objects (l3ext:Out)
description:
- 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'
options:
tenant:
@@ -92,6 +80,18 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -236,17 +236,17 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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']),
vrf=dict(type='str', aliases=['vrf_name']),
- tenant=dict(type='str', aliases=['tenant_name']),
description=dict(type='str', aliases=['descr']),
route_control=dict(type='list', choices=['export', 'import'], aliases=['route_control_enforcement']),
dscp=dict(type='str',
diff --git a/lib/ansible/modules/network/aci/aci_l3out_route_tag_policy.py b/lib/ansible/modules/network/aci/aci_l3out_route_tag_policy.py
index 88c7039136..d6a34d8112 100644
--- a/lib/ansible/modules/network/aci/aci_l3out_route_tag_policy.py
+++ b/lib/ansible/modules/network/aci/aci_l3out_route_tag_policy.py
@@ -16,16 +16,6 @@ module: aci_l3out_route_tag_policy
short_description: Manage route tag policies (l3ext:RouteTagPol)
description:
- 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'
options:
rtp:
@@ -59,6 +49,16 @@ options:
choices: [ absent, present, query ]
default: present
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
@@ -179,15 +179,15 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
- rtp=dict(type='str', required=False, aliases=['name', 'rtp_name']), # Not required for querying all objects
- tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for quering all objects
+ tenant=dict(type='str', 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']),
tag=dict(type='int'),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
diff --git a/lib/ansible/modules/network/aci/aci_rest.py b/lib/ansible/modules/network/aci/aci_rest.py
index 4858b0aa09..168c1a92ea 100644
--- a/lib/ansible/modules/network/aci/aci_rest.py
+++ b/lib/ansible/modules/network/aci/aci_rest.py
@@ -18,21 +18,6 @@ short_description: Direct access to the Cisco APIC REST API
description:
- 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.
-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'
requirements:
- lxml (when using XML payload)
@@ -72,6 +57,21 @@ options:
type: path
aliases: [ config_file ]
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'''
diff --git a/lib/ansible/modules/network/aci/aci_static_binding_to_epg.py b/lib/ansible/modules/network/aci/aci_static_binding_to_epg.py
index 4d2d50362c..fc27c93f24 100644
--- a/lib/ansible/modules/network/aci/aci_static_binding_to_epg.py
+++ b/lib/ansible/modules/network/aci/aci_static_binding_to_epg.py
@@ -17,18 +17,6 @@ module: aci_static_binding_to_epg
short_description: Bind static paths to EPGs (fv:RsPathAtt)
description:
- 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'
options:
tenant:
@@ -121,6 +109,18 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -279,8 +279,25 @@ url:
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.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)?
@@ -299,8 +316,8 @@ def main():
aliases=['interface_mode_name', 'mode']),
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
- leafs=dict(type='list', aliases=['leaves', 'nodes', 'paths', 'switches']),
- interface=dict(type='str'),
+ leafs=dict(type='list', aliases=['leaves', 'nodes', 'paths', 'switches']), # Not required for querying all objects
+ interface=dict(type='str'), # Not required for querying all objects
extpaths=dict(type='int'),
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
leafs.extend(str(leaf).split('-'))
if len(leafs) == 1:
- if interface_type != 'vpc':
- leafs = leafs[0]
- else:
+ if interface_type == 'vpc':
module.fail_json(msg='A interface_type of "vpc" requires 2 leafs')
+ leafs = leafs[0]
elif len(leafs) == 2:
- if interface_type == 'vpc':
- leafs = "-".join(leafs)
- else:
+ if interface_type != 'vpc':
module.fail_json(msg='The interface_types "switch_port", "port_channel", and "fex" \
do not support using multiple leafs for a single binding')
+ leafs = "-".join(leafs)
else:
module.fail_json(msg='The "leafs" parameter must not have more than 2 entries')
interface = module.params['interface']
extpaths = module.params['extpaths']
state = module.params['state']
- static_path = ''
if encap_id is not None:
- if encap_id in range(1, 4097):
- encap_id = 'vlan-{0}'.format(encap_id)
- else:
+ if encap_id not in range(1, 4097):
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 in range(1, 4097):
- primary_encap_id = 'vlan-{0}'.format(primary_encap_id)
- else:
+ if primary_encap_id not in range(1, 4097):
module.fail_json(msg='Valid VLAN assigments are from 1 to 4096')
+ primary_encap_id = 'vlan-{0}'.format(primary_encap_id)
- 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-{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]
+ static_path = INTERFACE_TYPE_MAPPING[interface_type].format(pod_id=pod_id, leafs=leafs, extpaths=extpaths, interface=interface)
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):
diff --git a/lib/ansible/modules/network/aci/aci_switch_leaf_selector.py b/lib/ansible/modules/network/aci/aci_switch_leaf_selector.py
index 6fbf18eaa2..14d3f1538a 100644
--- a/lib/ansible/modules/network/aci/aci_switch_leaf_selector.py
+++ b/lib/ansible/modules/network/aci/aci_switch_leaf_selector.py
@@ -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)
description:
- 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'
options:
description:
@@ -76,6 +65,17 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -233,8 +233,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
diff --git a/lib/ansible/modules/network/aci/aci_switch_policy_leaf_profile.py b/lib/ansible/modules/network/aci/aci_switch_policy_leaf_profile.py
index fd2454fcfe..2f83674463 100644
--- a/lib/ansible/modules/network/aci/aci_switch_policy_leaf_profile.py
+++ b/lib/ansible/modules/network/aci/aci_switch_policy_leaf_profile.py
@@ -17,13 +17,6 @@ module: aci_switch_policy_leaf_profile
short_description: Manage switch policy leaf profiles (infra:NodeP)
description:
- 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'
options:
leaf_profile:
@@ -44,6 +37,13 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -182,8 +182,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
diff --git a/lib/ansible/modules/network/aci/aci_switch_policy_vpc_protection_group.py b/lib/ansible/modules/network/aci/aci_switch_policy_vpc_protection_group.py
index 36780d1699..3559240f48 100644
--- a/lib/ansible/modules/network/aci/aci_switch_policy_vpc_protection_group.py
+++ b/lib/ansible/modules/network/aci/aci_switch_policy_vpc_protection_group.py
@@ -17,13 +17,6 @@ module: aci_switch_policy_vpc_protection_group
short_description: Manage switch policy explicit vPC protection groups (fabric:ExplicitGEp, fabric:NodePEp).
description:
- 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'
options:
protection_group:
@@ -61,6 +54,13 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -210,8 +210,8 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
diff --git a/lib/ansible/modules/network/aci/aci_taboo_contract.py b/lib/ansible/modules/network/aci/aci_taboo_contract.py
index f73ce5d7db..a1fa5de375 100644
--- a/lib/ansible/modules/network/aci/aci_taboo_contract.py
+++ b/lib/ansible/modules/network/aci/aci_taboo_contract.py
@@ -17,16 +17,6 @@ module: aci_taboo_contract
short_description: Manage taboo contracts (vz:BrCP)
description:
- 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'
options:
taboo_contract:
@@ -60,6 +50,16 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -209,15 +209,15 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
- taboo_contract=dict(type='str', required=False, aliases=['name']), # Not required for querying all contracts
- tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all contracts
+ taboo_contract=dict(type='str', aliases=['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']),
description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
diff --git a/lib/ansible/modules/network/aci/aci_tenant.py b/lib/ansible/modules/network/aci/aci_tenant.py
index 3f2b481d88..eb186f5c31 100644
--- a/lib/ansible/modules/network/aci/aci_tenant.py
+++ b/lib/ansible/modules/network/aci/aci_tenant.py
@@ -16,12 +16,6 @@ module: aci_tenant
short_description: Manage tenants (fv:Tenant)
description:
- 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'
options:
tenant:
@@ -43,6 +37,12 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -190,14 +190,14 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
diff --git a/lib/ansible/modules/network/aci/aci_tenant_action_rule_profile.py b/lib/ansible/modules/network/aci/aci_tenant_action_rule_profile.py
index bddb3da24d..bf042f1b46 100644
--- a/lib/ansible/modules/network/aci/aci_tenant_action_rule_profile.py
+++ b/lib/ansible/modules/network/aci/aci_tenant_action_rule_profile.py
@@ -16,16 +16,6 @@ module: aci_tenant_action_rule_profile
short_description: Manage action rule profiles (rtctrl:AttrP)
description:
- 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'
options:
action_rule:
@@ -51,6 +41,16 @@ options:
choices: [ absent, present, query ]
default: present
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
@@ -170,15 +170,15 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
- action_rule=dict(type='str', required=False, 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
+ action_rule=dict(type='str', aliases=['action_rule_name', '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']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
diff --git a/lib/ansible/modules/network/aci/aci_tenant_ep_retention_policy.py b/lib/ansible/modules/network/aci/aci_tenant_ep_retention_policy.py
index 11ba6c60e5..e481f3f7b4 100644
--- a/lib/ansible/modules/network/aci/aci_tenant_ep_retention_policy.py
+++ b/lib/ansible/modules/network/aci/aci_tenant_ep_retention_policy.py
@@ -16,16 +16,6 @@ module: aci_tenant_ep_retention_policy
short_description: Manage End Point (EP) retention protocol policies (fv:EpRetPol)
description:
- 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'
options:
tenant:
@@ -87,11 +77,21 @@ options:
choices: [ absent, present, query ]
default: present
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'''
- name: Add a new EPR policy
- aci_epr_policy:
+ aci_tenant_ep_retention_policy:
host: apic
username: admin
password: SomeSecretPassword
@@ -107,7 +107,7 @@ EXAMPLES = r'''
delegate_to: localhost
- name: Remove an EPR policy
- aci_epr_policy:
+ aci_tenant_ep_retention_policy:
host: apic
username: admin
password: SomeSecretPassword
@@ -117,7 +117,7 @@ EXAMPLES = r'''
delegate_to: localhost
- name: Query an EPR policy
- aci_epr_policy:
+ aci_tenant_ep_retention_policy:
host: apic
username: admin
password: SomeSecretPassword
@@ -128,7 +128,7 @@ EXAMPLES = r'''
register: query_result
- name: Query all EPR policies
- aci_epr_policy:
+ aci_tenant_ep_retention_policy:
host: apic
username: admin
password: SomeSecretPassword
@@ -242,17 +242,20 @@ url:
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.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():
argument_spec = aci_argument_spec()
argument_spec.update(
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_trigger=dict(type='str', choices=['coop', 'flood']),
hold_interval=dict(type='int'),
diff --git a/lib/ansible/modules/network/aci/aci_tenant_span_dst_group.py b/lib/ansible/modules/network/aci/aci_tenant_span_dst_group.py
index 7fefc27ccb..9fb76df8d9 100644
--- a/lib/ansible/modules/network/aci/aci_tenant_span_dst_group.py
+++ b/lib/ansible/modules/network/aci/aci_tenant_span_dst_group.py
@@ -16,16 +16,6 @@ module: aci_tenant_span_dst_group
short_description: Manage SPAN destination groups (span:DestGrp)
description:
- 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'
options:
dst_group:
@@ -53,6 +43,16 @@ options:
choices: [ absent, present, query ]
default: present
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
@@ -172,15 +172,15 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
- dst_group=dict(type='str', required=False, 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
+ dst_group=dict(type='str', aliases=['name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
diff --git a/lib/ansible/modules/network/aci/aci_tenant_span_src_group.py b/lib/ansible/modules/network/aci/aci_tenant_span_src_group.py
index c58eddedc7..64ef878b71 100644
--- a/lib/ansible/modules/network/aci/aci_tenant_span_src_group.py
+++ b/lib/ansible/modules/network/aci/aci_tenant_span_src_group.py
@@ -16,16 +16,6 @@ module: aci_tenant_span_src_group
short_description: Manage SPAN source groups (span:SrcGrp)
description:
- 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'
options:
admin_state:
@@ -60,6 +50,16 @@ options:
type: str
aliases: [ tenant_name ]
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'''
@@ -180,19 +180,19 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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
description=dict(type='str', aliases=['descr']),
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']),
- tenant=dict(type='str', required=False, aliases=['tenant_name']), # Not required for querying all objects
)
module = AnsibleModule(
diff --git a/lib/ansible/modules/network/aci/aci_tenant_span_src_group_to_dst_group.py b/lib/ansible/modules/network/aci/aci_tenant_span_src_group_to_dst_group.py
index 59e981aff8..d5f8a5a9f3 100644
--- a/lib/ansible/modules/network/aci/aci_tenant_span_src_group_to_dst_group.py
+++ b/lib/ansible/modules/network/aci/aci_tenant_span_src_group_to_dst_group.py
@@ -16,18 +16,6 @@ module: aci_tenant_span_src_group_to_dst_group
short_description: Bind SPAN source groups to destination groups (span:SpanLbl)
description:
- 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'
options:
description:
@@ -56,6 +44,18 @@ options:
type: str
aliases: [ tenant_name ]
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'''
@@ -175,18 +175,18 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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
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']),
- tenant=dict(type='str', aliases=['tenant_name']), # Not required for querying all objects
)
module = AnsibleModule(
diff --git a/lib/ansible/modules/network/aci/aci_vlan_pool.py b/lib/ansible/modules/network/aci/aci_vlan_pool.py
index f6ab9718b3..31503a1d64 100644
--- a/lib/ansible/modules/network/aci/aci_vlan_pool.py
+++ b/lib/ansible/modules/network/aci/aci_vlan_pool.py
@@ -18,13 +18,6 @@ module: aci_vlan_pool
short_description: Manage VLAN pools (fvns:VlanInstP)
description:
- 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'
options:
pool_allocation_mode:
@@ -51,6 +44,13 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -201,15 +201,15 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
argument_spec.update(
- description=dict(type='str', aliases=['descr']),
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']),
state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
diff --git a/lib/ansible/modules/network/aci/aci_vlan_pool_encap_block.py b/lib/ansible/modules/network/aci/aci_vlan_pool_encap_block.py
index 7df5386188..e8cb2f4179 100644
--- a/lib/ansible/modules/network/aci/aci_vlan_pool_encap_block.py
+++ b/lib/ansible/modules/network/aci/aci_vlan_pool_encap_block.py
@@ -18,16 +18,6 @@ module: aci_vlan_pool_encap_block
short_description: Manage encap blocks assigned to VLAN pools (fvns:EncapBlk)
description:
- 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'
options:
allocation_mode:
@@ -75,6 +65,16 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -237,20 +237,20 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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_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_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
+ 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']),
)
diff --git a/lib/ansible/modules/network/aci/aci_vrf.py b/lib/ansible/modules/network/aci/aci_vrf.py
index 15e036dd03..15ea9485ed 100644
--- a/lib/ansible/modules/network/aci/aci_vrf.py
+++ b/lib/ansible/modules/network/aci/aci_vrf.py
@@ -17,16 +17,6 @@ short_description: Manage contexts or VRFs (fv:Ctx)
description:
- Manage contexts or VRFs on Cisco ACI fabrics.
- 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'
options:
tenant:
@@ -62,6 +52,16 @@ options:
choices: [ absent, present, query ]
default: present
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'''
@@ -214,19 +214,19 @@ url:
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.network.aci.aci import ACIModule, aci_argument_spec
def main():
argument_spec = aci_argument_spec()
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']),
- policy_control_direction=dict(choices=['ingress', 'egress'], type='str'),
- policy_control_preference=dict(choices=['enforced', 'unenforced'], type='str'),
- state=dict(choices=['absent', 'present', 'query'], type='str', default='present'),
- 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
+ policy_control_direction=dict(type='str', choices=['egress', 'ingress']),
+ policy_control_preference=dict(type='str', choices=['enforced', 'unenforced']),
+ state=dict(type='str', default='present', choices=['absent', 'present', 'query']),
)
module = AnsibleModule(
diff --git a/test/integration/targets/aci_encap_pool_range/tasks/vlan.yml b/test/integration/targets/aci_encap_pool_range/tasks/vlan.yml
index bedaab5726..26e705e132 100644
--- a/test/integration/targets/aci_encap_pool_range/tasks/vlan.yml
+++ b/test/integration/targets/aci_encap_pool_range/tasks/vlan.yml
@@ -168,7 +168,7 @@
- name: missing required param - error message works
aci_encap_pool_range:
<<: *aci_range_present
- pool_type: "{{ fake_var | default(omit) }}"
+ pool_type: '{{ omit }}'
ignore_errors: yes
register: range_present_pool_type
@@ -193,7 +193,7 @@
- name: missing required param - error message works
aci_encap_pool_range:
<<: *aci_range_present
- pool_allocation_mode: "{{ fake_var | default(omit) }}"
+ pool_allocation_mode: '{{ omit }}'
ignore_errors: yes
register: range_present_allocation
@@ -220,7 +220,7 @@
- name: query vlan pool range - from, to, and name are filtered
aci_encap_pool_range: &aci_range_query_filter
<<: *aci_range_query
- pool: "{{ fake_var | default(omit) }}"
+ pool: '{{ omit }}'
register: range_query_from_to_name
- name: query assertions
@@ -238,7 +238,7 @@
- name: query vlan pool range - from and name are filtered
aci_encap_pool_range:
<<: *aci_range_query_filter
- range_end: "{{ fake_var | default(omit) }}"
+ range_end: '{{ omit }}'
register: range_query_from_name
- name: query assertions
@@ -254,7 +254,7 @@
- name: query vlan pool range - to and name are filtered
aci_encap_pool_range:
<<: *aci_range_query_filter
- range_start: "{{ fake_var | default(omit) }}"
+ range_start: '{{ omit }}'
register: range_query_to_name
- name: query assertions
@@ -270,8 +270,8 @@
- name: query vlan pool range - name is filtered
aci_encap_pool_range:
<<: *aci_range_query_filter
- range_start: "{{ fake_var | default(omit) }}"
- range_end: "{{ fake_var | default(omit) }}"
+ range_start: '{{ omit) }}'
+ range_end: '{{ omit }}'
register: range_query_name
- name: query assertions
@@ -285,7 +285,7 @@
- name: query vlan pool range - from and to are filtered
aci_encap_pool_range:
<<: *aci_range_query_filter
- range_name: "{{ fake_var | default(omit) }}"
+ range_name: '{{ omit }}'
register: range_query_from_to
- name: query assertions
@@ -317,7 +317,7 @@
aci_encap_pool_range:
<<: *aci_pool_present
state: query
- pool: "{{ fake_var | default(omit) }}"
+ pool: '{{ omit }}'
register: range_query_all
- name: query assertions