Compare arg+aliases between docs and argument_spec (#34809)

* compare arg+aliases between docs and argument_spec

* Add some special handling for the network modules provider options that also appear in the top level arg spec

* Fix error code for bigip_hostname

* Address merge conflicts due to changes in f5 modules

* Update validate-modules ignore based off a clean execution

* Address merge conflicts

* Address renamed module

* Address recent changes to modules

* Add ignore for ucs_ip_pool

* Update aci modules to get more reliable documentation comparison, but not mutating the module_utils aci_argument_spec

* Update ignore.txt after recent aci updates

* Add extra guard to ensure we handle provider special only for network modules

* Address additional changes to modules
pull/35005/head
Matt Martz 7 years ago committed by GitHub
parent 8d733dbdf0
commit a352d43824
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -108,6 +108,8 @@ Errors
319 ``RETURN`` fragments missing or invalid
320 ``DOCUMENTATION.options`` must be a dictionary/hash when used
321 ``Exception`` attempting to import module for ``argument_spec`` introspection
322 argument is listed in the argument_spec, but not documented in the module
323 argument is listed in DOCUMENTATION.options, but not accepted by the module
..
--------- -------------------
**4xx** **Syntax**

@ -61,18 +61,19 @@ except ImportError:
HAS_XMLJSON_COBRA = False
aci_argument_spec = dict(
hostname=dict(type='str', required=True, aliases=['host']),
username=dict(type='str', default='admin', aliases=['user']),
password=dict(type='str', no_log=True),
private_key=dict(type='path', aliases=['cert_key']), # Beware, this is not the same as client_key !
certificate_name=dict(type='str', aliases=['cert_name']), # Beware, this is not the same as client_cert !
protocol=dict(type='str', removed_in_version='2.6'), # Deprecated in v2.6
timeout=dict(type='int', default=30),
use_proxy=dict(type='bool', default=True),
use_ssl=dict(type='bool', default=True),
validate_certs=dict(type='bool', default=True),
)
def aci_argument_spec():
return dict(
hostname=dict(type='str', required=True, aliases=['host']),
username=dict(type='str', default='admin', aliases=['user']),
password=dict(type='str', no_log=True),
private_key=dict(type='path', aliases=['cert_key']), # Beware, this is not the same as client_key !
certificate_name=dict(type='str', aliases=['cert_name']), # Beware, this is not the same as client_cert !
protocol=dict(type='str', removed_in_version='2.6'), # Deprecated in v2.6
timeout=dict(type='int', default=30),
use_proxy=dict(type='bool', default=True),
use_ssl=dict(type='bool', default=True),
validate_certs=dict(type='bool', default=True),
)
'''
URL_MAPPING = dict(

@ -107,7 +107,7 @@ ACI_MAPPING = dict(
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
certificate=dict(type='str', aliases=['cert_data', 'certificate_data']),
certificate_name=dict(type='str', aliases=['cert_name']),

@ -124,7 +124,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update({
'leaf_interface_profile': dict(type='str', aliases=['leaf_interface_profile_name']),
'access_port_selector': dict(type='str', aliases=['name', 'access_port_selector_name']),

@ -95,7 +95,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
aep=dict(type='str', aliases=['name', 'aep_name']), # not required for querying all AEPs
description=dict(type='str', aliases=['descr']),

@ -68,7 +68,7 @@ VM_PROVIDER_MAPPING = dict(
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
aep=dict(type='str', aliases=['aep_name']),
domain=dict(type='str', aliases=['domain_name', 'domain_profile']),

@ -95,7 +95,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
tenant=dict(type='str', aliases=['tenant_name']), # tenant not required for querying all APs
ap=dict(type='str', aliases=['app_profile', 'app_profile_name', 'name']),

@ -213,7 +213,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
arp_flooding=dict(choices=['no', 'yes']),
bd=dict(type='str', aliases=['bd_name', 'name']),

@ -211,7 +211,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
bd=dict(type='str', aliases=['bd_name']),
description=dict(type='str', aliases=['descr']),

@ -57,7 +57,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
bd=dict(type='str', aliases=['bd_name', 'bridge_domain']),
l3out=dict(type='str'),

@ -145,7 +145,7 @@ except ImportError:
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
compare_export_policy=dict(type='str'),
compare_snapshot=dict(type='str'),

@ -109,7 +109,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
description=dict(type='str', aliases=['descr']),
export_policy=dict(type='str', aliases=['name']),

@ -89,7 +89,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
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

@ -137,7 +137,7 @@ MATCH_MAPPING = dict(all='All', at_least_one='AtleastOne', at_most_one='AtmostOn
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
contract=dict(type='str', aliases=['contract_name']),
subject=dict(type='str', aliases=['contract_subject', 'name', 'subject_name']),

@ -82,7 +82,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
contract=dict(type='str', aliases=['contract_name']),
filter=dict(type='str', aliases=['filter_name']),

@ -144,7 +144,7 @@ VSWITCH_MAPPING = dict(
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
dscp=dict(type='str',
choices=['AF11', 'AF12', 'AF13', 'AF21', 'AF22', 'AF23', 'AF31', 'AF32', 'AF33', 'AF41', 'AF42', 'AF43',

@ -90,7 +90,7 @@ POOL_MAPPING = dict(
def main():
argument_spec = aci_argument_spec
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']),

@ -137,7 +137,7 @@ VM_PROVIDER_MAPPING = dict(
def main():
argument_spec = aci_argument_spec
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']),

@ -114,7 +114,7 @@ ACI_MAPPING = dict(
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
allocation_mode=dict(type='str', aliases=['mode'], choices=['dynamic', 'static']),
description=dict(type='str', aliases=['descr']),

@ -147,7 +147,7 @@ ACI_POOL_MAPPING = dict(
def main():
argument_spec = aci_argument_spec
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']),

@ -159,7 +159,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
epg=dict(type='str', aliases=['name', 'epg_name']),
bd=dict(type='str', aliases=['bd_name', 'bridge_domain']),

@ -70,7 +70,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
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

@ -79,7 +79,7 @@ PROVIDER_MATCH_MAPPING = {"all": "All", "at_least_one": "AtleastOne", "at_most_o
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
ap=dict(type='str', aliases=['app_profile', 'app_profile_name']),
epg=dict(type='str', aliases=['epg_name']),

@ -113,7 +113,7 @@ VM_PROVIDER_MAPPING = dict(
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
allow_useg=dict(type='str', choices=['encap', 'useg']),
ap=dict(type='str', aliases=['app_profile', 'app_profile_name']),

@ -96,7 +96,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
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

@ -138,7 +138,7 @@ ICMP6_MAPPING = dict(dst_unreachable='dst-unreach', echo_request='echo-req', ech
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
arp_flag=dict(type='str', choices=VALID_ARP_FLAGS),
description=dict(type='str'),

@ -69,7 +69,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
source=dict(type='str', aliases=['name', 'source_name']), # Not required for querying all objects
polling_interval=dict(type='int'),

@ -84,7 +84,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
leaf_interface_profile=dict(type='str', aliases=['name', 'leaf_interface_profile_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),

@ -80,7 +80,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
leaf_profile=dict(type='str', aliases=['leaf_profile_name']),
interface_selector=dict(type='str', aliases=['name', 'interface_selector_name', 'interface_profile_name']),

@ -65,7 +65,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
fc_policy=dict(type='str', required=False, aliases=['name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),

@ -77,7 +77,7 @@ QINQ_MAPPING = dict(core='corePort', disabled='disabled', edge='edgePort')
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
l2_policy=dict(type='str', required=False, aliases=['name']), # Not required for querying all policies
description=dict(type='str', aliases=['descr']),

@ -73,7 +73,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
lldp_policy=dict(type='str', require=False, aliases=['name']),
description=dict(type='str', aliases=['descr']),

@ -65,7 +65,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
mcp=dict(type='str', required=False, aliases=['mcp_interface', 'name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),

@ -120,7 +120,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
port_channel=dict(type='str', required=False, aliases=['name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),

@ -64,7 +64,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
port_security=dict(type='str', required=False, aliases=['name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),

@ -73,7 +73,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
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

@ -295,7 +295,7 @@ def aci_response(result, rawoutput, rest_type='xml'):
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
path=dict(type='str', required=True, aliases=['uri']),
method=dict(type='str', default='get', choices=['delete', 'get', 'post'], aliases=['action']),

@ -117,7 +117,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update({
'description': dict(type='str'),
'leaf_profile': dict(type='str', aliases=['leaf_profile_name']),

@ -76,7 +76,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
leaf_profile=dict(type='str', aliases=['name', 'leaf_profile_name']),
description=dict(type='str', aliases=['descr']),

@ -74,7 +74,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
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

@ -83,7 +83,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
tenant=dict(type='str', required=False, aliases=['name', 'tenant_name']), # Not required for querying all objects
description=dict(type='str', aliases=['descr']),

@ -66,7 +66,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
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

@ -128,7 +128,7 @@ BOUNCE_TRIG_MAPPING = dict(coop='protocol', rarp='rarp-flood')
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
tenant=dict(type='str', aliases=['tenant_name']), # not required for querying all EPRs
epr_policy=dict(type='str', aliases=['epr_name', 'name']),

@ -68,7 +68,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
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

@ -75,7 +75,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
admin_state=dict(type='str', choices=['enabled', 'disabled']),
description=dict(type='str', aliases=['descr']),

@ -68,7 +68,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
description=dict(type='str', aliases=['descr']),
dst_group=dict(type='str'),

@ -90,7 +90,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
allocation_mode=dict(type='str', aliases=['mode'], choices=['dynamic', 'static']),
description=dict(type='str', aliases=['descr']),

@ -122,7 +122,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
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']),

@ -101,7 +101,7 @@ from ansible.module_utils.basic import AnsibleModule
def main():
argument_spec = aci_argument_spec
argument_spec = aci_argument_spec()
argument_spec.update(
description=dict(type='str', aliases=['descr']),
method=dict(type='str', choices=['delete', 'get', 'post'], aliases=['action'], removed_in_version='2.6'), # Deprecated starting from v2.6

@ -1,58 +1,770 @@
lib/ansible/modules/cloud/amazon/_ec2_ami_find.py E322
lib/ansible/modules/cloud/amazon/_ec2_ami_find.py E323
lib/ansible/modules/cloud/amazon/aws_acm_facts.py E322
lib/ansible/modules/cloud/amazon/aws_acm_facts.py E323
lib/ansible/modules/cloud/amazon/aws_api_gateway.py E322
lib/ansible/modules/cloud/amazon/aws_application_scaling_policy.py E322
lib/ansible/modules/cloud/amazon/aws_direct_connect_gateway.py E322
lib/ansible/modules/cloud/amazon/aws_s3.py E322
lib/ansible/modules/cloud/amazon/cloudfront_facts.py E323
lib/ansible/modules/cloud/amazon/data_pipeline.py E322
lib/ansible/modules/cloud/amazon/ec2.py E322
lib/ansible/modules/cloud/amazon/ec2_eip.py E322
lib/ansible/modules/cloud/amazon/ec2_elb_facts.py E323
lib/ansible/modules/cloud/amazon/ec2_group.py E322
lib/ansible/modules/cloud/amazon/ec2_lc.py E322
lib/ansible/modules/cloud/amazon/ec2_vol.py E322
lib/ansible/modules/cloud/amazon/ec2_vpc_dhcp_option_facts.py E322
lib/ansible/modules/cloud/amazon/ec2_vpc_subnet.py E317
lib/ansible/modules/cloud/amazon/ec2_vpc_vgw.py E322
lib/ansible/modules/cloud/amazon/ec2_vpc_vgw.py E323
lib/ansible/modules/cloud/amazon/elb_application_lb.py E322
lib/ansible/modules/cloud/amazon/elb_classic_lb_facts.py E323
lib/ansible/modules/cloud/amazon/elb_target_group.py E322
lib/ansible/modules/cloud/amazon/iam.py E317
lib/ansible/modules/cloud/amazon/iam_managed_policy.py E322
lib/ansible/modules/cloud/amazon/iam_policy.py E317
lib/ansible/modules/cloud/amazon/kinesis_stream.py E317
lib/ansible/modules/cloud/amazon/lambda.py E323
lib/ansible/modules/cloud/amazon/lambda_alias.py E317
lib/ansible/modules/cloud/amazon/lambda_event.py E317
lib/ansible/modules/cloud/amazon/rds.py E322
lib/ansible/modules/cloud/amazon/redshift.py E322
lib/ansible/modules/cloud/amazon/s3_lifecycle.py E322
lib/ansible/modules/cloud/amazon/s3_sync.py E322
lib/ansible/modules/cloud/amazon/sts_assume_role.py E317
lib/ansible/modules/cloud/atomic/atomic_container.py E317
lib/ansible/modules/cloud/azure/azure_rm_dnsrecordset.py E321
lib/ansible/modules/cloud/azure/azure_rm_storageaccount.py E321
lib/ansible/modules/cloud/azure/azure_rm_acs.py E322
lib/ansible/modules/cloud/azure/azure_rm_availabilityset.py E322
lib/ansible/modules/cloud/azure/azure_rm_availabilityset_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_containerinstance.py E322
lib/ansible/modules/cloud/azure/azure_rm_containerregistry.py E322
lib/ansible/modules/cloud/azure/azure_rm_deployment.py E322
lib/ansible/modules/cloud/azure/azure_rm_dnsrecordset.py E322
lib/ansible/modules/cloud/azure/azure_rm_dnsrecordset_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_dnszone.py E322
lib/ansible/modules/cloud/azure/azure_rm_dnszone_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_functionapp.py E322
lib/ansible/modules/cloud/azure/azure_rm_functionapp_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_image.py E322
lib/ansible/modules/cloud/azure/azure_rm_loadbalancer.py E322
lib/ansible/modules/cloud/azure/azure_rm_loadbalancer_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_managed_disk.py E322
lib/ansible/modules/cloud/azure/azure_rm_managed_disk_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_mysqldatabase.py E322
lib/ansible/modules/cloud/azure/azure_rm_mysqlserver.py E322
lib/ansible/modules/cloud/azure/azure_rm_networkinterface.py E322
lib/ansible/modules/cloud/azure/azure_rm_networkinterface_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_postgresqldatabase.py E322
lib/ansible/modules/cloud/azure/azure_rm_postgresqlserver.py E322
lib/ansible/modules/cloud/azure/azure_rm_publicipaddress.py E322
lib/ansible/modules/cloud/azure/azure_rm_publicipaddress_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_resourcegroup.py E322
lib/ansible/modules/cloud/azure/azure_rm_resourcegroup_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_securitygroup.py E322
lib/ansible/modules/cloud/azure/azure_rm_securitygroup_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_sqlserver.py E322
lib/ansible/modules/cloud/azure/azure_rm_sqlserver_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_storageaccount.py E322
lib/ansible/modules/cloud/azure/azure_rm_storageaccount_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_storageblob.py E322
lib/ansible/modules/cloud/azure/azure_rm_storageblob.py E323
lib/ansible/modules/cloud/azure/azure_rm_subnet.py E322
lib/ansible/modules/cloud/azure/azure_rm_virtualmachine.py E322
lib/ansible/modules/cloud/azure/azure_rm_virtualmachine_extension.py E322
lib/ansible/modules/cloud/azure/azure_rm_virtualmachine_scaleset.py E322
lib/ansible/modules/cloud/azure/azure_rm_virtualmachine_scaleset_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_virtualmachineimage_facts.py E322
lib/ansible/modules/cloud/azure/azure_rm_virtualmachineimage_facts.py E323
lib/ansible/modules/cloud/azure/azure_rm_virtualnetwork.py E322
lib/ansible/modules/cloud/azure/azure_rm_virtualnetwork_facts.py E322
lib/ansible/modules/cloud/centurylink/clc_alert_policy.py E317
lib/ansible/modules/cloud/centurylink/clc_firewall_policy.py E317
lib/ansible/modules/cloud/cloudstack/cs_ip_address.py E322
lib/ansible/modules/cloud/cloudstack/cs_iso.py E323
lib/ansible/modules/cloud/cloudstack/cs_loadbalancer_rule.py E322
lib/ansible/modules/cloud/cloudstack/cs_loadbalancer_rule_member.py E322
lib/ansible/modules/cloud/cloudstack/cs_network_offering.py E322
lib/ansible/modules/cloud/cloudstack/cs_project.py E322
lib/ansible/modules/cloud/cloudstack/cs_router.py E322
lib/ansible/modules/cloud/cloudstack/cs_service_offering.py E322
lib/ansible/modules/cloud/cloudstack/cs_service_offering.py E323
lib/ansible/modules/cloud/cloudstack/cs_storage_pool.py E322
lib/ansible/modules/cloud/cloudstack/cs_volume.py E322
lib/ansible/modules/cloud/cloudstack/cs_vpn_connection.py E322
lib/ansible/modules/cloud/cloudstack/cs_zone.py E322
lib/ansible/modules/cloud/digital_ocean/digital_ocean.py E322
lib/ansible/modules/cloud/digital_ocean/digital_ocean_block_storage.py E322
lib/ansible/modules/cloud/digital_ocean/digital_ocean_floating_ip.py E322
lib/ansible/modules/cloud/digital_ocean/digital_ocean_floating_ip_facts.py E322
lib/ansible/modules/cloud/digital_ocean/digital_ocean_sshkey.py E322
lib/ansible/modules/cloud/digital_ocean/digital_ocean_sshkey_facts.py E322
lib/ansible/modules/cloud/digital_ocean/digital_ocean_tag.py E322
lib/ansible/modules/cloud/dimensiondata/dimensiondata_network.py E321
lib/ansible/modules/cloud/docker/_docker.py E322
lib/ansible/modules/cloud/docker/docker_container.py E322
lib/ansible/modules/cloud/docker/docker_image.py E322
lib/ansible/modules/cloud/docker/docker_image_facts.py E322
lib/ansible/modules/cloud/docker/docker_login.py E322
lib/ansible/modules/cloud/docker/docker_network.py E322
lib/ansible/modules/cloud/docker/docker_secret.py E322
lib/ansible/modules/cloud/docker/docker_service.py E322
lib/ansible/modules/cloud/docker/docker_volume.py E322
lib/ansible/modules/cloud/google/gc_storage.py E322
lib/ansible/modules/cloud/google/gce_eip.py E322
lib/ansible/modules/cloud/google/gce_instance_template.py E322
lib/ansible/modules/cloud/google/gce_labels.py E322
lib/ansible/modules/cloud/google/gce_lb.py E323
lib/ansible/modules/cloud/google/gce_mig.py E322
lib/ansible/modules/cloud/google/gce_net.py E323
lib/ansible/modules/cloud/google/gce_pd.py E322
lib/ansible/modules/cloud/google/gcp_backend_service.py E322
lib/ansible/modules/cloud/google/gcp_forwarding_rule.py E322
lib/ansible/modules/cloud/google/gcp_target_proxy.py E322
lib/ansible/modules/cloud/google/gcp_url_map.py E322
lib/ansible/modules/cloud/google/gcpubsub.py E322
lib/ansible/modules/cloud/google/gcpubsub.py E323
lib/ansible/modules/cloud/google/gcpubsub_facts.py E322
lib/ansible/modules/cloud/google/gcspanner.py E322
lib/ansible/modules/cloud/linode/linode.py E322
lib/ansible/modules/cloud/lxd/lxd_container.py E322
lib/ansible/modules/cloud/misc/ovirt.py E322
lib/ansible/modules/cloud/misc/proxmox_kvm.py E322
lib/ansible/modules/cloud/misc/proxmox_template.py E323
lib/ansible/modules/cloud/misc/rhevm.py E322
lib/ansible/modules/cloud/misc/terraform.py E323
lib/ansible/modules/cloud/misc/virt.py E322
lib/ansible/modules/cloud/openstack/os_ironic.py E322
lib/ansible/modules/cloud/openstack/os_ironic.py E323
lib/ansible/modules/cloud/openstack/os_ironic_node.py E322
lib/ansible/modules/cloud/openstack/os_keystone_endpoint.py E322
lib/ansible/modules/cloud/openstack/os_quota.py E322
lib/ansible/modules/cloud/openstack/os_quota.py E323
lib/ansible/modules/cloud/openstack/os_server.py E322
lib/ansible/modules/cloud/openstack/os_subnets_facts.py E322
lib/ansible/modules/cloud/openstack/os_subnets_facts.py E323
lib/ansible/modules/cloud/openstack/os_volume.py E322
lib/ansible/modules/cloud/ovirt/ovirt_affinity_label.py E317
lib/ansible/modules/cloud/ovirt/ovirt_auth.py E322
lib/ansible/modules/cloud/ovirt/ovirt_cluster.py E317
lib/ansible/modules/cloud/ovirt/ovirt_cluster.py E322
lib/ansible/modules/cloud/ovirt/ovirt_datacenter.py E317
lib/ansible/modules/cloud/ovirt/ovirt_disk.py E322
lib/ansible/modules/cloud/ovirt/ovirt_external_provider.py E317
lib/ansible/modules/cloud/ovirt/ovirt_external_provider.py E322
lib/ansible/modules/cloud/ovirt/ovirt_external_provider_facts.py E317
lib/ansible/modules/cloud/ovirt/ovirt_external_provider_facts.py E322
lib/ansible/modules/cloud/ovirt/ovirt_host_networks.py E317
lib/ansible/modules/cloud/ovirt/ovirt_host_networks.py E322
lib/ansible/modules/cloud/ovirt/ovirt_host_pm.py E317
lib/ansible/modules/cloud/ovirt/ovirt_mac_pools.py E317
lib/ansible/modules/cloud/ovirt/ovirt_networks.py E317
lib/ansible/modules/cloud/ovirt/ovirt_quotas.py E322
lib/ansible/modules/cloud/ovirt/ovirt_snapshots.py E322
lib/ansible/modules/cloud/ovirt/ovirt_storage_templates_facts.py E322
lib/ansible/modules/cloud/ovirt/ovirt_storage_vms_facts.py E322
lib/ansible/modules/cloud/ovirt/ovirt_tags.py E317
lib/ansible/modules/cloud/ovirt/ovirt_tags_facts.py E323
lib/ansible/modules/cloud/ovirt/ovirt_templates.py E322
lib/ansible/modules/cloud/ovirt/ovirt_users.py E322
lib/ansible/modules/cloud/ovirt/ovirt_vmpools.py E317
lib/ansible/modules/cloud/ovirt/ovirt_vmpools.py E322
lib/ansible/modules/cloud/packet/packet_sshkey.py E322
lib/ansible/modules/cloud/profitbricks/profitbricks.py E322
lib/ansible/modules/cloud/profitbricks/profitbricks_volume.py E322
lib/ansible/modules/cloud/rackspace/rax.py E322
lib/ansible/modules/cloud/rackspace/rax_clb_nodes.py E322
lib/ansible/modules/cloud/rackspace/rax_files_objects.py E323
lib/ansible/modules/cloud/smartos/imgadm.py E317
lib/ansible/modules/cloud/smartos/vmadm.py E322
lib/ansible/modules/cloud/spotinst/spotinst_aws_elastigroup.py E322
lib/ansible/modules/cloud/spotinst/spotinst_aws_elastigroup.py E323
lib/ansible/modules/cloud/univention/udm_dns_zone.py E322
lib/ansible/modules/cloud/univention/udm_share.py E322
lib/ansible/modules/cloud/univention/udm_share.py E323
lib/ansible/modules/cloud/vmware/vca_fw.py E322
lib/ansible/modules/cloud/vmware/vca_nat.py E322
lib/ansible/modules/cloud/vmware/vca_vapp.py E322
lib/ansible/modules/cloud/vmware/vcenter_license.py E322
lib/ansible/modules/cloud/vmware/vmware_guest.py E322
lib/ansible/modules/cloud/vmware/vmware_guest_file_operation.py E322
lib/ansible/modules/cloud/vmware/vmware_guest_file_operation.py E323
lib/ansible/modules/cloud/vmware/vmware_guest_powerstate.py E322
lib/ansible/modules/cloud/vmware/vmware_maintenancemode.py E322
lib/ansible/modules/cloud/vmware/vmware_maintenancemode.py E323
lib/ansible/modules/cloud/vmware/vmware_vmkernel.py E322
lib/ansible/modules/cloud/vmware/vmware_vmkernel.py E323
lib/ansible/modules/cloud/vmware/vsphere_copy.py E322
lib/ansible/modules/cloud/vultr/vr_dns_domain.py E323
lib/ansible/modules/cloud/vultr/vr_firewall_rule.py E323
lib/ansible/modules/cloud/vultr/vr_user.py E322
lib/ansible/modules/cloud/webfaction/webfaction_app.py E321
lib/ansible/modules/cloud/webfaction/webfaction_db.py E321
lib/ansible/modules/cloud/webfaction/webfaction_domain.py E321
lib/ansible/modules/cloud/webfaction/webfaction_mailbox.py E321
lib/ansible/modules/cloud/webfaction/webfaction_site.py E321
lib/ansible/modules/clustering/consul.py E322
lib/ansible/modules/clustering/consul_kv.py E322
lib/ansible/modules/clustering/consul_session.py E322
lib/ansible/modules/clustering/k8s/_kubernetes.py E322
lib/ansible/modules/clustering/k8s/_kubernetes.py E323
lib/ansible/modules/clustering/k8s/k8s_raw.py E321
lib/ansible/modules/clustering/k8s/k8s_scale.py E321
lib/ansible/modules/clustering/openshift/openshift_raw.py E321
lib/ansible/modules/clustering/openshift/openshift_scale.py E321
lib/ansible/modules/commands/command.py E322
lib/ansible/modules/commands/command.py E323
lib/ansible/modules/database/influxdb/influxdb_user.py E322
lib/ansible/modules/database/mongodb/mongodb_parameter.py E317
lib/ansible/modules/database/mongodb/mongodb_parameter.py E323
lib/ansible/modules/database/mongodb/mongodb_user.py E322
lib/ansible/modules/database/mysql/mysql_user.py E322
lib/ansible/modules/database/postgresql/postgresql_ext.py E322
lib/ansible/modules/database/postgresql/postgresql_privs.py E322
lib/ansible/modules/database/postgresql/postgresql_schema.py E322
lib/ansible/modules/database/postgresql/postgresql_user.py E322
lib/ansible/modules/database/proxysql/proxysql_backend_servers.py E322
lib/ansible/modules/database/proxysql/proxysql_global_variables.py E322
lib/ansible/modules/database/proxysql/proxysql_manage_config.py E322
lib/ansible/modules/database/proxysql/proxysql_mysql_users.py E322
lib/ansible/modules/database/proxysql/proxysql_query_rules.py E322
lib/ansible/modules/database/proxysql/proxysql_replication_hostgroups.py E322
lib/ansible/modules/database/proxysql/proxysql_scheduler.py E322
lib/ansible/modules/database/vertica/vertica_role.py E322
lib/ansible/modules/database/vertica/vertica_schema.py E322
lib/ansible/modules/database/vertica/vertica_user.py E322
lib/ansible/modules/files/acl.py E322
lib/ansible/modules/files/assemble.py E323
lib/ansible/modules/files/copy.py E322
lib/ansible/modules/files/copy.py E323
lib/ansible/modules/files/file.py E322
lib/ansible/modules/files/ini_file.py E323
lib/ansible/modules/files/lineinfile.py E322
lib/ansible/modules/files/lineinfile.py E323
lib/ansible/modules/files/replace.py E323
lib/ansible/modules/files/synchronize.py E322
lib/ansible/modules/files/synchronize.py E323
lib/ansible/modules/files/unarchive.py E322
lib/ansible/modules/files/unarchive.py E323
lib/ansible/modules/identity/ipa/ipa_group.py E322
lib/ansible/modules/identity/ipa/ipa_subca.py E322
lib/ansible/modules/identity/ipa/ipa_sudorule.py E322
lib/ansible/modules/identity/keycloak/keycloak_client.py E322
lib/ansible/modules/monitoring/bigpanda.py E322
lib/ansible/modules/monitoring/icinga2_host.py E322
lib/ansible/modules/monitoring/logentries.py E322
lib/ansible/modules/monitoring/logicmonitor.py E317
lib/ansible/modules/monitoring/logicmonitor_facts.py E317
lib/ansible/modules/monitoring/nagios.py E317
lib/ansible/modules/monitoring/zabbix/zabbix_maintenance.py E317
lib/ansible/modules/net_tools/basics/get_url.py E322
lib/ansible/modules/net_tools/basics/get_url.py E323
lib/ansible/modules/net_tools/basics/slurp.py E322
lib/ansible/modules/net_tools/basics/uri.py E322
lib/ansible/modules/net_tools/basics/uri.py E323
lib/ansible/modules/net_tools/cloudflare_dns.py E317
lib/ansible/modules/net_tools/haproxy.py E317
lib/ansible/modules/net_tools/ldap/ldap_attr.py E322
lib/ansible/modules/net_tools/nmcli.py E323
lib/ansible/modules/net_tools/omapi_host.py E317
lib/ansible/modules/net_tools/omapi_host.py E322
lib/ansible/modules/net_tools/snmp_facts.py E322
lib/ansible/modules/network/aci/aci_aaa_user_certificate.py E322
lib/ansible/modules/network/aci/aci_access_port_to_interface_policy_leaf_profile.py E322
lib/ansible/modules/network/aci/aci_aep.py E322
lib/ansible/modules/network/aci/aci_aep_to_domain.py E322
lib/ansible/modules/network/aci/aci_ap.py E322
lib/ansible/modules/network/aci/aci_bd.py E322
lib/ansible/modules/network/aci/aci_bd_subnet.py E322
lib/ansible/modules/network/aci/aci_bd_to_l3out.py E322
lib/ansible/modules/network/aci/aci_config_rollback.py E322
lib/ansible/modules/network/aci/aci_config_snapshot.py E322
lib/ansible/modules/network/aci/aci_contract.py E322
lib/ansible/modules/network/aci/aci_contract_subject.py E322
lib/ansible/modules/network/aci/aci_contract_subject_to_filter.py E322
lib/ansible/modules/network/aci/aci_domain.py E322
lib/ansible/modules/network/aci/aci_domain_to_encap_pool.py E322
lib/ansible/modules/network/aci/aci_domain_to_vlan_pool.py E322
lib/ansible/modules/network/aci/aci_encap_pool.py E322
lib/ansible/modules/network/aci/aci_encap_pool_range.py E322
lib/ansible/modules/network/aci/aci_epg.py E322
lib/ansible/modules/network/aci/aci_epg_monitoring_policy.py E322
lib/ansible/modules/network/aci/aci_epg_to_contract.py E322
lib/ansible/modules/network/aci/aci_epg_to_domain.py E322
lib/ansible/modules/network/aci/aci_filter.py E322
lib/ansible/modules/network/aci/aci_filter_entry.py E322
lib/ansible/modules/network/aci/aci_filter_entry.py E323
lib/ansible/modules/network/aci/aci_interface_policy_leaf_profile.py E322
lib/ansible/modules/network/aci/aci_interface_selector_to_switch_policy_leaf_profile.py E322
lib/ansible/modules/network/aci/aci_intf_policy_fc.py E322
lib/ansible/modules/network/aci/aci_intf_policy_l2.py E322
lib/ansible/modules/network/aci/aci_intf_policy_lldp.py E322
lib/ansible/modules/network/aci/aci_intf_policy_mcp.py E322
lib/ansible/modules/network/aci/aci_intf_policy_port_channel.py E322
lib/ansible/modules/network/aci/aci_intf_policy_port_security.py E322
lib/ansible/modules/network/aci/aci_l3out_route_tag_policy.py E322
lib/ansible/modules/network/aci/aci_rest.py E322
lib/ansible/modules/network/aci/aci_switch_leaf_selector.py E322
lib/ansible/modules/network/aci/aci_switch_policy_leaf_profile.py E322
lib/ansible/modules/network/aci/aci_taboo_contract.py E322
lib/ansible/modules/network/aci/aci_tenant.py E322
lib/ansible/modules/network/aci/aci_tenant_action_rule_profile.py E322
lib/ansible/modules/network/aci/aci_tenant_ep_retention_policy.py E322
lib/ansible/modules/network/aci/aci_tenant_span_dst_group.py E322
lib/ansible/modules/network/aci/aci_tenant_span_src_group.py E322
lib/ansible/modules/network/aci/aci_tenant_span_src_group_to_dst_group.py E322
lib/ansible/modules/network/aci/aci_vlan_pool.py E322
lib/ansible/modules/network/aci/aci_vlan_pool_encap_block.py E322
lib/ansible/modules/network/aci/aci_vrf.py E322
lib/ansible/modules/network/cloudengine/ce_aaa_server.py E322
lib/ansible/modules/network/cloudengine/ce_aaa_server_host.py E322
lib/ansible/modules/network/cloudengine/ce_acl.py E322
lib/ansible/modules/network/cloudengine/ce_acl_advance.py E322
lib/ansible/modules/network/cloudengine/ce_acl_interface.py E322
lib/ansible/modules/network/cloudengine/ce_bfd_global.py E322
lib/ansible/modules/network/cloudengine/ce_bfd_session.py E322
lib/ansible/modules/network/cloudengine/ce_bfd_view.py E322
lib/ansible/modules/network/cloudengine/ce_bgp.py E322
lib/ansible/modules/network/cloudengine/ce_bgp_af.py E322
lib/ansible/modules/network/cloudengine/ce_bgp_neighbor.py E322
lib/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.py E322
lib/ansible/modules/network/cloudengine/ce_command.py E322
lib/ansible/modules/network/cloudengine/ce_config.py E322
lib/ansible/modules/network/cloudengine/ce_dldp.py E322
lib/ansible/modules/network/cloudengine/ce_dldp.py E323
lib/ansible/modules/network/cloudengine/ce_dldp_interface.py E322
lib/ansible/modules/network/cloudengine/ce_eth_trunk.py E322
lib/ansible/modules/network/cloudengine/ce_evpn_bd_vni.py E322
lib/ansible/modules/network/cloudengine/ce_evpn_bgp.py E322
lib/ansible/modules/network/cloudengine/ce_evpn_bgp_rr.py E322
lib/ansible/modules/network/cloudengine/ce_evpn_global.py E322
lib/ansible/modules/network/cloudengine/ce_facts.py E322
lib/ansible/modules/network/cloudengine/ce_file_copy.py E322
lib/ansible/modules/network/cloudengine/ce_info_center_debug.py E322
lib/ansible/modules/network/cloudengine/ce_info_center_global.py E322
lib/ansible/modules/network/cloudengine/ce_info_center_log.py E322
lib/ansible/modules/network/cloudengine/ce_info_center_trap.py E322
lib/ansible/modules/network/cloudengine/ce_interface.py E322
lib/ansible/modules/network/cloudengine/ce_interface_ospf.py E322
lib/ansible/modules/network/cloudengine/ce_ip_interface.py E322
lib/ansible/modules/network/cloudengine/ce_link_status.py E322
lib/ansible/modules/network/cloudengine/ce_mlag_config.py E322
lib/ansible/modules/network/cloudengine/ce_mlag_interface.py E322
lib/ansible/modules/network/cloudengine/ce_mtu.py E322
lib/ansible/modules/network/cloudengine/ce_netconf.py E322
lib/ansible/modules/network/cloudengine/ce_netstream_aging.py E322
lib/ansible/modules/network/cloudengine/ce_netstream_export.py E322
lib/ansible/modules/network/cloudengine/ce_netstream_global.py E322
lib/ansible/modules/network/cloudengine/ce_netstream_template.py E322
lib/ansible/modules/network/cloudengine/ce_ntp.py E322
lib/ansible/modules/network/cloudengine/ce_ntp_auth.py E322
lib/ansible/modules/network/cloudengine/ce_ospf.py E322
lib/ansible/modules/network/cloudengine/ce_ospf_vrf.py E322
lib/ansible/modules/network/cloudengine/ce_reboot.py E317
lib/ansible/modules/network/cloudengine/ce_reboot.py E322
lib/ansible/modules/network/cloudengine/ce_rollback.py E322
lib/ansible/modules/network/cloudengine/ce_sflow.py E322
lib/ansible/modules/network/cloudengine/ce_snmp_community.py E322
lib/ansible/modules/network/cloudengine/ce_snmp_contact.py E322
lib/ansible/modules/network/cloudengine/ce_snmp_location.py E322
lib/ansible/modules/network/cloudengine/ce_snmp_target_host.py E322
lib/ansible/modules/network/cloudengine/ce_snmp_traps.py E322
lib/ansible/modules/network/cloudengine/ce_snmp_user.py E322
lib/ansible/modules/network/cloudengine/ce_startup.py E322
lib/ansible/modules/network/cloudengine/ce_static_route.py E322
lib/ansible/modules/network/cloudengine/ce_stp.py E322
lib/ansible/modules/network/cloudengine/ce_switchport.py E322
lib/ansible/modules/network/cloudengine/ce_vlan.py E322
lib/ansible/modules/network/cloudengine/ce_vrf.py E322
lib/ansible/modules/network/cloudengine/ce_vrf_af.py E322
lib/ansible/modules/network/cloudengine/ce_vrf_interface.py E322
lib/ansible/modules/network/cloudengine/ce_vrrp.py E322
lib/ansible/modules/network/cloudengine/ce_vxlan_arp.py E322
lib/ansible/modules/network/cloudengine/ce_vxlan_gateway.py E322
lib/ansible/modules/network/cloudengine/ce_vxlan_global.py E322
lib/ansible/modules/network/cloudengine/ce_vxlan_tunnel.py E322
lib/ansible/modules/network/cloudengine/ce_vxlan_vap.py E322
lib/ansible/modules/network/cnos/cnos_backup.py E322
lib/ansible/modules/network/cnos/cnos_backup.py E323
lib/ansible/modules/network/cnos/cnos_facts.py E323
lib/ansible/modules/network/cnos/cnos_rollback.py E322
lib/ansible/modules/network/cnos/cnos_rollback.py E323
lib/ansible/modules/network/cnos/cnos_showrun.py E323
lib/ansible/modules/network/cumulus/_cl_interface.py E322
lib/ansible/modules/network/dellos10/dellos10_command.py E322
lib/ansible/modules/network/dellos6/dellos6_command.py E322
lib/ansible/modules/network/dellos9/dellos9_command.py E322
lib/ansible/modules/network/enos/enos_command.py E323
lib/ansible/modules/network/enos/enos_config.py E323
lib/ansible/modules/network/enos/enos_facts.py E323
lib/ansible/modules/network/eos/eos_interface.py E322
lib/ansible/modules/network/eos/eos_l3_interface.py E322
lib/ansible/modules/network/eos/eos_linkagg.py E322
lib/ansible/modules/network/eos/eos_lldp.py E322
lib/ansible/modules/network/eos/eos_logging.py E322
lib/ansible/modules/network/eos/eos_static_route.py E322
lib/ansible/modules/network/eos/eos_vlan.py E322
lib/ansible/modules/network/eos/eos_vrf.py E322
lib/ansible/modules/network/f5/bigip_asm_policy.py E322
lib/ansible/modules/network/f5/bigip_asm_policy.py E323
lib/ansible/modules/network/f5/bigip_command.py E322
lib/ansible/modules/network/f5/bigip_command.py E323
lib/ansible/modules/network/f5/bigip_config.py E322
lib/ansible/modules/network/f5/bigip_config.py E323
lib/ansible/modules/network/f5/bigip_configsync_action.py E322
lib/ansible/modules/network/f5/bigip_configsync_action.py E323
lib/ansible/modules/network/f5/bigip_device_connectivity.py E322
lib/ansible/modules/network/f5/bigip_device_connectivity.py E323
lib/ansible/modules/network/f5/bigip_device_dns.py E322
lib/ansible/modules/network/f5/bigip_device_dns.py E323
lib/ansible/modules/network/f5/bigip_device_group.py E322
lib/ansible/modules/network/f5/bigip_device_group.py E323
lib/ansible/modules/network/f5/bigip_device_httpd.py E322
lib/ansible/modules/network/f5/bigip_device_httpd.py E323
lib/ansible/modules/network/f5/bigip_device_ntp.py E322
lib/ansible/modules/network/f5/bigip_device_ntp.py E323
lib/ansible/modules/network/f5/bigip_device_sshd.py E322
lib/ansible/modules/network/f5/bigip_device_sshd.py E323
lib/ansible/modules/network/f5/bigip_device_trust.py E322
lib/ansible/modules/network/f5/bigip_device_trust.py E323
lib/ansible/modules/network/f5/bigip_facts.py E322
lib/ansible/modules/network/f5/bigip_facts.py E323
lib/ansible/modules/network/f5/bigip_gtm_datacenter.py E322
lib/ansible/modules/network/f5/bigip_gtm_datacenter.py E323
lib/ansible/modules/network/f5/bigip_gtm_facts.py E322
lib/ansible/modules/network/f5/bigip_gtm_facts.py E323
lib/ansible/modules/network/f5/bigip_gtm_pool.py E322
lib/ansible/modules/network/f5/bigip_gtm_pool.py E323
lib/ansible/modules/network/f5/bigip_gtm_server.py E322
lib/ansible/modules/network/f5/bigip_gtm_server.py E323
lib/ansible/modules/network/f5/bigip_gtm_virtual_server.py E322
lib/ansible/modules/network/f5/bigip_gtm_wide_ip.py E322
lib/ansible/modules/network/f5/bigip_gtm_wide_ip.py E323
lib/ansible/modules/network/f5/bigip_hostname.py E322
lib/ansible/modules/network/f5/bigip_hostname.py E323
lib/ansible/modules/network/f5/bigip_iapp_service.py E322
lib/ansible/modules/network/f5/bigip_iapp_service.py E323
lib/ansible/modules/network/f5/bigip_iapp_template.py E322
lib/ansible/modules/network/f5/bigip_iapp_template.py E323
lib/ansible/modules/network/f5/bigip_iapplx_package.py E322
lib/ansible/modules/network/f5/bigip_iapplx_package.py E323
lib/ansible/modules/network/f5/bigip_irule.py E322
lib/ansible/modules/network/f5/bigip_irule.py E323
lib/ansible/modules/network/f5/bigip_monitor_http.py E322
lib/ansible/modules/network/f5/bigip_monitor_http.py E323
lib/ansible/modules/network/f5/bigip_monitor_https.py E322
lib/ansible/modules/network/f5/bigip_monitor_https.py E323
lib/ansible/modules/network/f5/bigip_monitor_snmp_dca.py E322
lib/ansible/modules/network/f5/bigip_monitor_snmp_dca.py E323
lib/ansible/modules/network/f5/bigip_monitor_tcp.py E322
lib/ansible/modules/network/f5/bigip_monitor_tcp.py E323
lib/ansible/modules/network/f5/bigip_monitor_tcp_echo.py E322
lib/ansible/modules/network/f5/bigip_monitor_tcp_echo.py E323
lib/ansible/modules/network/f5/bigip_monitor_tcp_half_open.py E322
lib/ansible/modules/network/f5/bigip_monitor_tcp_half_open.py E323
lib/ansible/modules/network/f5/bigip_monitor_udp.py E322
lib/ansible/modules/network/f5/bigip_monitor_udp.py E323
lib/ansible/modules/network/f5/bigip_node.py E322
lib/ansible/modules/network/f5/bigip_node.py E323
lib/ansible/modules/network/f5/bigip_partition.py E322
lib/ansible/modules/network/f5/bigip_partition.py E323
lib/ansible/modules/network/f5/bigip_policy.py E322
lib/ansible/modules/network/f5/bigip_policy.py E323
lib/ansible/modules/network/f5/bigip_policy_rule.py E322
lib/ansible/modules/network/f5/bigip_policy_rule.py E323
lib/ansible/modules/network/f5/bigip_pool.py E322
lib/ansible/modules/network/f5/bigip_pool.py E323
lib/ansible/modules/network/f5/bigip_pool_member.py E322
lib/ansible/modules/network/f5/bigip_pool_member.py E323
lib/ansible/modules/network/f5/bigip_profile_client_ssl.py E322
lib/ansible/modules/network/f5/bigip_profile_client_ssl.py E323
lib/ansible/modules/network/f5/bigip_provision.py E322
lib/ansible/modules/network/f5/bigip_provision.py E323
lib/ansible/modules/network/f5/bigip_qkview.py E322
lib/ansible/modules/network/f5/bigip_qkview.py E323
lib/ansible/modules/network/f5/bigip_remote_syslog.py E322
lib/ansible/modules/network/f5/bigip_remote_syslog.py E323
lib/ansible/modules/network/f5/bigip_security_address_list.py E322
lib/ansible/modules/network/f5/bigip_security_address_list.py E323
lib/ansible/modules/network/f5/bigip_security_port_list.py E322
lib/ansible/modules/network/f5/bigip_security_port_list.py E323
lib/ansible/modules/network/f5/bigip_selfip.py E322
lib/ansible/modules/network/f5/bigip_selfip.py E323
lib/ansible/modules/network/f5/bigip_snat_pool.py E322
lib/ansible/modules/network/f5/bigip_snat_pool.py E323
lib/ansible/modules/network/f5/bigip_snmp.py E322
lib/ansible/modules/network/f5/bigip_snmp.py E323
lib/ansible/modules/network/f5/bigip_snmp_trap.py E322
lib/ansible/modules/network/f5/bigip_snmp_trap.py E323
lib/ansible/modules/network/f5/bigip_software_update.py E322
lib/ansible/modules/network/f5/bigip_software_update.py E323
lib/ansible/modules/network/f5/bigip_ssl_certificate.py E322
lib/ansible/modules/network/f5/bigip_ssl_certificate.py E323
lib/ansible/modules/network/f5/bigip_ssl_key.py E322
lib/ansible/modules/network/f5/bigip_ssl_key.py E323
lib/ansible/modules/network/f5/bigip_static_route.py E322
lib/ansible/modules/network/f5/bigip_static_route.py E323
lib/ansible/modules/network/f5/bigip_sys_db.py E322
lib/ansible/modules/network/f5/bigip_sys_db.py E323
lib/ansible/modules/network/f5/bigip_sys_global.py E322
lib/ansible/modules/network/f5/bigip_sys_global.py E323
lib/ansible/modules/network/f5/bigip_traffic_group.py E322
lib/ansible/modules/network/f5/bigip_traffic_group.py E323
lib/ansible/modules/network/f5/bigip_ucs.py E322
lib/ansible/modules/network/f5/bigip_ucs.py E323
lib/ansible/modules/network/f5/bigip_user.py E322
lib/ansible/modules/network/f5/bigip_user.py E323
lib/ansible/modules/network/f5/bigip_vcmp_guest.py E322
lib/ansible/modules/network/f5/bigip_vcmp_guest.py E323
lib/ansible/modules/network/f5/bigip_virtual_address.py E322
lib/ansible/modules/network/f5/bigip_virtual_address.py E323
lib/ansible/modules/network/f5/bigip_virtual_server.py E322
lib/ansible/modules/network/f5/bigip_virtual_server.py E323
lib/ansible/modules/network/f5/bigip_vlan.py E322
lib/ansible/modules/network/f5/bigip_vlan.py E323
lib/ansible/modules/network/f5/bigip_wait.py E322
lib/ansible/modules/network/f5/bigip_wait.py E323
lib/ansible/modules/network/f5/bigiq_regkey_license.py E322
lib/ansible/modules/network/f5/bigiq_regkey_license.py E323
lib/ansible/modules/network/f5/bigiq_regkey_pool.py E322
lib/ansible/modules/network/f5/bigiq_regkey_pool.py E323
lib/ansible/modules/network/illumos/dladm_linkprop.py E317
lib/ansible/modules/network/illumos/ipadm_addrprop.py E317
lib/ansible/modules/network/illumos/ipadm_ifprop.py E317
lib/ansible/modules/network/ios/ios_interface.py E322
lib/ansible/modules/network/ios/ios_l3_interface.py E322
lib/ansible/modules/network/ios/ios_linkagg.py E322
lib/ansible/modules/network/ios/ios_lldp.py E322
lib/ansible/modules/network/ios/ios_logging.py E322
lib/ansible/modules/network/ios/ios_static_route.py E322
lib/ansible/modules/network/ios/ios_user.py E322
lib/ansible/modules/network/ios/ios_vlan.py E322
lib/ansible/modules/network/iosxr/iosxr_command.py E322
lib/ansible/modules/network/iosxr/iosxr_logging.py E322
lib/ansible/modules/network/iosxr/iosxr_netconf.py E322
lib/ansible/modules/network/ironware/ironware_command.py E323
lib/ansible/modules/network/ironware/ironware_config.py E323
lib/ansible/modules/network/ironware/ironware_facts.py E323
lib/ansible/modules/network/junos/junos_banner.py E322
lib/ansible/modules/network/junos/junos_interface.py E322
lib/ansible/modules/network/junos/junos_l3_interface.py E322
lib/ansible/modules/network/junos/junos_linkagg.py E322
lib/ansible/modules/network/junos/junos_lldp.py E322
lib/ansible/modules/network/junos/junos_lldp_interface.py E322
lib/ansible/modules/network/junos/junos_logging.py E322
lib/ansible/modules/network/junos/junos_static_route.py E322
lib/ansible/modules/network/junos/junos_system.py E322
lib/ansible/modules/network/junos/junos_vlan.py E322
lib/ansible/modules/network/junos/junos_vrf.py E322
lib/ansible/modules/network/netscaler/netscaler_cs_action.py E323
lib/ansible/modules/network/netscaler/netscaler_cs_vserver.py E322
lib/ansible/modules/network/netscaler/netscaler_cs_vserver.py E323
lib/ansible/modules/network/netscaler/netscaler_gslb_vserver.py E322
lib/ansible/modules/network/netscaler/netscaler_lb_monitor.py E323
lib/ansible/modules/network/netscaler/netscaler_lb_vserver.py E323
lib/ansible/modules/network/netscaler/netscaler_service.py E323
lib/ansible/modules/network/netvisor/pn_vrouter.py E322
lib/ansible/modules/network/nxos/_nxos_ip_interface.py E323
lib/ansible/modules/network/nxos/_nxos_mtu.py E323
lib/ansible/modules/network/nxos/_nxos_portchannel.py E323
lib/ansible/modules/network/nxos/_nxos_switchport.py E323
lib/ansible/modules/network/nxos/nxos_aaa_server.py E323
lib/ansible/modules/network/nxos/nxos_aaa_server_host.py E323
lib/ansible/modules/network/nxos/nxos_acl.py E323
lib/ansible/modules/network/nxos/nxos_acl_interface.py E323
lib/ansible/modules/network/nxos/nxos_banner.py E322
lib/ansible/modules/network/nxos/nxos_bgp.py E323
lib/ansible/modules/network/nxos/nxos_bgp_af.py E323
lib/ansible/modules/network/nxos/nxos_bgp_neighbor.py E323
lib/ansible/modules/network/nxos/nxos_bgp_neighbor_af.py E323
lib/ansible/modules/network/nxos/nxos_command.py E323
lib/ansible/modules/network/nxos/nxos_config.py E323
lib/ansible/modules/network/nxos/nxos_evpn_global.py E323
lib/ansible/modules/network/nxos/nxos_evpn_vni.py E323
lib/ansible/modules/network/nxos/nxos_facts.py E323
lib/ansible/modules/network/nxos/nxos_feature.py E323
lib/ansible/modules/network/nxos/nxos_file_copy.py E323
lib/ansible/modules/network/nxos/nxos_gir.py E323
lib/ansible/modules/network/nxos/nxos_gir_profile_management.py E323
lib/ansible/modules/network/nxos/nxos_hsrp.py E323
lib/ansible/modules/network/nxos/nxos_igmp.py E323
lib/ansible/modules/network/nxos/nxos_igmp_interface.py E323
lib/ansible/modules/network/nxos/nxos_igmp_snooping.py E323
lib/ansible/modules/network/nxos/nxos_install_os.py E323
lib/ansible/modules/network/nxos/nxos_interface.py E323
lib/ansible/modules/network/nxos/nxos_interface_ospf.py E323
lib/ansible/modules/network/nxos/nxos_l2_interface.py E323
lib/ansible/modules/network/nxos/nxos_l3_interface.py E322
lib/ansible/modules/network/nxos/nxos_linkagg.py E323
lib/ansible/modules/network/nxos/nxos_lldp.py E322
lib/ansible/modules/network/nxos/nxos_logging.py E322
lib/ansible/modules/network/nxos/nxos_ntp.py E323
lib/ansible/modules/network/nxos/nxos_ntp_auth.py E323
lib/ansible/modules/network/nxos/nxos_ntp_options.py E323
lib/ansible/modules/network/nxos/nxos_nxapi.py E323
lib/ansible/modules/network/nxos/nxos_ospf.py E323
lib/ansible/modules/network/nxos/nxos_ospf_vrf.py E323
lib/ansible/modules/network/nxos/nxos_overlay_global.py E323
lib/ansible/modules/network/nxos/nxos_pim.py E323
lib/ansible/modules/network/nxos/nxos_pim_interface.py E323
lib/ansible/modules/network/nxos/nxos_pim_rp_address.py E323
lib/ansible/modules/network/nxos/nxos_ping.py E323
lib/ansible/modules/network/nxos/nxos_reboot.py E323
lib/ansible/modules/network/nxos/nxos_rollback.py E323
lib/ansible/modules/network/nxos/nxos_smu.py E323
lib/ansible/modules/network/nxos/nxos_snapshot.py E323
lib/ansible/modules/network/nxos/nxos_snmp_community.py E323
lib/ansible/modules/network/nxos/nxos_snmp_contact.py E323
lib/ansible/modules/network/nxos/nxos_snmp_host.py E323
lib/ansible/modules/network/nxos/nxos_snmp_location.py E323
lib/ansible/modules/network/nxos/nxos_snmp_traps.py E323
lib/ansible/modules/network/nxos/nxos_snmp_user.py E323
lib/ansible/modules/network/nxos/nxos_static_route.py E323
lib/ansible/modules/network/nxos/nxos_system.py E323
lib/ansible/modules/network/nxos/nxos_udld.py E323
lib/ansible/modules/network/nxos/nxos_udld_interface.py E323
lib/ansible/modules/network/nxos/nxos_user.py E323
lib/ansible/modules/network/nxos/nxos_vlan.py E323
lib/ansible/modules/network/nxos/nxos_vpc.py E323
lib/ansible/modules/network/nxos/nxos_vpc_interface.py E323
lib/ansible/modules/network/nxos/nxos_vrf.py E323
lib/ansible/modules/network/nxos/nxos_vrf_af.py E323
lib/ansible/modules/network/nxos/nxos_vrf_interface.py E323
lib/ansible/modules/network/nxos/nxos_vrrp.py E323
lib/ansible/modules/network/nxos/nxos_vtp_domain.py E323
lib/ansible/modules/network/nxos/nxos_vtp_password.py E323
lib/ansible/modules/network/nxos/nxos_vtp_version.py E323
lib/ansible/modules/network/nxos/nxos_vxlan_vtep.py E323
lib/ansible/modules/network/nxos/nxos_vxlan_vtep_vni.py E323
lib/ansible/modules/network/onyx/onyx_command.py E323
lib/ansible/modules/network/onyx/onyx_config.py E323
lib/ansible/modules/network/onyx/onyx_interface.py E323
lib/ansible/modules/network/ordnance/ordnance_config.py E322
lib/ansible/modules/network/ordnance/ordnance_facts.py E322
lib/ansible/modules/network/panos/panos_nat_rule.py E322
lib/ansible/modules/network/panos/panos_sag.py E322
lib/ansible/modules/network/panos/panos_sag.py E323
lib/ansible/modules/network/panos/panos_security_policy.py E322
lib/ansible/modules/network/panos/panos_security_rule.py E322
lib/ansible/modules/network/radware/vdirect_commit.py E321
lib/ansible/modules/network/radware/vdirect_file.py E321
lib/ansible/modules/network/radware/vdirect_runnable.py E321
lib/ansible/modules/network/sros/sros_config.py E323
lib/ansible/modules/network/vyos/vyos_banner.py E322
lib/ansible/modules/network/vyos/vyos_interface.py E322
lib/ansible/modules/network/vyos/vyos_l3_interface.py E322
lib/ansible/modules/network/vyos/vyos_linkagg.py E322
lib/ansible/modules/network/vyos/vyos_lldp.py E322
lib/ansible/modules/network/vyos/vyos_lldp_interface.py E322
lib/ansible/modules/network/vyos/vyos_logging.py E322
lib/ansible/modules/network/vyos/vyos_static_route.py E322
lib/ansible/modules/network/vyos/vyos_system.py E322
lib/ansible/modules/network/vyos/vyos_user.py E322
lib/ansible/modules/network/vyos/vyos_vlan.py E322
lib/ansible/modules/notification/cisco_spark.py E322
lib/ansible/modules/notification/hipchat.py E322
lib/ansible/modules/notification/irc.py E322
lib/ansible/modules/notification/mail.py E322
lib/ansible/modules/notification/pushbullet.py E322
lib/ansible/modules/notification/rocketchat.py E317
lib/ansible/modules/notification/sendgrid.py E322
lib/ansible/modules/notification/snow_record.py E317
lib/ansible/modules/packaging/language/pear.py E322
lib/ansible/modules/packaging/language/pip.py E322
lib/ansible/modules/packaging/os/apt.py E322
lib/ansible/modules/packaging/os/apt_key.py E322
lib/ansible/modules/packaging/os/apt_repository.py E322
lib/ansible/modules/packaging/os/apt_rpm.py E322
lib/ansible/modules/packaging/os/dnf.py E322
lib/ansible/modules/packaging/os/layman.py E322
lib/ansible/modules/packaging/os/macports.py E322
lib/ansible/modules/packaging/os/opkg.py E322
lib/ansible/modules/packaging/os/pkgin.py E322
lib/ansible/modules/packaging/os/pkgng.py E322
lib/ansible/modules/packaging/os/portage.py E322
lib/ansible/modules/packaging/os/portinstall.py E322
lib/ansible/modules/packaging/os/pulp_repo.py E322
lib/ansible/modules/packaging/os/rhn_channel.py E322
lib/ansible/modules/packaging/os/slackpkg.py E322
lib/ansible/modules/packaging/os/swdepot.py E322
lib/ansible/modules/packaging/os/urpmi.py E322
lib/ansible/modules/packaging/os/xbps.py E322
lib/ansible/modules/packaging/os/yum.py E322
lib/ansible/modules/packaging/os/yum_repository.py E322
lib/ansible/modules/remote_management/foreman/foreman.py E322
lib/ansible/modules/remote_management/foreman/katello.py E322
lib/ansible/modules/remote_management/oneview/oneview_datacenter_facts.py E322
lib/ansible/modules/remote_management/oneview/oneview_enclosure_facts.py E322
lib/ansible/modules/remote_management/oneview/oneview_ethernet_network.py E322
lib/ansible/modules/remote_management/oneview/oneview_ethernet_network_facts.py E322
lib/ansible/modules/remote_management/oneview/oneview_fc_network.py E322
lib/ansible/modules/remote_management/oneview/oneview_fc_network_facts.py E322
lib/ansible/modules/remote_management/oneview/oneview_fcoe_network.py E322
lib/ansible/modules/remote_management/oneview/oneview_fcoe_network_facts.py E322
lib/ansible/modules/remote_management/oneview/oneview_logical_interconnect_group.py E322
lib/ansible/modules/remote_management/oneview/oneview_logical_interconnect_group_facts.py E322
lib/ansible/modules/remote_management/oneview/oneview_network_set.py E322
lib/ansible/modules/remote_management/oneview/oneview_network_set_facts.py E322
lib/ansible/modules/remote_management/oneview/oneview_san_manager.py E322
lib/ansible/modules/remote_management/oneview/oneview_san_manager_facts.py E322
lib/ansible/modules/remote_management/stacki/stacki_host.py E317
lib/ansible/modules/remote_management/stacki/stacki_host.py E322
lib/ansible/modules/remote_management/ucs/ucs_ip_pool.py E322
lib/ansible/modules/remote_management/ucs/ucs_ip_pool.py E323
lib/ansible/modules/remote_management/ucs/ucs_mac_pool.py E322
lib/ansible/modules/remote_management/ucs/ucs_mac_pool.py E323
lib/ansible/modules/remote_management/ucs/ucs_san_connectivity.py E322
lib/ansible/modules/remote_management/ucs/ucs_san_connectivity.py E323
lib/ansible/modules/remote_management/ucs/ucs_vhba_template.py E322
lib/ansible/modules/remote_management/ucs/ucs_vhba_template.py E323
lib/ansible/modules/remote_management/ucs/ucs_vsans.py E322
lib/ansible/modules/remote_management/ucs/ucs_wwn_pool.py E322
lib/ansible/modules/remote_management/ucs/ucs_wwn_pool.py E323
lib/ansible/modules/source_control/subversion.py E322
lib/ansible/modules/storage/infinidat/infini_export.py E323
lib/ansible/modules/storage/infinidat/infini_export_client.py E323
lib/ansible/modules/storage/netapp/na_cdot_volume.py E317
lib/ansible/modules/storage/netapp/na_cdot_volume.py E322
lib/ansible/modules/storage/netapp/netapp_e_amg.py E322
lib/ansible/modules/storage/netapp/netapp_e_amg_role.py E322
lib/ansible/modules/storage/netapp/netapp_e_flashcache.py E322
lib/ansible/modules/storage/netapp/netapp_e_host.py E322
lib/ansible/modules/storage/netapp/netapp_e_snapshot_group.py E322
lib/ansible/modules/storage/netapp/netapp_e_snapshot_images.py E322
lib/ansible/modules/storage/netapp/netapp_e_storage_system.py E322
lib/ansible/modules/storage/netapp/netapp_e_storagepool.py E322
lib/ansible/modules/storage/netapp/netapp_e_volume.py E322
lib/ansible/modules/storage/netapp/netapp_e_volume_copy.py E322
lib/ansible/modules/storage/netapp/netapp_e_volume_copy.py E323
lib/ansible/modules/storage/netapp/sf_account_manager.py E322
lib/ansible/modules/storage/netapp/sf_check_connections.py E322
lib/ansible/modules/storage/netapp/sf_snapshot_schedule_manager.py E322
lib/ansible/modules/storage/netapp/sf_volume_access_group_manager.py E322
lib/ansible/modules/storage/netapp/sf_volume_manager.py E322
lib/ansible/modules/storage/zfs/zfs.py E322
lib/ansible/modules/storage/zfs/zfs.py E323
lib/ansible/modules/storage/zfs/zfs_facts.py E323
lib/ansible/modules/storage/zfs/zpool_facts.py E323
lib/ansible/modules/system/authorized_key.py E322
lib/ansible/modules/system/capabilities.py E322
lib/ansible/modules/system/filesystem.py E322
lib/ansible/modules/system/firewalld.py E322
lib/ansible/modules/system/gluster_volume.py E322
lib/ansible/modules/system/make.py E317
lib/ansible/modules/utilities/helper/_accelerate.py E305
lib/ansible/modules/utilities/logic/async_status.py E310
lib/ansible/modules/system/open_iscsi.py E322
lib/ansible/modules/system/osx_defaults.py E322
lib/ansible/modules/system/puppet.py E322
lib/ansible/modules/system/runit.py E322
lib/ansible/modules/system/selinux_permissive.py E322
lib/ansible/modules/system/service.py E323
lib/ansible/modules/system/svc.py E322
lib/ansible/modules/system/ufw.py E322
lib/ansible/modules/web_infrastructure/ansible_tower/tower_job_launch.py E323
lib/ansible/modules/web_infrastructure/ansible_tower/tower_job_template.py E322
lib/ansible/modules/web_infrastructure/ansible_tower/tower_team.py E322
lib/ansible/modules/web_infrastructure/apache2_mod_proxy.py E317
lib/ansible/modules/web_infrastructure/django_manage.py E317
lib/ansible/modules/web_infrastructure/django_manage.py E322
lib/ansible/modules/web_infrastructure/gunicorn.py E322
lib/ansible/modules/web_infrastructure/jenkins_plugin.py E322
lib/ansible/modules/web_infrastructure/jira.py E322

@ -39,7 +39,7 @@ from fnmatch import fnmatch
from ansible import __version__ as ansible_version
from ansible.executor.module_common import REPLACER_WINDOWS
from ansible.plugins.loader import fragment_loader
from ansible.utils.plugin_docs import BLACKLIST, get_docstring
from ansible.utils.plugin_docs import BLACKLIST, add_fragments, get_docstring
from module_args import AnsibleModuleImportError, get_argument_spec
@ -49,6 +49,7 @@ from utils import CaptureStd, parse_yaml
from voluptuous.humanize import humanize_error
from ansible.module_utils.six import PY3, with_metaclass
from ansible.module_utils.basic import FILE_COMMON_ARGUMENTS
if PY3:
# Because there is no ast.TryExcept in Python 3 ast module
@ -804,6 +805,7 @@ class ModuleValidator(Validator):
def _validate_docs(self):
doc_info = self._get_docs()
deprecated = False
doc = None
if not bool(doc_info['DOCUMENTATION']['value']):
self.reporter.error(
path=self.object_path,
@ -965,7 +967,7 @@ class ModuleValidator(Validator):
self._validate_docs_schema(metadata, metadata_1_1_schema(deprecated),
'ANSIBLE_METADATA', 316)
return doc_info
return doc_info, doc
def _check_version_added(self, doc):
if not self._is_new_module():
@ -993,12 +995,12 @@ class ModuleValidator(Validator):
msg='version_added should be %s. Currently %s' % (should_be, version_added)
)
def _validate_argument_spec(self):
def _validate_argument_spec(self, docs):
if not self.analyze_arg_spec:
return
try:
spec = get_argument_spec(self.path)
spec, args, kwargs = get_argument_spec(self.path)
except AnsibleModuleImportError:
self.reporter.error(
path=self.object_path,
@ -1011,7 +1013,17 @@ class ModuleValidator(Validator):
)
return
provider_args = set()
args_from_argspec = set()
for arg, data in spec.items():
args_from_argspec.add(arg)
args_from_argspec.update(data.get('aliases', []))
if arg == 'provider' and self.object_path.startswith('lib/ansible/modules/network/'):
# Record provider options from network modules, for later comparison
for provider_arg, provider_data in data.get('options', {}).items():
provider_args.add(provider_arg)
provider_args.update(provider_data.get('aliases', []))
if data.get('required') and data.get('default', object) != object:
self.reporter.error(
path=self.object_path,
@ -1021,6 +1033,50 @@ class ModuleValidator(Validator):
'should not be marked as required' % arg)
)
if docs:
try:
add_fragments(docs, self.object_path, fragment_loader=fragment_loader)
except Exception:
# Cannot merge fragments
return
file_common_arguments = set()
for arg, data in FILE_COMMON_ARGUMENTS.items():
file_common_arguments.add(arg)
file_common_arguments.update(data.get('aliases', []))
args_from_docs = set()
for arg, data in docs.get('options', {}).items():
args_from_docs.add(arg)
args_from_docs.update(data.get('aliases', []))
args_missing_from_docs = args_from_argspec.difference(args_from_docs)
docs_missing_from_args = args_from_docs.difference(args_from_argspec)
for arg in args_missing_from_docs:
# args_from_argspec contains undocumented argument
if kwargs.get('add_file_common_args', False) and arg in file_common_arguments:
# add_file_common_args is handled in AnsibleModule, and not exposed earlier
continue
if arg in provider_args:
# Provider args are being removed from network module top level
# So they are likely not documented on purpose
continue
self.reporter.error(
path=self.object_path,
code=322,
msg='"%s" is listed in the argument_spec, but not documented in the module' % arg
)
for arg in docs_missing_from_args:
# args_from_docs contains argument not in the argument_spec
if kwargs.get('add_file_common_args', False) and arg in file_common_arguments:
# add_file_common_args is handled in AnsibleModule, and not exposed earlier
continue
self.reporter.error(
path=self.object_path,
code=323,
msg='"%s" is listed in DOCUMENTATION.options, but not accepted by the module' % arg
)
def _check_for_new_args(self, doc):
if not self.base_branch or self._is_new_module():
return
@ -1150,10 +1206,10 @@ class ModuleValidator(Validator):
return
if self._python_module():
doc_info = self._validate_docs()
doc_info, docs = self._validate_docs()
if self._python_module() and not self._just_docs():
self._validate_argument_spec()
self._validate_argument_spec(docs)
self._check_for_sys_exit()
self._find_blacklist_imports()
main = self._find_main_call()

@ -77,8 +77,8 @@ def get_argument_spec(filename):
try:
args, kwargs = module_mock.call_args
try:
return kwargs['argument_spec']
return kwargs['argument_spec'], args, kwargs
except KeyError:
return args[0]
return args[0], args, kwargs
except TypeError:
return {}
return {}, (), {}

Loading…
Cancel
Save