From 146a7f8ff614727423560470efec1fa774eab022 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Tue, 2 Jul 2019 09:36:37 -0700 Subject: [PATCH] Split the metaclass == type and from future boilerplate code. The metaclass boilerplate is safe to apply en masse. The future import boilerplate needs code to be inspected to be sure that there aren't any py2isms that need to be fixed. Split these two checks so that we can fix them independently Be explicit about which files are grandfathered so we can fix them up one by one --- .../dev_guide/testing/sanity/boilerplate.rst | 3 +- .../sanity/future-import-boilerplate.rst | 51 + .../testing/sanity/metaclass-boilerplate.rst | 23 + test/sanity/code-smell/boilerplate.py | 72 -- ...te.json => future-import-boilerplate.json} | 0 .../code-smell/future-import-boilerplate.py | 1015 +++++++++++++++++ .../code-smell/metaclass-boilerplate.json | 6 + .../code-smell/metaclass-boilerplate.py | 1013 ++++++++++++++++ 8 files changed, 2110 insertions(+), 73 deletions(-) create mode 100644 docs/docsite/rst/dev_guide/testing/sanity/future-import-boilerplate.rst create mode 100644 docs/docsite/rst/dev_guide/testing/sanity/metaclass-boilerplate.rst delete mode 100755 test/sanity/code-smell/boilerplate.py rename test/sanity/code-smell/{boilerplate.json => future-import-boilerplate.json} (100%) create mode 100755 test/sanity/code-smell/future-import-boilerplate.py create mode 100644 test/sanity/code-smell/metaclass-boilerplate.json create mode 100755 test/sanity/code-smell/metaclass-boilerplate.py diff --git a/docs/docsite/rst/dev_guide/testing/sanity/boilerplate.rst b/docs/docsite/rst/dev_guide/testing/sanity/boilerplate.rst index e07d84654cc..0805c0d3626 100644 --- a/docs/docsite/rst/dev_guide/testing/sanity/boilerplate.rst +++ b/docs/docsite/rst/dev_guide/testing/sanity/boilerplate.rst @@ -1,3 +1,5 @@ +:orphan: + Sanity Tests » boilerplate ========================== @@ -7,4 +9,3 @@ Most Python files should include the following boilerplate: from __future__ import (absolute_import, division, print_function) __metaclass__ = type - diff --git a/docs/docsite/rst/dev_guide/testing/sanity/future-import-boilerplate.rst b/docs/docsite/rst/dev_guide/testing/sanity/future-import-boilerplate.rst new file mode 100644 index 00000000000..4bf1d9bb2b8 --- /dev/null +++ b/docs/docsite/rst/dev_guide/testing/sanity/future-import-boilerplate.rst @@ -0,0 +1,51 @@ +Sanity Tests » from __future__ boilerplate +========================================== + +Most Python files should include the following boilerplate at the top of the file, right after the +comment header: + +.. code-block:: python + + from __future__ import (absolute_import, division, print_function) + +This uses Python 3 semantics for absolute vs relative imports, division, and print. By doing this, +we can write code which is portable between Python 2 and Python 3 by following the Python 3 semantics. + + +absolute_import +--------------- + +When Python 2 encounters an import of a name in a file like ``import copy`` it attempts to load +``copy.py`` from the same directory as the file is in. This can cause problems if there is a python +file of that name in the directory and also a python module in ``sys.path`` with that same name. In +that case, Python 2 would load the one in the same directory and there would be no way to load the +one on ``sys.path``. Python 3 fixes this by making imports absolute by default. ``import copy`` +will find ``copy.py`` from ``sys.path``. If you want to import ``copy.py`` from the same directory, +the code needs to be changed to perform a relative import: ``from . import copy``. + +.. seealso:: + + * `Absolute and relative imports `_ + +division +-------- + +In Python 2, the division operator (``/``) returns integer values when used with integers. If there +was a remainder, this part would be left off (aka, `floor division`). In Python 3, the division +operator (``/``) always returns a floating point number. Code that needs to calculate the integer +portion of the quotient needs to switch to using the floor division operator (`//`) instead. + +.. seealso:: + + * `Changing the division operator `_ + +print_function +-------------- + +In Python 2, :func:`python:print` is a keyword. In Python 3, :func:`python3:print` is a function with different +parameters. Using this ``__future__`` allows using the Python 3 print semantics everywhere. + +.. seealso:: + + * `Make print a function `_ + diff --git a/docs/docsite/rst/dev_guide/testing/sanity/metaclass-boilerplate.rst b/docs/docsite/rst/dev_guide/testing/sanity/metaclass-boilerplate.rst new file mode 100644 index 00000000000..10f7bba9e9f --- /dev/null +++ b/docs/docsite/rst/dev_guide/testing/sanity/metaclass-boilerplate.rst @@ -0,0 +1,23 @@ +Sanity Tests » __metaclass__ = type boilerplate +=============================================== + +Most Python files should include the following boilerplate at the top of the file, right after the +comment header and ``from __future__ import``: + +.. code-block:: python + + __metaclass__ = type + + +Python 2 has "new-style classes" and "old-style classes" whereas Python 3 only has new-style classes. +Adding the ``__metaclass__ = type`` boilerplate makes every class defined in that file into +a new-style class as well. + +.. code-block:: python + + from __future__ import absolute_import, division, print_function + __metaclass__ = type + + class Foo: + # This is a new-style class even on Python 2 because of the __metaclass__ + pass diff --git a/test/sanity/code-smell/boilerplate.py b/test/sanity/code-smell/boilerplate.py deleted file mode 100755 index 2acf830040f..00000000000 --- a/test/sanity/code-smell/boilerplate.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env python - -import sys - - -def main(): - skip = set([ - 'lib/ansible/compat/selectors/_selectors2.py', - 'lib/ansible/module_utils/six/_six.py', - 'setup.py', - ]) - - prune = [ - 'contrib/inventory/', - 'contrib/vault/', - 'docs/', - 'examples/', - 'hacking/', - 'lib/ansible/module_utils/', - 'lib/ansible/modules/cloud/amazon/', - 'lib/ansible/modules/cloud/cloudstack/', - 'lib/ansible/modules/cloud/ovirt/', - 'lib/ansible/modules/network/aos/', - 'lib/ansible/modules/network/avi/', - 'lib/ansible/modules/network/cloudengine/', - 'lib/ansible/modules/network/eos/', - 'lib/ansible/modules/network/ios/', - 'lib/ansible/modules/network/netvisor/', - 'lib/ansible/modules/network/nxos/', - 'lib/ansible/modules/network/panos/', - 'lib/ansible/modules/network/vyos/', - 'lib/ansible/modules/windows/', - 'lib/ansible/plugins/doc_fragments/', - 'test/' - ] - - for path in sys.argv[1:] or sys.stdin.read().splitlines(): - if path in skip: - continue - - if any(path.startswith(p) for p in prune): - continue - - with open(path, 'rb') as path_fd: - future_ok = None - metaclass_ok = None - - lines = path_fd.read().splitlines() - - if not lines: - continue - - for line, text in enumerate(lines): - if text in (b'from __future__ import (absolute_import, division, print_function)', - b'from __future__ import absolute_import, division, print_function'): - future_ok = line - - if text == b'__metaclass__ = type': - metaclass_ok = line - - if future_ok and metaclass_ok: - break - - if future_ok is None: - print('%s: missing: from __future__ import (absolute_import, division, print_function)' % path) - - if metaclass_ok is None: - print('%s: missing: __metaclass__ = type' % path) - - -if __name__ == '__main__': - main() diff --git a/test/sanity/code-smell/boilerplate.json b/test/sanity/code-smell/future-import-boilerplate.json similarity index 100% rename from test/sanity/code-smell/boilerplate.json rename to test/sanity/code-smell/future-import-boilerplate.json diff --git a/test/sanity/code-smell/future-import-boilerplate.py b/test/sanity/code-smell/future-import-boilerplate.py new file mode 100755 index 00000000000..326759946ef --- /dev/null +++ b/test/sanity/code-smell/future-import-boilerplate.py @@ -0,0 +1,1015 @@ +#!/usr/bin/env python + +import sys + + +def main(): + + skip = frozenset(( + # We want to touch bundled stuff as little as possible + 'lib/ansible/compat/selectors/_selectors2.py', + 'lib/ansible/module_utils/six/__init__.py', + 'lib/ansible/module_utils/distro/_distro.py', + # We currently don't care about any build scripts + 'setup.py', + )) + + # We classify files in these directories as ones we don't care about fixing (at least for now) + prune = ( + 'contrib/inventory/', + 'contrib/vault/', + 'docs/', + 'examples/', + 'test/', + ) + + # These files pre-date the boilerplate test and should be fixed up as time goes on + grandfathered = frozenset(( + 'hacking/aws_config/build_iam_policy_framework.py', + 'hacking/fix_test_syntax.py', + 'hacking/get_library.py', + 'hacking/tests/gen_distribution_version_testcase.py', + 'hacking/create_deprecated_issues.py', + 'hacking/report.py', + 'hacking/return_skeleton_generator.py', + 'hacking/test-module.py', + 'lib/ansible/module_utils/_text.py', + 'lib/ansible/module_utils/alicloud_ecs.py', + 'lib/ansible/module_utils/ansible_tower.py', + 'lib/ansible/module_utils/api.py', + 'lib/ansible/module_utils/aws/batch.py', + 'lib/ansible/module_utils/aws/cloudfront_facts.py', + 'lib/ansible/module_utils/aws/core.py', + 'lib/ansible/module_utils/aws/direct_connect.py', + 'lib/ansible/module_utils/aws/elb_utils.py', + 'lib/ansible/module_utils/aws/elbv2.py', + 'lib/ansible/module_utils/aws/iam.py', + 'lib/ansible/module_utils/aws/rds.py', + 'lib/ansible/module_utils/aws/s3.py', + 'lib/ansible/module_utils/aws/urls.py', + 'lib/ansible/module_utils/aws/waf.py', + 'lib/ansible/module_utils/aws/waiters.py', + 'lib/ansible/module_utils/azure_rm_common.py', + 'lib/ansible/module_utils/azure_rm_common_ext.py', + 'lib/ansible/module_utils/azure_rm_common_rest.py', + 'lib/ansible/module_utils/cloud.py', + 'lib/ansible/module_utils/common/network.py', + 'lib/ansible/module_utils/common/removed.py', + 'lib/ansible/module_utils/common/test.py', + 'lib/ansible/module_utils/compat/ipaddress.py', + 'lib/ansible/module_utils/connection.py', + 'lib/ansible/module_utils/crypto.py', + 'lib/ansible/module_utils/database.py', + 'lib/ansible/module_utils/digital_ocean.py', + 'lib/ansible/module_utils/dimensiondata.py', + 'lib/ansible/module_utils/docker/common.py', + 'lib/ansible/module_utils/docker/swarm.py', + 'lib/ansible/module_utils/ec2.py', + 'lib/ansible/module_utils/exoscale.py', + 'lib/ansible/module_utils/f5_utils.py', + 'lib/ansible/module_utils/facts/sysctl.py', + 'lib/ansible/module_utils/facts/utils.py', + 'lib/ansible/module_utils/firewalld.py', + 'lib/ansible/module_utils/gcdns.py', + 'lib/ansible/module_utils/gce.py', + 'lib/ansible/module_utils/gcp.py', + 'lib/ansible/module_utils/gcp_utils.py', + 'lib/ansible/module_utils/gitlab.py', + 'lib/ansible/module_utils/hwc_utils.py', + 'lib/ansible/module_utils/infinibox.py', + 'lib/ansible/module_utils/ipa.py', + 'lib/ansible/module_utils/ismount.py', + 'lib/ansible/module_utils/json_utils.py', + 'lib/ansible/module_utils/known_hosts.py', + 'lib/ansible/module_utils/kubevirt.py', + 'lib/ansible/module_utils/linode.py', + 'lib/ansible/module_utils/lxd.py', + 'lib/ansible/module_utils/manageiq.py', + 'lib/ansible/module_utils/memset.py', + 'lib/ansible/module_utils/mysql.py', + 'lib/ansible/module_utils/net_tools/netbox/netbox_utils.py', + 'lib/ansible/module_utils/net_tools/nios/api.py', + 'lib/ansible/module_utils/netapp.py', + 'lib/ansible/module_utils/netapp_elementsw_module.py', + 'lib/ansible/module_utils/netapp_module.py', + 'lib/ansible/module_utils/network/a10/a10.py', + 'lib/ansible/module_utils/network/aci/aci.py', + 'lib/ansible/module_utils/network/aci/mso.py', + 'lib/ansible/module_utils/network/aireos/aireos.py', + 'lib/ansible/module_utils/network/aos/aos.py', + 'lib/ansible/module_utils/network/aruba/aruba.py', + 'lib/ansible/module_utils/network/asa/asa.py', + 'lib/ansible/module_utils/network/avi/ansible_utils.py', + 'lib/ansible/module_utils/network/avi/avi.py', + 'lib/ansible/module_utils/network/avi/avi_api.py', + 'lib/ansible/module_utils/network/bigswitch/bigswitch.py', + 'lib/ansible/module_utils/network/cloudengine/ce.py', + 'lib/ansible/module_utils/network/cnos/cnos.py', + 'lib/ansible/module_utils/network/cnos/cnos_devicerules.py', + 'lib/ansible/module_utils/network/cnos/cnos_errorcodes.py', + 'lib/ansible/module_utils/network/common/cfg/base.py', + 'lib/ansible/module_utils/network/common/config.py', + 'lib/ansible/module_utils/network/common/facts/facts.py', + 'lib/ansible/module_utils/network/common/netconf.py', + 'lib/ansible/module_utils/network/common/network.py', + 'lib/ansible/module_utils/network/common/parsing.py', + 'lib/ansible/module_utils/network/common/utils.py', + 'lib/ansible/module_utils/network/dellos10/dellos10.py', + 'lib/ansible/module_utils/network/dellos6/dellos6.py', + 'lib/ansible/module_utils/network/dellos9/dellos9.py', + 'lib/ansible/module_utils/network/edgeos/edgeos.py', + 'lib/ansible/module_utils/network/edgeswitch/edgeswitch.py', + 'lib/ansible/module_utils/network/edgeswitch/edgeswitch_interface.py', + 'lib/ansible/module_utils/network/enos/enos.py', + 'lib/ansible/module_utils/network/eos/eos.py', + 'lib/ansible/module_utils/network/eos/providers/cli/config/bgp/address_family.py', + 'lib/ansible/module_utils/network/eos/providers/cli/config/bgp/neighbors.py', + 'lib/ansible/module_utils/network/eos/providers/cli/config/bgp/process.py', + 'lib/ansible/module_utils/network/eos/providers/module.py', + 'lib/ansible/module_utils/network/eos/providers/providers.py', + 'lib/ansible/module_utils/network/exos/exos.py', + 'lib/ansible/module_utils/network/fortimanager/common.py', + 'lib/ansible/module_utils/network/fortimanager/fortimanager.py', + 'lib/ansible/module_utils/network/fortios/fortios.py', + 'lib/ansible/module_utils/network/frr/frr.py', + 'lib/ansible/module_utils/network/frr/providers/cli/config/base.py', + 'lib/ansible/module_utils/network/frr/providers/cli/config/bgp/address_family.py', + 'lib/ansible/module_utils/network/frr/providers/cli/config/bgp/neighbors.py', + 'lib/ansible/module_utils/network/frr/providers/cli/config/bgp/process.py', + 'lib/ansible/module_utils/network/frr/providers/module.py', + 'lib/ansible/module_utils/network/frr/providers/providers.py', + 'lib/ansible/module_utils/network/ftd/common.py', + 'lib/ansible/module_utils/network/ftd/configuration.py', + 'lib/ansible/module_utils/network/ftd/device.py', + 'lib/ansible/module_utils/network/ftd/fdm_swagger_client.py', + 'lib/ansible/module_utils/network/ftd/operation.py', + 'lib/ansible/module_utils/network/ios/ios.py', + 'lib/ansible/module_utils/network/ios/providers/cli/config/base.py', + 'lib/ansible/module_utils/network/ios/providers/cli/config/bgp/address_family.py', + 'lib/ansible/module_utils/network/ios/providers/cli/config/bgp/neighbors.py', + 'lib/ansible/module_utils/network/ios/providers/cli/config/bgp/process.py', + 'lib/ansible/module_utils/network/ios/providers/module.py', + 'lib/ansible/module_utils/network/ios/providers/providers.py', + 'lib/ansible/module_utils/network/iosxr/iosxr.py', + 'lib/ansible/module_utils/network/iosxr/providers/cli/config/bgp/address_family.py', + 'lib/ansible/module_utils/network/iosxr/providers/cli/config/bgp/neighbors.py', + 'lib/ansible/module_utils/network/iosxr/providers/cli/config/bgp/process.py', + 'lib/ansible/module_utils/network/iosxr/providers/module.py', + 'lib/ansible/module_utils/network/iosxr/providers/providers.py', + 'lib/ansible/module_utils/network/junos/argspec/facts/facts.py', + 'lib/ansible/module_utils/network/junos/facts/facts.py', + 'lib/ansible/module_utils/network/junos/facts/legacy/base.py', + 'lib/ansible/module_utils/network/junos/junos.py', + 'lib/ansible/module_utils/network/junos/utils/utils.py', + 'lib/ansible/module_utils/network/meraki/meraki.py', + 'lib/ansible/module_utils/network/netconf/netconf.py', + 'lib/ansible/module_utils/network/netscaler/netscaler.py', + 'lib/ansible/module_utils/network/nos/nos.py', + 'lib/ansible/module_utils/network/nso/nso.py', + 'lib/ansible/module_utils/network/nxos/argspec/facts/facts.py', + 'lib/ansible/module_utils/network/nxos/facts/facts.py', + 'lib/ansible/module_utils/network/nxos/facts/legacy/base.py', + 'lib/ansible/module_utils/network/nxos/nxos.py', + 'lib/ansible/module_utils/network/nxos/utils/utils.py', + 'lib/ansible/module_utils/network/onyx/onyx.py', + 'lib/ansible/module_utils/network/ordnance/ordnance.py', + 'lib/ansible/module_utils/network/restconf/restconf.py', + 'lib/ansible/module_utils/network/routeros/routeros.py', + 'lib/ansible/module_utils/network/skydive/api.py', + 'lib/ansible/module_utils/network/slxos/slxos.py', + 'lib/ansible/module_utils/network/sros/sros.py', + 'lib/ansible/module_utils/network/voss/voss.py', + 'lib/ansible/module_utils/network/vyos/vyos.py', + 'lib/ansible/module_utils/oneandone.py', + 'lib/ansible/module_utils/opennebula.py', + 'lib/ansible/module_utils/openstack.py', + 'lib/ansible/module_utils/oracle/oci_utils.py', + 'lib/ansible/module_utils/ovirt.py', + 'lib/ansible/module_utils/parsing/convert_bool.py', + 'lib/ansible/module_utils/postgres.py', + 'lib/ansible/module_utils/pure.py', + 'lib/ansible/module_utils/pycompat24.py', + 'lib/ansible/module_utils/rax.py', + 'lib/ansible/module_utils/redhat.py', + 'lib/ansible/module_utils/remote_management/dellemc/dellemc_idrac.py', + 'lib/ansible/module_utils/remote_management/intersight.py', + 'lib/ansible/module_utils/remote_management/lxca/common.py', + 'lib/ansible/module_utils/remote_management/ucs.py', + 'lib/ansible/module_utils/scaleway.py', + 'lib/ansible/module_utils/service.py', + 'lib/ansible/module_utils/splitter.py', + 'lib/ansible/module_utils/storage/emc/emc_vnx.py', + 'lib/ansible/module_utils/storage/hpe3par/hpe3par.py', + 'lib/ansible/module_utils/univention_umc.py', + 'lib/ansible/module_utils/urls.py', + 'lib/ansible/module_utils/vca.py', + 'lib/ansible/module_utils/vexata.py', + 'lib/ansible/module_utils/yumdnf.py', + 'lib/ansible/modules/cloud/amazon/aws_acm_info.py', + 'lib/ansible/modules/cloud/amazon/aws_az_info.py', + 'lib/ansible/modules/cloud/amazon/aws_batch_compute_environment.py', + 'lib/ansible/modules/cloud/amazon/aws_batch_job_definition.py', + 'lib/ansible/modules/cloud/amazon/aws_batch_job_queue.py', + 'lib/ansible/modules/cloud/amazon/aws_caller_info.py', + 'lib/ansible/modules/cloud/amazon/aws_codecommit.py', + 'lib/ansible/modules/cloud/amazon/aws_direct_connect_connection.py', + 'lib/ansible/modules/cloud/amazon/aws_direct_connect_link_aggregation_group.py', + 'lib/ansible/modules/cloud/amazon/aws_direct_connect_virtual_interface.py', + 'lib/ansible/modules/cloud/amazon/aws_eks_cluster.py', + 'lib/ansible/modules/cloud/amazon/aws_elasticbeanstalk_app.py', + 'lib/ansible/modules/cloud/amazon/aws_glue_connection.py', + 'lib/ansible/modules/cloud/amazon/aws_glue_job.py', + 'lib/ansible/modules/cloud/amazon/aws_inspector_target.py', + 'lib/ansible/modules/cloud/amazon/aws_kms.py', + 'lib/ansible/modules/cloud/amazon/aws_kms_info.py', + 'lib/ansible/modules/cloud/amazon/aws_region_info.py', + 'lib/ansible/modules/cloud/amazon/aws_s3.py', + 'lib/ansible/modules/cloud/amazon/aws_s3_cors.py', + 'lib/ansible/modules/cloud/amazon/aws_ses_identity.py', + 'lib/ansible/modules/cloud/amazon/aws_ses_identity_policy.py', + 'lib/ansible/modules/cloud/amazon/aws_ses_rule_set.py', + 'lib/ansible/modules/cloud/amazon/aws_sgw_info.py', + 'lib/ansible/modules/cloud/amazon/aws_ssm_parameter_store.py', + 'lib/ansible/modules/cloud/amazon/aws_waf_condition.py', + 'lib/ansible/modules/cloud/amazon/aws_waf_info.py', + 'lib/ansible/modules/cloud/amazon/aws_waf_rule.py', + 'lib/ansible/modules/cloud/amazon/aws_waf_web_acl.py', + 'lib/ansible/modules/cloud/amazon/cloudfront_distribution.py', + 'lib/ansible/modules/cloud/amazon/cloudfront_facts.py', + 'lib/ansible/modules/cloud/amazon/cloudfront_invalidation.py', + 'lib/ansible/modules/cloud/amazon/cloudfront_origin_access_identity.py', + 'lib/ansible/modules/cloud/amazon/dms_endpoint.py', + 'lib/ansible/modules/cloud/amazon/dms_replication_subnet_group.py', + 'lib/ansible/modules/cloud/amazon/ec2.py', + 'lib/ansible/modules/cloud/amazon/ec2_ami_copy.py', + 'lib/ansible/modules/cloud/amazon/ec2_ami_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_asg.py', + 'lib/ansible/modules/cloud/amazon/ec2_asg_lifecycle_hook.py', + 'lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py', + 'lib/ansible/modules/cloud/amazon/ec2_customer_gateway_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_eip_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_elb_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_eni.py', + 'lib/ansible/modules/cloud/amazon/ec2_eni_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_group.py', + 'lib/ansible/modules/cloud/amazon/ec2_lc.py', + 'lib/ansible/modules/cloud/amazon/ec2_placement_group.py', + 'lib/ansible/modules/cloud/amazon/ec2_placement_group_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_snapshot_copy.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_egress_igw.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_net_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_route_table.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_subnet_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_vpn.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_vpn_info.py', + 'lib/ansible/modules/cloud/amazon/ecs_service.py', + 'lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py', + 'lib/ansible/modules/cloud/amazon/elasticache.py', + 'lib/ansible/modules/cloud/amazon/elasticache_info.py', + 'lib/ansible/modules/cloud/amazon/elasticache_parameter_group.py', + 'lib/ansible/modules/cloud/amazon/elb_application_lb.py', + 'lib/ansible/modules/cloud/amazon/elb_classic_lb_info.py', + 'lib/ansible/modules/cloud/amazon/elb_network_lb.py', + 'lib/ansible/modules/cloud/amazon/elb_target.py', + 'lib/ansible/modules/cloud/amazon/execute_lambda.py', + 'lib/ansible/modules/cloud/amazon/iam_cert.py', + 'lib/ansible/modules/cloud/amazon/iam_group.py', + 'lib/ansible/modules/cloud/amazon/iam_policy.py', + 'lib/ansible/modules/cloud/amazon/iam_role.py', + 'lib/ansible/modules/cloud/amazon/iam_user.py', + 'lib/ansible/modules/cloud/amazon/lambda.py', + 'lib/ansible/modules/cloud/amazon/lambda_facts.py', + 'lib/ansible/modules/cloud/amazon/lambda_policy.py', + 'lib/ansible/modules/cloud/amazon/rds_instance_info.py', + 'lib/ansible/modules/cloud/amazon/rds_param_group.py', + 'lib/ansible/modules/cloud/amazon/rds_snapshot.py', + 'lib/ansible/modules/cloud/amazon/rds_snapshot_info.py', + 'lib/ansible/modules/cloud/amazon/redshift_cross_region_snapshots.py', + 'lib/ansible/modules/cloud/amazon/route53_health_check.py', + 'lib/ansible/modules/cloud/amazon/route53_zone.py', + 'lib/ansible/modules/cloud/amazon/s3_bucket.py', + 'lib/ansible/modules/cloud/amazon/s3_sync.py', + 'lib/ansible/modules/cloud/cloudstack/cs_account.py', + 'lib/ansible/modules/cloud/cloudstack/cs_affinitygroup.py', + 'lib/ansible/modules/cloud/cloudstack/cs_cluster.py', + 'lib/ansible/modules/cloud/cloudstack/cs_configuration.py', + 'lib/ansible/modules/cloud/cloudstack/cs_domain.py', + 'lib/ansible/modules/cloud/cloudstack/cs_facts.py', + 'lib/ansible/modules/cloud/cloudstack/cs_firewall.py', + 'lib/ansible/modules/cloud/cloudstack/cs_host.py', + 'lib/ansible/modules/cloud/cloudstack/cs_image_store.py', + 'lib/ansible/modules/cloud/cloudstack/cs_instance_nic.py', + 'lib/ansible/modules/cloud/cloudstack/cs_instance_nic_secondaryip.py', + 'lib/ansible/modules/cloud/cloudstack/cs_instancegroup.py', + 'lib/ansible/modules/cloud/cloudstack/cs_ip_address.py', + 'lib/ansible/modules/cloud/cloudstack/cs_iso.py', + 'lib/ansible/modules/cloud/cloudstack/cs_loadbalancer_rule.py', + 'lib/ansible/modules/cloud/cloudstack/cs_loadbalancer_rule_member.py', + 'lib/ansible/modules/cloud/cloudstack/cs_network.py', + 'lib/ansible/modules/cloud/cloudstack/cs_network_acl.py', + 'lib/ansible/modules/cloud/cloudstack/cs_network_acl_rule.py', + 'lib/ansible/modules/cloud/cloudstack/cs_network_offering.py', + 'lib/ansible/modules/cloud/cloudstack/cs_physical_network.py', + 'lib/ansible/modules/cloud/cloudstack/cs_pod.py', + 'lib/ansible/modules/cloud/cloudstack/cs_project.py', + 'lib/ansible/modules/cloud/cloudstack/cs_region.py', + 'lib/ansible/modules/cloud/cloudstack/cs_resourcelimit.py', + 'lib/ansible/modules/cloud/cloudstack/cs_role.py', + 'lib/ansible/modules/cloud/cloudstack/cs_role_permission.py', + 'lib/ansible/modules/cloud/cloudstack/cs_router.py', + 'lib/ansible/modules/cloud/cloudstack/cs_sshkeypair.py', + 'lib/ansible/modules/cloud/cloudstack/cs_staticnat.py', + 'lib/ansible/modules/cloud/cloudstack/cs_storage_pool.py', + 'lib/ansible/modules/cloud/cloudstack/cs_template.py', + 'lib/ansible/modules/cloud/cloudstack/cs_traffic_type.py', + 'lib/ansible/modules/cloud/cloudstack/cs_user.py', + 'lib/ansible/modules/cloud/cloudstack/cs_vlan_ip_range.py', + 'lib/ansible/modules/cloud/cloudstack/cs_vmsnapshot.py', + 'lib/ansible/modules/cloud/cloudstack/cs_volume.py', + 'lib/ansible/modules/cloud/cloudstack/cs_vpc_offering.py', + 'lib/ansible/modules/cloud/cloudstack/cs_vpn_gateway.py', + 'lib/ansible/modules/cloud/cloudstack/cs_zone.py', + 'lib/ansible/modules/cloud/cloudstack/cs_zone_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_affinity_group.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_affinity_label.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_affinity_label_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_auth.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_cluster.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_cluster_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_datacenter.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_datacenter_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_disk.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_disk_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_external_provider.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_external_provider_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_group.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_group_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_host.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_host_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_host_network.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_host_pm.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_host_storage_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_instance_type.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_job.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_mac_pool.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_network.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_network_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_nic.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_nic_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_permission.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_permission_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_quota.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_quota_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_role.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_scheduling_policy_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_snapshot.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_snapshot_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_storage_connection.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_storage_domain.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_storage_domain_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_storage_template_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_storage_vm_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_tag.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_tag_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_template.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_template_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_user.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_user_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_vm.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_vm_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_vmpool.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_vmpool_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_vnic_profile.py', + 'lib/ansible/modules/network/aos/_aos_asn_pool.py', + 'lib/ansible/modules/network/aos/_aos_blueprint.py', + 'lib/ansible/modules/network/aos/_aos_blueprint_param.py', + 'lib/ansible/modules/network/aos/_aos_blueprint_virtnet.py', + 'lib/ansible/modules/network/aos/_aos_device.py', + 'lib/ansible/modules/network/aos/_aos_external_router.py', + 'lib/ansible/modules/network/aos/_aos_ip_pool.py', + 'lib/ansible/modules/network/aos/_aos_logical_device.py', + 'lib/ansible/modules/network/aos/_aos_logical_device_map.py', + 'lib/ansible/modules/network/aos/_aos_login.py', + 'lib/ansible/modules/network/aos/_aos_rack_type.py', + 'lib/ansible/modules/network/aos/_aos_template.py', + 'lib/ansible/modules/network/avi/avi_actiongroupconfig.py', + 'lib/ansible/modules/network/avi/avi_alertconfig.py', + 'lib/ansible/modules/network/avi/avi_alertemailconfig.py', + 'lib/ansible/modules/network/avi/avi_alertscriptconfig.py', + 'lib/ansible/modules/network/avi/avi_alertsyslogconfig.py', + 'lib/ansible/modules/network/avi/avi_analyticsprofile.py', + 'lib/ansible/modules/network/avi/avi_api_session.py', + 'lib/ansible/modules/network/avi/avi_api_version.py', + 'lib/ansible/modules/network/avi/avi_applicationpersistenceprofile.py', + 'lib/ansible/modules/network/avi/avi_applicationprofile.py', + 'lib/ansible/modules/network/avi/avi_authprofile.py', + 'lib/ansible/modules/network/avi/avi_autoscalelaunchconfig.py', + 'lib/ansible/modules/network/avi/avi_backup.py', + 'lib/ansible/modules/network/avi/avi_backupconfiguration.py', + 'lib/ansible/modules/network/avi/avi_certificatemanagementprofile.py', + 'lib/ansible/modules/network/avi/avi_cloud.py', + 'lib/ansible/modules/network/avi/avi_cloudconnectoruser.py', + 'lib/ansible/modules/network/avi/avi_cloudproperties.py', + 'lib/ansible/modules/network/avi/avi_cluster.py', + 'lib/ansible/modules/network/avi/avi_clusterclouddetails.py', + 'lib/ansible/modules/network/avi/avi_controllerproperties.py', + 'lib/ansible/modules/network/avi/avi_customipamdnsprofile.py', + 'lib/ansible/modules/network/avi/avi_dnspolicy.py', + 'lib/ansible/modules/network/avi/avi_errorpagebody.py', + 'lib/ansible/modules/network/avi/avi_errorpageprofile.py', + 'lib/ansible/modules/network/avi/avi_gslb.py', + 'lib/ansible/modules/network/avi/avi_gslbgeodbprofile.py', + 'lib/ansible/modules/network/avi/avi_gslbservice.py', + 'lib/ansible/modules/network/avi/avi_gslbservice_patch_member.py', + 'lib/ansible/modules/network/avi/avi_hardwaresecuritymodulegroup.py', + 'lib/ansible/modules/network/avi/avi_healthmonitor.py', + 'lib/ansible/modules/network/avi/avi_httppolicyset.py', + 'lib/ansible/modules/network/avi/avi_ipaddrgroup.py', + 'lib/ansible/modules/network/avi/avi_ipamdnsproviderprofile.py', + 'lib/ansible/modules/network/avi/avi_l4policyset.py', + 'lib/ansible/modules/network/avi/avi_microservicegroup.py', + 'lib/ansible/modules/network/avi/avi_network.py', + 'lib/ansible/modules/network/avi/avi_networkprofile.py', + 'lib/ansible/modules/network/avi/avi_networksecuritypolicy.py', + 'lib/ansible/modules/network/avi/avi_pkiprofile.py', + 'lib/ansible/modules/network/avi/avi_pool.py', + 'lib/ansible/modules/network/avi/avi_poolgroup.py', + 'lib/ansible/modules/network/avi/avi_poolgroupdeploymentpolicy.py', + 'lib/ansible/modules/network/avi/avi_prioritylabels.py', + 'lib/ansible/modules/network/avi/avi_role.py', + 'lib/ansible/modules/network/avi/avi_scheduler.py', + 'lib/ansible/modules/network/avi/avi_seproperties.py', + 'lib/ansible/modules/network/avi/avi_serverautoscalepolicy.py', + 'lib/ansible/modules/network/avi/avi_serviceengine.py', + 'lib/ansible/modules/network/avi/avi_serviceenginegroup.py', + 'lib/ansible/modules/network/avi/avi_snmptrapprofile.py', + 'lib/ansible/modules/network/avi/avi_sslkeyandcertificate.py', + 'lib/ansible/modules/network/avi/avi_sslprofile.py', + 'lib/ansible/modules/network/avi/avi_stringgroup.py', + 'lib/ansible/modules/network/avi/avi_systemconfiguration.py', + 'lib/ansible/modules/network/avi/avi_tenant.py', + 'lib/ansible/modules/network/avi/avi_trafficcloneprofile.py', + 'lib/ansible/modules/network/avi/avi_useraccount.py', + 'lib/ansible/modules/network/avi/avi_useraccountprofile.py', + 'lib/ansible/modules/network/avi/avi_virtualservice.py', + 'lib/ansible/modules/network/avi/avi_vrfcontext.py', + 'lib/ansible/modules/network/avi/avi_vsdatascriptset.py', + 'lib/ansible/modules/network/avi/avi_vsvip.py', + 'lib/ansible/modules/network/avi/avi_webhook.py', + 'lib/ansible/modules/network/cloudengine/ce_aaa_server.py', + 'lib/ansible/modules/network/cloudengine/ce_aaa_server_host.py', + 'lib/ansible/modules/network/cloudengine/ce_acl.py', + 'lib/ansible/modules/network/cloudengine/ce_acl_advance.py', + 'lib/ansible/modules/network/cloudengine/ce_acl_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_bfd_global.py', + 'lib/ansible/modules/network/cloudengine/ce_bfd_session.py', + 'lib/ansible/modules/network/cloudengine/ce_bfd_view.py', + 'lib/ansible/modules/network/cloudengine/ce_bgp.py', + 'lib/ansible/modules/network/cloudengine/ce_bgp_af.py', + 'lib/ansible/modules/network/cloudengine/ce_bgp_neighbor.py', + 'lib/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.py', + 'lib/ansible/modules/network/cloudengine/ce_command.py', + 'lib/ansible/modules/network/cloudengine/ce_config.py', + 'lib/ansible/modules/network/cloudengine/ce_dldp.py', + 'lib/ansible/modules/network/cloudengine/ce_dldp_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_eth_trunk.py', + 'lib/ansible/modules/network/cloudengine/ce_evpn_bd_vni.py', + 'lib/ansible/modules/network/cloudengine/ce_evpn_bgp.py', + 'lib/ansible/modules/network/cloudengine/ce_evpn_bgp_rr.py', + 'lib/ansible/modules/network/cloudengine/ce_evpn_global.py', + 'lib/ansible/modules/network/cloudengine/ce_facts.py', + 'lib/ansible/modules/network/cloudengine/ce_file_copy.py', + 'lib/ansible/modules/network/cloudengine/ce_info_center_debug.py', + 'lib/ansible/modules/network/cloudengine/ce_info_center_global.py', + 'lib/ansible/modules/network/cloudengine/ce_info_center_log.py', + 'lib/ansible/modules/network/cloudengine/ce_info_center_trap.py', + 'lib/ansible/modules/network/cloudengine/ce_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_interface_ospf.py', + 'lib/ansible/modules/network/cloudengine/ce_ip_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_link_status.py', + 'lib/ansible/modules/network/cloudengine/ce_mlag_config.py', + 'lib/ansible/modules/network/cloudengine/ce_mlag_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_mtu.py', + 'lib/ansible/modules/network/cloudengine/ce_netconf.py', + 'lib/ansible/modules/network/cloudengine/ce_netstream_aging.py', + 'lib/ansible/modules/network/cloudengine/ce_netstream_export.py', + 'lib/ansible/modules/network/cloudengine/ce_netstream_global.py', + 'lib/ansible/modules/network/cloudengine/ce_netstream_template.py', + 'lib/ansible/modules/network/cloudengine/ce_ntp.py', + 'lib/ansible/modules/network/cloudengine/ce_ntp_auth.py', + 'lib/ansible/modules/network/cloudengine/ce_ospf.py', + 'lib/ansible/modules/network/cloudengine/ce_ospf_vrf.py', + 'lib/ansible/modules/network/cloudengine/ce_reboot.py', + 'lib/ansible/modules/network/cloudengine/ce_rollback.py', + 'lib/ansible/modules/network/cloudengine/ce_sflow.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_community.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_contact.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_location.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_target_host.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_traps.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_user.py', + 'lib/ansible/modules/network/cloudengine/ce_startup.py', + 'lib/ansible/modules/network/cloudengine/ce_static_route.py', + 'lib/ansible/modules/network/cloudengine/ce_stp.py', + 'lib/ansible/modules/network/cloudengine/ce_switchport.py', + 'lib/ansible/modules/network/cloudengine/ce_vlan.py', + 'lib/ansible/modules/network/cloudengine/ce_vrf.py', + 'lib/ansible/modules/network/cloudengine/ce_vrf_af.py', + 'lib/ansible/modules/network/cloudengine/ce_vrf_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_vrrp.py', + 'lib/ansible/modules/network/cloudengine/ce_vxlan_arp.py', + 'lib/ansible/modules/network/cloudengine/ce_vxlan_gateway.py', + 'lib/ansible/modules/network/cloudengine/ce_vxlan_global.py', + 'lib/ansible/modules/network/cloudengine/ce_vxlan_tunnel.py', + 'lib/ansible/modules/network/cloudengine/ce_vxlan_vap.py', + 'lib/ansible/modules/network/eos/eos_banner.py', + 'lib/ansible/modules/network/eos/eos_command.py', + 'lib/ansible/modules/network/eos/eos_config.py', + 'lib/ansible/modules/network/eos/eos_eapi.py', + 'lib/ansible/modules/network/eos/eos_facts.py', + 'lib/ansible/modules/network/eos/eos_logging.py', + 'lib/ansible/modules/network/eos/eos_system.py', + 'lib/ansible/modules/network/eos/eos_user.py', + 'lib/ansible/modules/network/eos/eos_vlan.py', + 'lib/ansible/modules/network/eos/eos_vrf.py', + 'lib/ansible/modules/network/ios/ios_banner.py', + 'lib/ansible/modules/network/ios/ios_command.py', + 'lib/ansible/modules/network/ios/ios_config.py', + 'lib/ansible/modules/network/ios/ios_facts.py', + 'lib/ansible/modules/network/ios/ios_logging.py', + 'lib/ansible/modules/network/ios/ios_ntp.py', + 'lib/ansible/modules/network/ios/ios_static_route.py', + 'lib/ansible/modules/network/ios/ios_system.py', + 'lib/ansible/modules/network/ios/ios_user.py', + 'lib/ansible/modules/network/ios/ios_vrf.py', + 'lib/ansible/modules/network/netvisor/_pn_cluster.py', + 'lib/ansible/modules/network/netvisor/_pn_ospf.py', + 'lib/ansible/modules/network/netvisor/_pn_ospfarea.py', + 'lib/ansible/modules/network/netvisor/_pn_show.py', + 'lib/ansible/modules/network/netvisor/_pn_trunk.py', + 'lib/ansible/modules/network/netvisor/_pn_vlag.py', + 'lib/ansible/modules/network/netvisor/_pn_vlan.py', + 'lib/ansible/modules/network/netvisor/_pn_vrouter.py', + 'lib/ansible/modules/network/netvisor/_pn_vrouterbgp.py', + 'lib/ansible/modules/network/netvisor/_pn_vrouterif.py', + 'lib/ansible/modules/network/netvisor/_pn_vrouterlbif.py', + 'lib/ansible/modules/network/nxos/_nxos_ip_interface.py', + 'lib/ansible/modules/network/nxos/_nxos_mtu.py', + 'lib/ansible/modules/network/nxos/_nxos_portchannel.py', + 'lib/ansible/modules/network/nxos/_nxos_switchport.py', + 'lib/ansible/modules/network/nxos/nxos_aaa_server.py', + 'lib/ansible/modules/network/nxos/nxos_aaa_server_host.py', + 'lib/ansible/modules/network/nxos/nxos_acl.py', + 'lib/ansible/modules/network/nxos/nxos_acl_interface.py', + 'lib/ansible/modules/network/nxos/nxos_banner.py', + 'lib/ansible/modules/network/nxos/nxos_bfd_global.py', + 'lib/ansible/modules/network/nxos/nxos_bgp.py', + 'lib/ansible/modules/network/nxos/nxos_bgp_af.py', + 'lib/ansible/modules/network/nxos/nxos_bgp_neighbor.py', + 'lib/ansible/modules/network/nxos/nxos_bgp_neighbor_af.py', + 'lib/ansible/modules/network/nxos/nxos_config.py', + 'lib/ansible/modules/network/nxos/nxos_evpn_global.py', + 'lib/ansible/modules/network/nxos/nxos_evpn_vni.py', + 'lib/ansible/modules/network/nxos/nxos_facts.py', + 'lib/ansible/modules/network/nxos/nxos_feature.py', + 'lib/ansible/modules/network/nxos/nxos_file_copy.py', + 'lib/ansible/modules/network/nxos/nxos_gir.py', + 'lib/ansible/modules/network/nxos/nxos_gir_profile_management.py', + 'lib/ansible/modules/network/nxos/nxos_hsrp.py', + 'lib/ansible/modules/network/nxos/nxos_igmp.py', + 'lib/ansible/modules/network/nxos/nxos_igmp_interface.py', + 'lib/ansible/modules/network/nxos/nxos_igmp_snooping.py', + 'lib/ansible/modules/network/nxos/nxos_install_os.py', + 'lib/ansible/modules/network/nxos/nxos_interface.py', + 'lib/ansible/modules/network/nxos/nxos_interface_ospf.py', + 'lib/ansible/modules/network/nxos/nxos_logging.py', + 'lib/ansible/modules/network/nxos/nxos_ntp_auth.py', + 'lib/ansible/modules/network/nxos/nxos_ntp_options.py', + 'lib/ansible/modules/network/nxos/nxos_nxapi.py', + 'lib/ansible/modules/network/nxos/nxos_ospf.py', + 'lib/ansible/modules/network/nxos/nxos_ospf_vrf.py', + 'lib/ansible/modules/network/nxos/nxos_overlay_global.py', + 'lib/ansible/modules/network/nxos/nxos_pim.py', + 'lib/ansible/modules/network/nxos/nxos_pim_interface.py', + 'lib/ansible/modules/network/nxos/nxos_pim_rp_address.py', + 'lib/ansible/modules/network/nxos/nxos_ping.py', + 'lib/ansible/modules/network/nxos/nxos_reboot.py', + 'lib/ansible/modules/network/nxos/nxos_rollback.py', + 'lib/ansible/modules/network/nxos/nxos_rpm.py', + 'lib/ansible/modules/network/nxos/nxos_smu.py', + 'lib/ansible/modules/network/nxos/nxos_snapshot.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_community.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_contact.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_host.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_location.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_traps.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_user.py', + 'lib/ansible/modules/network/nxos/nxos_static_route.py', + 'lib/ansible/modules/network/nxos/nxos_system.py', + 'lib/ansible/modules/network/nxos/nxos_udld.py', + 'lib/ansible/modules/network/nxos/nxos_udld_interface.py', + 'lib/ansible/modules/network/nxos/nxos_user.py', + 'lib/ansible/modules/network/nxos/nxos_vlan.py', + 'lib/ansible/modules/network/nxos/nxos_vpc.py', + 'lib/ansible/modules/network/nxos/nxos_vpc_interface.py', + 'lib/ansible/modules/network/nxos/nxos_vrf.py', + 'lib/ansible/modules/network/nxos/nxos_vrf_af.py', + 'lib/ansible/modules/network/nxos/nxos_vrf_interface.py', + 'lib/ansible/modules/network/nxos/nxos_vrrp.py', + 'lib/ansible/modules/network/nxos/nxos_vtp_domain.py', + 'lib/ansible/modules/network/nxos/nxos_vtp_password.py', + 'lib/ansible/modules/network/nxos/nxos_vtp_version.py', + 'lib/ansible/modules/network/nxos/nxos_vxlan_vtep.py', + 'lib/ansible/modules/network/nxos/nxos_vxlan_vtep_vni.py', + 'lib/ansible/modules/network/panos/_panos_admin.py', + 'lib/ansible/modules/network/panos/_panos_admpwd.py', + 'lib/ansible/modules/network/panos/_panos_cert_gen_ssh.py', + 'lib/ansible/modules/network/panos/_panos_check.py', + 'lib/ansible/modules/network/panos/_panos_commit.py', + 'lib/ansible/modules/network/panos/_panos_dag.py', + 'lib/ansible/modules/network/panos/_panos_dag_tags.py', + 'lib/ansible/modules/network/panos/_panos_import.py', + 'lib/ansible/modules/network/panos/_panos_interface.py', + 'lib/ansible/modules/network/panos/_panos_lic.py', + 'lib/ansible/modules/network/panos/_panos_loadcfg.py', + 'lib/ansible/modules/network/panos/_panos_match_rule.py', + 'lib/ansible/modules/network/panos/_panos_mgtconfig.py', + 'lib/ansible/modules/network/panos/_panos_nat_policy.py', + 'lib/ansible/modules/network/panos/_panos_object.py', + 'lib/ansible/modules/network/panos/_panos_op.py', + 'lib/ansible/modules/network/panos/_panos_pg.py', + 'lib/ansible/modules/network/panos/_panos_query_rules.py', + 'lib/ansible/modules/network/panos/_panos_restart.py', + 'lib/ansible/modules/network/panos/_panos_sag.py', + 'lib/ansible/modules/network/panos/_panos_security_policy.py', + 'lib/ansible/modules/network/panos/_panos_set.py', + 'lib/ansible/modules/network/vyos/vyos_banner.py', + 'lib/ansible/modules/network/vyos/vyos_command.py', + 'lib/ansible/modules/network/vyos/vyos_config.py', + 'lib/ansible/modules/network/vyos/vyos_facts.py', + 'lib/ansible/modules/network/vyos/vyos_interface.py', + 'lib/ansible/modules/network/vyos/vyos_l3_interface.py', + 'lib/ansible/modules/network/vyos/vyos_linkagg.py', + 'lib/ansible/modules/network/vyos/vyos_lldp.py', + 'lib/ansible/modules/network/vyos/vyos_lldp_interface.py', + 'lib/ansible/modules/network/vyos/vyos_logging.py', + 'lib/ansible/modules/network/vyos/vyos_static_route.py', + 'lib/ansible/modules/network/vyos/vyos_system.py', + 'lib/ansible/modules/network/vyos/vyos_user.py', + 'lib/ansible/modules/windows/_win_msi.py', + 'lib/ansible/modules/windows/async_status.ps1', + 'lib/ansible/modules/windows/setup.ps1', + 'lib/ansible/modules/windows/slurp.ps1', + 'lib/ansible/modules/windows/win_acl.ps1', + 'lib/ansible/modules/windows/win_acl.py', + 'lib/ansible/modules/windows/win_acl_inheritance.ps1', + 'lib/ansible/modules/windows/win_acl_inheritance.py', + 'lib/ansible/modules/windows/win_audit_policy_system.ps1', + 'lib/ansible/modules/windows/win_audit_policy_system.py', + 'lib/ansible/modules/windows/win_audit_rule.ps1', + 'lib/ansible/modules/windows/win_audit_rule.py', + 'lib/ansible/modules/windows/win_certificate_store.ps1', + 'lib/ansible/modules/windows/win_certificate_store.py', + 'lib/ansible/modules/windows/win_chocolatey.ps1', + 'lib/ansible/modules/windows/win_chocolatey.py', + 'lib/ansible/modules/windows/win_chocolatey_config.ps1', + 'lib/ansible/modules/windows/win_chocolatey_config.py', + 'lib/ansible/modules/windows/win_chocolatey_facts.ps1', + 'lib/ansible/modules/windows/win_chocolatey_facts.py', + 'lib/ansible/modules/windows/win_chocolatey_feature.ps1', + 'lib/ansible/modules/windows/win_chocolatey_feature.py', + 'lib/ansible/modules/windows/win_chocolatey_source.ps1', + 'lib/ansible/modules/windows/win_chocolatey_source.py', + 'lib/ansible/modules/windows/win_command.ps1', + 'lib/ansible/modules/windows/win_command.py', + 'lib/ansible/modules/windows/win_copy.ps1', + 'lib/ansible/modules/windows/win_copy.py', + 'lib/ansible/modules/windows/win_credential.ps1', + 'lib/ansible/modules/windows/win_credential.py', + 'lib/ansible/modules/windows/win_defrag.ps1', + 'lib/ansible/modules/windows/win_defrag.py', + 'lib/ansible/modules/windows/win_disk_facts.ps1', + 'lib/ansible/modules/windows/win_disk_facts.py', + 'lib/ansible/modules/windows/win_disk_image.ps1', + 'lib/ansible/modules/windows/win_disk_image.py', + 'lib/ansible/modules/windows/win_dns_client.ps1', + 'lib/ansible/modules/windows/win_dns_client.py', + 'lib/ansible/modules/windows/win_dns_record.ps1', + 'lib/ansible/modules/windows/win_dns_record.py', + 'lib/ansible/modules/windows/win_domain.ps1', + 'lib/ansible/modules/windows/win_domain.py', + 'lib/ansible/modules/windows/win_domain_computer.ps1', + 'lib/ansible/modules/windows/win_domain_computer.py', + 'lib/ansible/modules/windows/win_domain_controller.ps1', + 'lib/ansible/modules/windows/win_domain_controller.py', + 'lib/ansible/modules/windows/win_domain_group.ps1', + 'lib/ansible/modules/windows/win_domain_group.py', + 'lib/ansible/modules/windows/win_domain_group_membership.ps1', + 'lib/ansible/modules/windows/win_domain_group_membership.py', + 'lib/ansible/modules/windows/win_domain_membership.ps1', + 'lib/ansible/modules/windows/win_domain_membership.py', + 'lib/ansible/modules/windows/win_domain_user.ps1', + 'lib/ansible/modules/windows/win_domain_user.py', + 'lib/ansible/modules/windows/win_dotnet_ngen.ps1', + 'lib/ansible/modules/windows/win_dotnet_ngen.py', + 'lib/ansible/modules/windows/win_dsc.ps1', + 'lib/ansible/modules/windows/win_dsc.py', + 'lib/ansible/modules/windows/win_environment.ps1', + 'lib/ansible/modules/windows/win_environment.py', + 'lib/ansible/modules/windows/win_eventlog.ps1', + 'lib/ansible/modules/windows/win_eventlog.py', + 'lib/ansible/modules/windows/win_eventlog_entry.ps1', + 'lib/ansible/modules/windows/win_eventlog_entry.py', + 'lib/ansible/modules/windows/win_feature.ps1', + 'lib/ansible/modules/windows/win_feature.py', + 'lib/ansible/modules/windows/win_file.ps1', + 'lib/ansible/modules/windows/win_file.py', + 'lib/ansible/modules/windows/win_file_version.ps1', + 'lib/ansible/modules/windows/win_file_version.py', + 'lib/ansible/modules/windows/win_find.ps1', + 'lib/ansible/modules/windows/win_find.py', + 'lib/ansible/modules/windows/win_firewall.ps1', + 'lib/ansible/modules/windows/win_firewall.py', + 'lib/ansible/modules/windows/win_firewall_rule.ps1', + 'lib/ansible/modules/windows/win_firewall_rule.py', + 'lib/ansible/modules/windows/win_format.ps1', + 'lib/ansible/modules/windows/win_format.py', + 'lib/ansible/modules/windows/win_get_url.ps1', + 'lib/ansible/modules/windows/win_get_url.py', + 'lib/ansible/modules/windows/win_group.ps1', + 'lib/ansible/modules/windows/win_group.py', + 'lib/ansible/modules/windows/win_group_membership.ps1', + 'lib/ansible/modules/windows/win_group_membership.py', + 'lib/ansible/modules/windows/win_hostname.ps1', + 'lib/ansible/modules/windows/win_hostname.py', + 'lib/ansible/modules/windows/win_hosts.ps1', + 'lib/ansible/modules/windows/win_hosts.py', + 'lib/ansible/modules/windows/win_hotfix.ps1', + 'lib/ansible/modules/windows/win_hotfix.py', + 'lib/ansible/modules/windows/win_http_proxy.ps1', + 'lib/ansible/modules/windows/win_http_proxy.py', + 'lib/ansible/modules/windows/win_iis_virtualdirectory.ps1', + 'lib/ansible/modules/windows/win_iis_virtualdirectory.py', + 'lib/ansible/modules/windows/win_iis_webapplication.ps1', + 'lib/ansible/modules/windows/win_iis_webapplication.py', + 'lib/ansible/modules/windows/win_iis_webapppool.ps1', + 'lib/ansible/modules/windows/win_iis_webapppool.py', + 'lib/ansible/modules/windows/win_iis_webbinding.ps1', + 'lib/ansible/modules/windows/win_iis_webbinding.py', + 'lib/ansible/modules/windows/win_iis_website.ps1', + 'lib/ansible/modules/windows/win_iis_website.py', + 'lib/ansible/modules/windows/win_inet_proxy.ps1', + 'lib/ansible/modules/windows/win_inet_proxy.py', + 'lib/ansible/modules/windows/win_lineinfile.ps1', + 'lib/ansible/modules/windows/win_lineinfile.py', + 'lib/ansible/modules/windows/win_mapped_drive.ps1', + 'lib/ansible/modules/windows/win_mapped_drive.py', + 'lib/ansible/modules/windows/win_msg.ps1', + 'lib/ansible/modules/windows/win_msg.py', + 'lib/ansible/modules/windows/win_nssm.ps1', + 'lib/ansible/modules/windows/win_nssm.py', + 'lib/ansible/modules/windows/win_optional_feature.ps1', + 'lib/ansible/modules/windows/win_optional_feature.py', + 'lib/ansible/modules/windows/win_owner.ps1', + 'lib/ansible/modules/windows/win_owner.py', + 'lib/ansible/modules/windows/win_package.ps1', + 'lib/ansible/modules/windows/win_package.py', + 'lib/ansible/modules/windows/win_pagefile.ps1', + 'lib/ansible/modules/windows/win_pagefile.py', + 'lib/ansible/modules/windows/win_partition.ps1', + 'lib/ansible/modules/windows/win_partition.py', + 'lib/ansible/modules/windows/win_path.ps1', + 'lib/ansible/modules/windows/win_path.py', + 'lib/ansible/modules/windows/win_pester.ps1', + 'lib/ansible/modules/windows/win_pester.py', + 'lib/ansible/modules/windows/win_ping.ps1', + 'lib/ansible/modules/windows/win_ping.py', + 'lib/ansible/modules/windows/win_power_plan.ps1', + 'lib/ansible/modules/windows/win_power_plan.py', + 'lib/ansible/modules/windows/win_product_facts.ps1', + 'lib/ansible/modules/windows/win_product_facts.py', + 'lib/ansible/modules/windows/win_psexec.ps1', + 'lib/ansible/modules/windows/win_psexec.py', + 'lib/ansible/modules/windows/win_psmodule.ps1', + 'lib/ansible/modules/windows/win_psmodule.py', + 'lib/ansible/modules/windows/win_psrepository.ps1', + 'lib/ansible/modules/windows/win_psrepository.py', + 'lib/ansible/modules/windows/win_rabbitmq_plugin.ps1', + 'lib/ansible/modules/windows/win_rabbitmq_plugin.py', + 'lib/ansible/modules/windows/win_rds_cap.ps1', + 'lib/ansible/modules/windows/win_rds_cap.py', + 'lib/ansible/modules/windows/win_rds_rap.ps1', + 'lib/ansible/modules/windows/win_rds_rap.py', + 'lib/ansible/modules/windows/win_rds_settings.ps1', + 'lib/ansible/modules/windows/win_rds_settings.py', + 'lib/ansible/modules/windows/win_reboot.py', + 'lib/ansible/modules/windows/win_reg_stat.ps1', + 'lib/ansible/modules/windows/win_reg_stat.py', + 'lib/ansible/modules/windows/win_regedit.ps1', + 'lib/ansible/modules/windows/win_regedit.py', + 'lib/ansible/modules/windows/win_region.ps1', + 'lib/ansible/modules/windows/win_region.py', + 'lib/ansible/modules/windows/win_regmerge.ps1', + 'lib/ansible/modules/windows/win_regmerge.py', + 'lib/ansible/modules/windows/win_robocopy.ps1', + 'lib/ansible/modules/windows/win_robocopy.py', + 'lib/ansible/modules/windows/win_route.ps1', + 'lib/ansible/modules/windows/win_route.py', + 'lib/ansible/modules/windows/win_say.ps1', + 'lib/ansible/modules/windows/win_say.py', + 'lib/ansible/modules/windows/win_scheduled_task.ps1', + 'lib/ansible/modules/windows/win_scheduled_task.py', + 'lib/ansible/modules/windows/win_scheduled_task_stat.ps1', + 'lib/ansible/modules/windows/win_scheduled_task_stat.py', + 'lib/ansible/modules/windows/win_security_policy.ps1', + 'lib/ansible/modules/windows/win_security_policy.py', + 'lib/ansible/modules/windows/win_service.ps1', + 'lib/ansible/modules/windows/win_service.py', + 'lib/ansible/modules/windows/win_share.ps1', + 'lib/ansible/modules/windows/win_share.py', + 'lib/ansible/modules/windows/win_shell.ps1', + 'lib/ansible/modules/windows/win_shell.py', + 'lib/ansible/modules/windows/win_shortcut.ps1', + 'lib/ansible/modules/windows/win_shortcut.py', + 'lib/ansible/modules/windows/win_snmp.ps1', + 'lib/ansible/modules/windows/win_snmp.py', + 'lib/ansible/modules/windows/win_stat.ps1', + 'lib/ansible/modules/windows/win_stat.py', + 'lib/ansible/modules/windows/win_tempfile.ps1', + 'lib/ansible/modules/windows/win_tempfile.py', + 'lib/ansible/modules/windows/win_template.py', + 'lib/ansible/modules/windows/win_timezone.ps1', + 'lib/ansible/modules/windows/win_timezone.py', + 'lib/ansible/modules/windows/win_toast.ps1', + 'lib/ansible/modules/windows/win_toast.py', + 'lib/ansible/modules/windows/win_unzip.ps1', + 'lib/ansible/modules/windows/win_unzip.py', + 'lib/ansible/modules/windows/win_updates.ps1', + 'lib/ansible/modules/windows/win_updates.py', + 'lib/ansible/modules/windows/win_uri.ps1', + 'lib/ansible/modules/windows/win_uri.py', + 'lib/ansible/modules/windows/win_user.ps1', + 'lib/ansible/modules/windows/win_user.py', + 'lib/ansible/modules/windows/win_user_profile.ps1', + 'lib/ansible/modules/windows/win_user_profile.py', + 'lib/ansible/modules/windows/win_user_right.ps1', + 'lib/ansible/modules/windows/win_user_right.py', + 'lib/ansible/modules/windows/win_wait_for.ps1', + 'lib/ansible/modules/windows/win_wait_for.py', + 'lib/ansible/modules/windows/win_wait_for_process.ps1', + 'lib/ansible/modules/windows/win_wait_for_process.py', + 'lib/ansible/modules/windows/win_wakeonlan.ps1', + 'lib/ansible/modules/windows/win_wakeonlan.py', + 'lib/ansible/modules/windows/win_webpicmd.ps1', + 'lib/ansible/modules/windows/win_webpicmd.py', + 'lib/ansible/modules/windows/win_whoami.ps1', + 'lib/ansible/modules/windows/win_whoami.py', + 'lib/ansible/modules/windows/win_xml.ps1', + 'lib/ansible/modules/windows/win_xml.py', + 'lib/ansible/plugins/doc_fragments/a10.py', + 'lib/ansible/plugins/doc_fragments/aci.py', + 'lib/ansible/plugins/doc_fragments/acme.py', + 'lib/ansible/plugins/doc_fragments/aireos.py', + 'lib/ansible/plugins/doc_fragments/alicloud.py', + 'lib/ansible/plugins/doc_fragments/aruba.py', + 'lib/ansible/plugins/doc_fragments/asa.py', + 'lib/ansible/plugins/doc_fragments/auth_basic.py', + 'lib/ansible/plugins/doc_fragments/avi.py', + 'lib/ansible/plugins/doc_fragments/aws.py', + 'lib/ansible/plugins/doc_fragments/aws_credentials.py', + 'lib/ansible/plugins/doc_fragments/aws_region.py', + 'lib/ansible/plugins/doc_fragments/azure.py', + 'lib/ansible/plugins/doc_fragments/azure_tags.py', + 'lib/ansible/plugins/doc_fragments/backup.py', + 'lib/ansible/plugins/doc_fragments/ce.py', + 'lib/ansible/plugins/doc_fragments/checkpoint_commands.py', + 'lib/ansible/plugins/doc_fragments/checkpoint_objects.py', + 'lib/ansible/plugins/doc_fragments/cloudscale.py', + 'lib/ansible/plugins/doc_fragments/cloudstack.py', + 'lib/ansible/plugins/doc_fragments/cnos.py', + 'lib/ansible/plugins/doc_fragments/constructed.py', + 'lib/ansible/plugins/doc_fragments/decrypt.py', + 'lib/ansible/plugins/doc_fragments/default_callback.py', + 'lib/ansible/plugins/doc_fragments/dellos10.py', + 'lib/ansible/plugins/doc_fragments/dellos6.py', + 'lib/ansible/plugins/doc_fragments/dellos9.py', + 'lib/ansible/plugins/doc_fragments/digital_ocean.py', + 'lib/ansible/plugins/doc_fragments/dimensiondata.py', + 'lib/ansible/plugins/doc_fragments/dimensiondata_wait.py', + 'lib/ansible/plugins/doc_fragments/docker.py', + 'lib/ansible/plugins/doc_fragments/ec2.py', + 'lib/ansible/plugins/doc_fragments/emc.py', + 'lib/ansible/plugins/doc_fragments/enos.py', + 'lib/ansible/plugins/doc_fragments/eos.py', + 'lib/ansible/plugins/doc_fragments/exoscale.py', + 'lib/ansible/plugins/doc_fragments/f5.py', + 'lib/ansible/plugins/doc_fragments/files.py', + 'lib/ansible/plugins/doc_fragments/fortios.py', + 'lib/ansible/plugins/doc_fragments/gcp.py', + 'lib/ansible/plugins/doc_fragments/hcloud.py', + 'lib/ansible/plugins/doc_fragments/hetzner.py', + 'lib/ansible/plugins/doc_fragments/hpe3par.py', + 'lib/ansible/plugins/doc_fragments/hwc.py', + 'lib/ansible/plugins/doc_fragments/infinibox.py', + 'lib/ansible/plugins/doc_fragments/influxdb.py', + 'lib/ansible/plugins/doc_fragments/ingate.py', + 'lib/ansible/plugins/doc_fragments/intersight.py', + 'lib/ansible/plugins/doc_fragments/inventory_cache.py', + 'lib/ansible/plugins/doc_fragments/ios.py', + 'lib/ansible/plugins/doc_fragments/iosxr.py', + 'lib/ansible/plugins/doc_fragments/ipa.py', + 'lib/ansible/plugins/doc_fragments/ironware.py', + 'lib/ansible/plugins/doc_fragments/junos.py', + 'lib/ansible/plugins/doc_fragments/k8s_auth_options.py', + 'lib/ansible/plugins/doc_fragments/k8s_name_options.py', + 'lib/ansible/plugins/doc_fragments/k8s_resource_options.py', + 'lib/ansible/plugins/doc_fragments/k8s_scale_options.py', + 'lib/ansible/plugins/doc_fragments/k8s_state_options.py', + 'lib/ansible/plugins/doc_fragments/keycloak.py', + 'lib/ansible/plugins/doc_fragments/kubevirt_common_options.py', + 'lib/ansible/plugins/doc_fragments/kubevirt_vm_options.py', + 'lib/ansible/plugins/doc_fragments/ldap.py', + 'lib/ansible/plugins/doc_fragments/lxca_common.py', + 'lib/ansible/plugins/doc_fragments/manageiq.py', + 'lib/ansible/plugins/doc_fragments/meraki.py', + 'lib/ansible/plugins/doc_fragments/mso.py', + 'lib/ansible/plugins/doc_fragments/mysql.py', + 'lib/ansible/plugins/doc_fragments/netapp.py', + 'lib/ansible/plugins/doc_fragments/netconf.py', + 'lib/ansible/plugins/doc_fragments/netscaler.py', + 'lib/ansible/plugins/doc_fragments/network_agnostic.py', + 'lib/ansible/plugins/doc_fragments/nios.py', + 'lib/ansible/plugins/doc_fragments/nso.py', + 'lib/ansible/plugins/doc_fragments/nxos.py', + 'lib/ansible/plugins/doc_fragments/oneview.py', + 'lib/ansible/plugins/doc_fragments/online.py', + 'lib/ansible/plugins/doc_fragments/onyx.py', + 'lib/ansible/plugins/doc_fragments/opennebula.py', + 'lib/ansible/plugins/doc_fragments/openstack.py', + 'lib/ansible/plugins/doc_fragments/openswitch.py', + 'lib/ansible/plugins/doc_fragments/oracle.py', + 'lib/ansible/plugins/doc_fragments/oracle_creatable_resource.py', + 'lib/ansible/plugins/doc_fragments/oracle_display_name_option.py', + 'lib/ansible/plugins/doc_fragments/oracle_name_option.py', + 'lib/ansible/plugins/doc_fragments/oracle_tags.py', + 'lib/ansible/plugins/doc_fragments/oracle_wait_options.py', + 'lib/ansible/plugins/doc_fragments/ovirt.py', + 'lib/ansible/plugins/doc_fragments/ovirt_facts.py', + 'lib/ansible/plugins/doc_fragments/panos.py', + 'lib/ansible/plugins/doc_fragments/postgres.py', + 'lib/ansible/plugins/doc_fragments/proxysql.py', + 'lib/ansible/plugins/doc_fragments/purestorage.py', + 'lib/ansible/plugins/doc_fragments/rabbitmq.py', + 'lib/ansible/plugins/doc_fragments/rackspace.py', + 'lib/ansible/plugins/doc_fragments/return_common.py', + 'lib/ansible/plugins/doc_fragments/scaleway.py', + 'lib/ansible/plugins/doc_fragments/shell_common.py', + 'lib/ansible/plugins/doc_fragments/shell_windows.py', + 'lib/ansible/plugins/doc_fragments/skydive.py', + 'lib/ansible/plugins/doc_fragments/sros.py', + 'lib/ansible/plugins/doc_fragments/tower.py', + 'lib/ansible/plugins/doc_fragments/ucs.py', + 'lib/ansible/plugins/doc_fragments/url.py', + 'lib/ansible/plugins/doc_fragments/utm.py', + 'lib/ansible/plugins/doc_fragments/validate.py', + 'lib/ansible/plugins/doc_fragments/vca.py', + 'lib/ansible/plugins/doc_fragments/vexata.py', + 'lib/ansible/plugins/doc_fragments/vmware.py', + 'lib/ansible/plugins/doc_fragments/vmware_rest_client.py', + 'lib/ansible/plugins/doc_fragments/vultr.py', + 'lib/ansible/plugins/doc_fragments/vyos.py', + 'lib/ansible/plugins/doc_fragments/xenserver.py', + 'lib/ansible/plugins/doc_fragments/zabbix.py', + )) + + for path in sys.argv[1:] or sys.stdin.read().splitlines(): + if path in skip: + continue + + if any(path.startswith(p) for p in prune): + continue + + with open(path, 'rb') as path_fd: + lines = path_fd.read().splitlines() + + missing = True + if not lines: + # Files are allowed to be empty of everything including boilerplate + missing = False + + for text in lines: + if text in (b'from __future__ import (absolute_import, division, print_function)', + b'from __future__ import absolute_import, division, print_function'): + missing = False + break + + if not missing and path in grandfathered: + print('%s: Remove from test/sanity/code-smell/future-import-boilerplate.py' % path) + continue + + if missing and path not in grandfathered: + print('%s: missing: from __future__ import (absolute_import, division, print_function)' % path) + + +if __name__ == '__main__': + main() diff --git a/test/sanity/code-smell/metaclass-boilerplate.json b/test/sanity/code-smell/metaclass-boilerplate.json new file mode 100644 index 00000000000..6f1edb783ce --- /dev/null +++ b/test/sanity/code-smell/metaclass-boilerplate.json @@ -0,0 +1,6 @@ +{ + "extensions": [ + ".py" + ], + "output": "path-message" +} diff --git a/test/sanity/code-smell/metaclass-boilerplate.py b/test/sanity/code-smell/metaclass-boilerplate.py new file mode 100755 index 00000000000..6d6b086f2c2 --- /dev/null +++ b/test/sanity/code-smell/metaclass-boilerplate.py @@ -0,0 +1,1013 @@ +#!/usr/bin/env python + +import sys + + +def main(): + # We want to touch bundled stuff as little as possible + skip = frozenset(( + 'lib/ansible/compat/selectors/_selectors2.py', + 'lib/ansible/module_utils/distro/_distro.py', + 'lib/ansible/module_utils/six/__init__.py', + 'setup.py', + )) + + # These files pre-date the boilerplate test and should be fixed up as time goes on + prune = ( + 'contrib/inventory/', + 'contrib/vault/', + 'docs/', + 'examples/', + 'test/' + ) + + grandfathered = frozenset(( + 'hacking/aws_config/build_iam_policy_framework.py', + 'hacking/create_deprecated_issues.py', + 'hacking/fix_test_syntax.py', + 'hacking/get_library.py', + 'hacking/report.py', + 'hacking/return_skeleton_generator.py', + 'hacking/test-module.py', + 'hacking/tests/gen_distribution_version_testcase.py', + 'lib/ansible/module_utils/_text.py', + 'lib/ansible/module_utils/alicloud_ecs.py', + 'lib/ansible/module_utils/ansible_tower.py', + 'lib/ansible/module_utils/api.py', + 'lib/ansible/module_utils/aws/batch.py', + 'lib/ansible/module_utils/aws/cloudfront_facts.py', + 'lib/ansible/module_utils/aws/core.py', + 'lib/ansible/module_utils/aws/direct_connect.py', + 'lib/ansible/module_utils/aws/elb_utils.py', + 'lib/ansible/module_utils/aws/elbv2.py', + 'lib/ansible/module_utils/aws/iam.py', + 'lib/ansible/module_utils/aws/rds.py', + 'lib/ansible/module_utils/aws/s3.py', + 'lib/ansible/module_utils/aws/urls.py', + 'lib/ansible/module_utils/aws/waf.py', + 'lib/ansible/module_utils/aws/waiters.py', + 'lib/ansible/module_utils/azure_rm_common.py', + 'lib/ansible/module_utils/azure_rm_common_ext.py', + 'lib/ansible/module_utils/azure_rm_common_rest.py', + 'lib/ansible/module_utils/basic.py', + 'lib/ansible/module_utils/cloud.py', + 'lib/ansible/module_utils/common/network.py', + 'lib/ansible/module_utils/common/removed.py', + 'lib/ansible/module_utils/common/test.py', + 'lib/ansible/module_utils/compat/ipaddress.py', + 'lib/ansible/module_utils/connection.py', + 'lib/ansible/module_utils/crypto.py', + 'lib/ansible/module_utils/database.py', + 'lib/ansible/module_utils/digital_ocean.py', + 'lib/ansible/module_utils/dimensiondata.py', + 'lib/ansible/module_utils/docker/common.py', + 'lib/ansible/module_utils/docker/swarm.py', + 'lib/ansible/module_utils/ec2.py', + 'lib/ansible/module_utils/exoscale.py', + 'lib/ansible/module_utils/f5_utils.py', + 'lib/ansible/module_utils/facts/sysctl.py', + 'lib/ansible/module_utils/facts/utils.py', + 'lib/ansible/module_utils/firewalld.py', + 'lib/ansible/module_utils/gcdns.py', + 'lib/ansible/module_utils/gce.py', + 'lib/ansible/module_utils/gcp.py', + 'lib/ansible/module_utils/gcp_utils.py', + 'lib/ansible/module_utils/gitlab.py', + 'lib/ansible/module_utils/hwc_utils.py', + 'lib/ansible/module_utils/infinibox.py', + 'lib/ansible/module_utils/ipa.py', + 'lib/ansible/module_utils/ismount.py', + 'lib/ansible/module_utils/json_utils.py', + 'lib/ansible/module_utils/k8s/common.py', + 'lib/ansible/module_utils/k8s/raw.py', + 'lib/ansible/module_utils/k8s/scale.py', + 'lib/ansible/module_utils/known_hosts.py', + 'lib/ansible/module_utils/kubevirt.py', + 'lib/ansible/module_utils/linode.py', + 'lib/ansible/module_utils/lxd.py', + 'lib/ansible/module_utils/manageiq.py', + 'lib/ansible/module_utils/memset.py', + 'lib/ansible/module_utils/mysql.py', + 'lib/ansible/module_utils/net_tools/nios/api.py', + 'lib/ansible/module_utils/netapp.py', + 'lib/ansible/module_utils/netapp_elementsw_module.py', + 'lib/ansible/module_utils/netapp_module.py', + 'lib/ansible/module_utils/network/a10/a10.py', + 'lib/ansible/module_utils/network/aci/aci.py', + 'lib/ansible/module_utils/network/aci/mso.py', + 'lib/ansible/module_utils/network/aireos/aireos.py', + 'lib/ansible/module_utils/network/aos/aos.py', + 'lib/ansible/module_utils/network/aruba/aruba.py', + 'lib/ansible/module_utils/network/asa/asa.py', + 'lib/ansible/module_utils/network/avi/ansible_utils.py', + 'lib/ansible/module_utils/network/avi/avi.py', + 'lib/ansible/module_utils/network/avi/avi_api.py', + 'lib/ansible/module_utils/network/bigswitch/bigswitch.py', + 'lib/ansible/module_utils/network/checkpoint/checkpoint.py', + 'lib/ansible/module_utils/network/cloudengine/ce.py', + 'lib/ansible/module_utils/network/cnos/cnos.py', + 'lib/ansible/module_utils/network/cnos/cnos_devicerules.py', + 'lib/ansible/module_utils/network/cnos/cnos_errorcodes.py', + 'lib/ansible/module_utils/network/common/cfg/base.py', + 'lib/ansible/module_utils/network/common/config.py', + 'lib/ansible/module_utils/network/common/facts/facts.py', + 'lib/ansible/module_utils/network/common/netconf.py', + 'lib/ansible/module_utils/network/common/network.py', + 'lib/ansible/module_utils/network/common/parsing.py', + 'lib/ansible/module_utils/network/common/utils.py', + 'lib/ansible/module_utils/network/dellos10/dellos10.py', + 'lib/ansible/module_utils/network/dellos6/dellos6.py', + 'lib/ansible/module_utils/network/dellos9/dellos9.py', + 'lib/ansible/module_utils/network/edgeos/edgeos.py', + 'lib/ansible/module_utils/network/edgeswitch/edgeswitch.py', + 'lib/ansible/module_utils/network/edgeswitch/edgeswitch_interface.py', + 'lib/ansible/module_utils/network/enos/enos.py', + 'lib/ansible/module_utils/network/eos/eos.py', + 'lib/ansible/module_utils/network/eos/providers/cli/config/bgp/address_family.py', + 'lib/ansible/module_utils/network/eos/providers/cli/config/bgp/neighbors.py', + 'lib/ansible/module_utils/network/eos/providers/cli/config/bgp/process.py', + 'lib/ansible/module_utils/network/eos/providers/module.py', + 'lib/ansible/module_utils/network/eos/providers/providers.py', + 'lib/ansible/module_utils/network/exos/exos.py', + 'lib/ansible/module_utils/network/fortimanager/common.py', + 'lib/ansible/module_utils/network/fortimanager/fortimanager.py', + 'lib/ansible/module_utils/network/fortios/fortios.py', + 'lib/ansible/module_utils/network/frr/frr.py', + 'lib/ansible/module_utils/network/frr/providers/cli/config/base.py', + 'lib/ansible/module_utils/network/frr/providers/cli/config/bgp/address_family.py', + 'lib/ansible/module_utils/network/frr/providers/cli/config/bgp/neighbors.py', + 'lib/ansible/module_utils/network/frr/providers/cli/config/bgp/process.py', + 'lib/ansible/module_utils/network/frr/providers/module.py', + 'lib/ansible/module_utils/network/frr/providers/providers.py', + 'lib/ansible/module_utils/network/ftd/common.py', + 'lib/ansible/module_utils/network/ftd/configuration.py', + 'lib/ansible/module_utils/network/ftd/device.py', + 'lib/ansible/module_utils/network/ftd/fdm_swagger_client.py', + 'lib/ansible/module_utils/network/ftd/operation.py', + 'lib/ansible/module_utils/network/ios/ios.py', + 'lib/ansible/module_utils/network/ios/providers/cli/config/base.py', + 'lib/ansible/module_utils/network/ios/providers/cli/config/bgp/address_family.py', + 'lib/ansible/module_utils/network/ios/providers/cli/config/bgp/neighbors.py', + 'lib/ansible/module_utils/network/ios/providers/cli/config/bgp/process.py', + 'lib/ansible/module_utils/network/ios/providers/module.py', + 'lib/ansible/module_utils/network/ios/providers/providers.py', + 'lib/ansible/module_utils/network/iosxr/iosxr.py', + 'lib/ansible/module_utils/network/iosxr/providers/cli/config/bgp/address_family.py', + 'lib/ansible/module_utils/network/iosxr/providers/cli/config/bgp/neighbors.py', + 'lib/ansible/module_utils/network/iosxr/providers/cli/config/bgp/process.py', + 'lib/ansible/module_utils/network/iosxr/providers/module.py', + 'lib/ansible/module_utils/network/iosxr/providers/providers.py', + 'lib/ansible/module_utils/network/junos/argspec/facts/facts.py', + 'lib/ansible/module_utils/network/junos/facts/facts.py', + 'lib/ansible/module_utils/network/junos/facts/legacy/base.py', + 'lib/ansible/module_utils/network/junos/junos.py', + 'lib/ansible/module_utils/network/junos/utils/utils.py', + 'lib/ansible/module_utils/network/meraki/meraki.py', + 'lib/ansible/module_utils/network/netconf/netconf.py', + 'lib/ansible/module_utils/network/netscaler/netscaler.py', + 'lib/ansible/module_utils/network/nos/nos.py', + 'lib/ansible/module_utils/network/nso/nso.py', + 'lib/ansible/module_utils/network/nxos/argspec/facts/facts.py', + 'lib/ansible/module_utils/network/nxos/facts/facts.py', + 'lib/ansible/module_utils/network/nxos/facts/legacy/base.py', + 'lib/ansible/module_utils/network/nxos/nxos.py', + 'lib/ansible/module_utils/network/nxos/utils/utils.py', + 'lib/ansible/module_utils/network/onyx/onyx.py', + 'lib/ansible/module_utils/network/ordnance/ordnance.py', + 'lib/ansible/module_utils/network/restconf/restconf.py', + 'lib/ansible/module_utils/network/routeros/routeros.py', + 'lib/ansible/module_utils/network/skydive/api.py', + 'lib/ansible/module_utils/network/slxos/slxos.py', + 'lib/ansible/module_utils/network/sros/sros.py', + 'lib/ansible/module_utils/network/voss/voss.py', + 'lib/ansible/module_utils/network/vyos/vyos.py', + 'lib/ansible/module_utils/oneandone.py', + 'lib/ansible/module_utils/oneview.py', + 'lib/ansible/module_utils/opennebula.py', + 'lib/ansible/module_utils/openstack.py', + 'lib/ansible/module_utils/oracle/oci_utils.py', + 'lib/ansible/module_utils/ovirt.py', + 'lib/ansible/module_utils/parsing/convert_bool.py', + 'lib/ansible/module_utils/postgres.py', + 'lib/ansible/module_utils/pure.py', + 'lib/ansible/module_utils/pycompat24.py', + 'lib/ansible/module_utils/rax.py', + 'lib/ansible/module_utils/redhat.py', + 'lib/ansible/module_utils/remote_management/intersight.py', + 'lib/ansible/module_utils/remote_management/lxca/common.py', + 'lib/ansible/module_utils/remote_management/ucs.py', + 'lib/ansible/module_utils/scaleway.py', + 'lib/ansible/module_utils/service.py', + 'lib/ansible/module_utils/splitter.py', + 'lib/ansible/module_utils/storage/emc/emc_vnx.py', + 'lib/ansible/module_utils/storage/hpe3par/hpe3par.py', + 'lib/ansible/module_utils/univention_umc.py', + 'lib/ansible/module_utils/urls.py', + 'lib/ansible/module_utils/vca.py', + 'lib/ansible/module_utils/vexata.py', + 'lib/ansible/module_utils/yumdnf.py', + 'lib/ansible/modules/cloud/amazon/aws_acm_info.py', + 'lib/ansible/modules/cloud/amazon/aws_az_info.py', + 'lib/ansible/modules/cloud/amazon/aws_batch_compute_environment.py', + 'lib/ansible/modules/cloud/amazon/aws_batch_job_definition.py', + 'lib/ansible/modules/cloud/amazon/aws_batch_job_queue.py', + 'lib/ansible/modules/cloud/amazon/aws_caller_info.py', + 'lib/ansible/modules/cloud/amazon/aws_codecommit.py', + 'lib/ansible/modules/cloud/amazon/aws_direct_connect_connection.py', + 'lib/ansible/modules/cloud/amazon/aws_direct_connect_link_aggregation_group.py', + 'lib/ansible/modules/cloud/amazon/aws_direct_connect_virtual_interface.py', + 'lib/ansible/modules/cloud/amazon/aws_eks_cluster.py', + 'lib/ansible/modules/cloud/amazon/aws_elasticbeanstalk_app.py', + 'lib/ansible/modules/cloud/amazon/aws_glue_connection.py', + 'lib/ansible/modules/cloud/amazon/aws_glue_job.py', + 'lib/ansible/modules/cloud/amazon/aws_inspector_target.py', + 'lib/ansible/modules/cloud/amazon/aws_kms.py', + 'lib/ansible/modules/cloud/amazon/aws_kms_info.py', + 'lib/ansible/modules/cloud/amazon/aws_region_info.py', + 'lib/ansible/modules/cloud/amazon/aws_s3.py', + 'lib/ansible/modules/cloud/amazon/aws_s3_cors.py', + 'lib/ansible/modules/cloud/amazon/aws_ses_identity.py', + 'lib/ansible/modules/cloud/amazon/aws_ses_identity_policy.py', + 'lib/ansible/modules/cloud/amazon/aws_ses_rule_set.py', + 'lib/ansible/modules/cloud/amazon/aws_sgw_info.py', + 'lib/ansible/modules/cloud/amazon/aws_ssm_parameter_store.py', + 'lib/ansible/modules/cloud/amazon/aws_waf_condition.py', + 'lib/ansible/modules/cloud/amazon/aws_waf_info.py', + 'lib/ansible/modules/cloud/amazon/aws_waf_rule.py', + 'lib/ansible/modules/cloud/amazon/aws_waf_web_acl.py', + 'lib/ansible/modules/cloud/amazon/cloudfront_distribution.py', + 'lib/ansible/modules/cloud/amazon/cloudfront_facts.py', + 'lib/ansible/modules/cloud/amazon/cloudfront_invalidation.py', + 'lib/ansible/modules/cloud/amazon/cloudfront_origin_access_identity.py', + 'lib/ansible/modules/cloud/amazon/ec2.py', + 'lib/ansible/modules/cloud/amazon/ec2_ami_copy.py', + 'lib/ansible/modules/cloud/amazon/ec2_ami_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_asg.py', + 'lib/ansible/modules/cloud/amazon/ec2_asg_lifecycle_hook.py', + 'lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py', + 'lib/ansible/modules/cloud/amazon/ec2_customer_gateway_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_eip_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_elb_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_eni.py', + 'lib/ansible/modules/cloud/amazon/ec2_eni_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_group.py', + 'lib/ansible/modules/cloud/amazon/ec2_lc.py', + 'lib/ansible/modules/cloud/amazon/ec2_placement_group.py', + 'lib/ansible/modules/cloud/amazon/ec2_placement_group_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_snapshot_copy.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_egress_igw.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_net_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_route_table.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_subnet_info.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_vpn.py', + 'lib/ansible/modules/cloud/amazon/ec2_vpc_vpn_info.py', + 'lib/ansible/modules/cloud/amazon/ecs_service.py', + 'lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py', + 'lib/ansible/modules/cloud/amazon/elasticache.py', + 'lib/ansible/modules/cloud/amazon/elasticache_info.py', + 'lib/ansible/modules/cloud/amazon/elasticache_parameter_group.py', + 'lib/ansible/modules/cloud/amazon/elb_application_lb.py', + 'lib/ansible/modules/cloud/amazon/elb_classic_lb_info.py', + 'lib/ansible/modules/cloud/amazon/elb_network_lb.py', + 'lib/ansible/modules/cloud/amazon/elb_target.py', + 'lib/ansible/modules/cloud/amazon/execute_lambda.py', + 'lib/ansible/modules/cloud/amazon/iam_cert.py', + 'lib/ansible/modules/cloud/amazon/iam_group.py', + 'lib/ansible/modules/cloud/amazon/iam_policy.py', + 'lib/ansible/modules/cloud/amazon/iam_role.py', + 'lib/ansible/modules/cloud/amazon/iam_user.py', + 'lib/ansible/modules/cloud/amazon/lambda.py', + 'lib/ansible/modules/cloud/amazon/lambda_facts.py', + 'lib/ansible/modules/cloud/amazon/lambda_policy.py', + 'lib/ansible/modules/cloud/amazon/rds_instance_info.py', + 'lib/ansible/modules/cloud/amazon/rds_param_group.py', + 'lib/ansible/modules/cloud/amazon/rds_snapshot.py', + 'lib/ansible/modules/cloud/amazon/rds_snapshot_info.py', + 'lib/ansible/modules/cloud/amazon/redshift_cross_region_snapshots.py', + 'lib/ansible/modules/cloud/amazon/route53_health_check.py', + 'lib/ansible/modules/cloud/amazon/route53_zone.py', + 'lib/ansible/modules/cloud/amazon/s3_bucket.py', + 'lib/ansible/modules/cloud/amazon/s3_sync.py', + 'lib/ansible/modules/cloud/cloudstack/cs_account.py', + 'lib/ansible/modules/cloud/cloudstack/cs_affinitygroup.py', + 'lib/ansible/modules/cloud/cloudstack/cs_cluster.py', + 'lib/ansible/modules/cloud/cloudstack/cs_configuration.py', + 'lib/ansible/modules/cloud/cloudstack/cs_domain.py', + 'lib/ansible/modules/cloud/cloudstack/cs_facts.py', + 'lib/ansible/modules/cloud/cloudstack/cs_firewall.py', + 'lib/ansible/modules/cloud/cloudstack/cs_host.py', + 'lib/ansible/modules/cloud/cloudstack/cs_image_store.py', + 'lib/ansible/modules/cloud/cloudstack/cs_instance_nic.py', + 'lib/ansible/modules/cloud/cloudstack/cs_instance_nic_secondaryip.py', + 'lib/ansible/modules/cloud/cloudstack/cs_instancegroup.py', + 'lib/ansible/modules/cloud/cloudstack/cs_ip_address.py', + 'lib/ansible/modules/cloud/cloudstack/cs_iso.py', + 'lib/ansible/modules/cloud/cloudstack/cs_loadbalancer_rule.py', + 'lib/ansible/modules/cloud/cloudstack/cs_loadbalancer_rule_member.py', + 'lib/ansible/modules/cloud/cloudstack/cs_network.py', + 'lib/ansible/modules/cloud/cloudstack/cs_network_acl.py', + 'lib/ansible/modules/cloud/cloudstack/cs_network_acl_rule.py', + 'lib/ansible/modules/cloud/cloudstack/cs_network_offering.py', + 'lib/ansible/modules/cloud/cloudstack/cs_physical_network.py', + 'lib/ansible/modules/cloud/cloudstack/cs_pod.py', + 'lib/ansible/modules/cloud/cloudstack/cs_project.py', + 'lib/ansible/modules/cloud/cloudstack/cs_region.py', + 'lib/ansible/modules/cloud/cloudstack/cs_resourcelimit.py', + 'lib/ansible/modules/cloud/cloudstack/cs_role.py', + 'lib/ansible/modules/cloud/cloudstack/cs_role_permission.py', + 'lib/ansible/modules/cloud/cloudstack/cs_router.py', + 'lib/ansible/modules/cloud/cloudstack/cs_sshkeypair.py', + 'lib/ansible/modules/cloud/cloudstack/cs_staticnat.py', + 'lib/ansible/modules/cloud/cloudstack/cs_storage_pool.py', + 'lib/ansible/modules/cloud/cloudstack/cs_template.py', + 'lib/ansible/modules/cloud/cloudstack/cs_traffic_type.py', + 'lib/ansible/modules/cloud/cloudstack/cs_user.py', + 'lib/ansible/modules/cloud/cloudstack/cs_vlan_ip_range.py', + 'lib/ansible/modules/cloud/cloudstack/cs_vmsnapshot.py', + 'lib/ansible/modules/cloud/cloudstack/cs_volume.py', + 'lib/ansible/modules/cloud/cloudstack/cs_vpc_offering.py', + 'lib/ansible/modules/cloud/cloudstack/cs_vpn_gateway.py', + 'lib/ansible/modules/cloud/cloudstack/cs_zone.py', + 'lib/ansible/modules/cloud/cloudstack/cs_zone_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_affinity_group.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_affinity_label.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_affinity_label_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_auth.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_cluster.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_cluster_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_datacenter.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_datacenter_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_disk.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_disk_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_external_provider.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_external_provider_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_group.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_group_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_host.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_host_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_host_network.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_host_pm.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_host_storage_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_instance_type.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_job.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_mac_pool.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_network.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_network_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_nic.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_nic_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_permission.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_permission_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_quota.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_quota_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_role.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_scheduling_policy_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_snapshot.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_snapshot_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_storage_connection.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_storage_domain.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_storage_domain_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_storage_template_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_storage_vm_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_tag.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_tag_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_template.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_template_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_user.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_user_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_vm.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_vm_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_vmpool.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_vmpool_facts.py', + 'lib/ansible/modules/cloud/ovirt/ovirt_vnic_profile.py', + 'lib/ansible/modules/network/aos/_aos_asn_pool.py', + 'lib/ansible/modules/network/aos/_aos_blueprint.py', + 'lib/ansible/modules/network/aos/_aos_blueprint_param.py', + 'lib/ansible/modules/network/aos/_aos_blueprint_virtnet.py', + 'lib/ansible/modules/network/aos/_aos_device.py', + 'lib/ansible/modules/network/aos/_aos_external_router.py', + 'lib/ansible/modules/network/aos/_aos_ip_pool.py', + 'lib/ansible/modules/network/aos/_aos_logical_device.py', + 'lib/ansible/modules/network/aos/_aos_logical_device_map.py', + 'lib/ansible/modules/network/aos/_aos_login.py', + 'lib/ansible/modules/network/aos/_aos_rack_type.py', + 'lib/ansible/modules/network/aos/_aos_template.py', + 'lib/ansible/modules/network/avi/avi_actiongroupconfig.py', + 'lib/ansible/modules/network/avi/avi_alertconfig.py', + 'lib/ansible/modules/network/avi/avi_alertemailconfig.py', + 'lib/ansible/modules/network/avi/avi_alertscriptconfig.py', + 'lib/ansible/modules/network/avi/avi_alertsyslogconfig.py', + 'lib/ansible/modules/network/avi/avi_analyticsprofile.py', + 'lib/ansible/modules/network/avi/avi_api_session.py', + 'lib/ansible/modules/network/avi/avi_api_version.py', + 'lib/ansible/modules/network/avi/avi_applicationpersistenceprofile.py', + 'lib/ansible/modules/network/avi/avi_applicationprofile.py', + 'lib/ansible/modules/network/avi/avi_authprofile.py', + 'lib/ansible/modules/network/avi/avi_autoscalelaunchconfig.py', + 'lib/ansible/modules/network/avi/avi_backup.py', + 'lib/ansible/modules/network/avi/avi_backupconfiguration.py', + 'lib/ansible/modules/network/avi/avi_certificatemanagementprofile.py', + 'lib/ansible/modules/network/avi/avi_cloud.py', + 'lib/ansible/modules/network/avi/avi_cloudconnectoruser.py', + 'lib/ansible/modules/network/avi/avi_cloudproperties.py', + 'lib/ansible/modules/network/avi/avi_cluster.py', + 'lib/ansible/modules/network/avi/avi_clusterclouddetails.py', + 'lib/ansible/modules/network/avi/avi_controllerproperties.py', + 'lib/ansible/modules/network/avi/avi_customipamdnsprofile.py', + 'lib/ansible/modules/network/avi/avi_dnspolicy.py', + 'lib/ansible/modules/network/avi/avi_errorpagebody.py', + 'lib/ansible/modules/network/avi/avi_errorpageprofile.py', + 'lib/ansible/modules/network/avi/avi_gslb.py', + 'lib/ansible/modules/network/avi/avi_gslbgeodbprofile.py', + 'lib/ansible/modules/network/avi/avi_gslbservice.py', + 'lib/ansible/modules/network/avi/avi_gslbservice_patch_member.py', + 'lib/ansible/modules/network/avi/avi_hardwaresecuritymodulegroup.py', + 'lib/ansible/modules/network/avi/avi_healthmonitor.py', + 'lib/ansible/modules/network/avi/avi_httppolicyset.py', + 'lib/ansible/modules/network/avi/avi_ipaddrgroup.py', + 'lib/ansible/modules/network/avi/avi_ipamdnsproviderprofile.py', + 'lib/ansible/modules/network/avi/avi_l4policyset.py', + 'lib/ansible/modules/network/avi/avi_microservicegroup.py', + 'lib/ansible/modules/network/avi/avi_network.py', + 'lib/ansible/modules/network/avi/avi_networkprofile.py', + 'lib/ansible/modules/network/avi/avi_networksecuritypolicy.py', + 'lib/ansible/modules/network/avi/avi_pkiprofile.py', + 'lib/ansible/modules/network/avi/avi_pool.py', + 'lib/ansible/modules/network/avi/avi_poolgroup.py', + 'lib/ansible/modules/network/avi/avi_poolgroupdeploymentpolicy.py', + 'lib/ansible/modules/network/avi/avi_prioritylabels.py', + 'lib/ansible/modules/network/avi/avi_role.py', + 'lib/ansible/modules/network/avi/avi_scheduler.py', + 'lib/ansible/modules/network/avi/avi_seproperties.py', + 'lib/ansible/modules/network/avi/avi_serverautoscalepolicy.py', + 'lib/ansible/modules/network/avi/avi_serviceengine.py', + 'lib/ansible/modules/network/avi/avi_serviceenginegroup.py', + 'lib/ansible/modules/network/avi/avi_snmptrapprofile.py', + 'lib/ansible/modules/network/avi/avi_sslkeyandcertificate.py', + 'lib/ansible/modules/network/avi/avi_sslprofile.py', + 'lib/ansible/modules/network/avi/avi_stringgroup.py', + 'lib/ansible/modules/network/avi/avi_systemconfiguration.py', + 'lib/ansible/modules/network/avi/avi_tenant.py', + 'lib/ansible/modules/network/avi/avi_trafficcloneprofile.py', + 'lib/ansible/modules/network/avi/avi_useraccount.py', + 'lib/ansible/modules/network/avi/avi_useraccountprofile.py', + 'lib/ansible/modules/network/avi/avi_virtualservice.py', + 'lib/ansible/modules/network/avi/avi_vrfcontext.py', + 'lib/ansible/modules/network/avi/avi_vsdatascriptset.py', + 'lib/ansible/modules/network/avi/avi_vsvip.py', + 'lib/ansible/modules/network/avi/avi_webhook.py', + 'lib/ansible/modules/network/cloudengine/ce_aaa_server.py', + 'lib/ansible/modules/network/cloudengine/ce_aaa_server_host.py', + 'lib/ansible/modules/network/cloudengine/ce_acl.py', + 'lib/ansible/modules/network/cloudengine/ce_acl_advance.py', + 'lib/ansible/modules/network/cloudengine/ce_acl_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_bfd_global.py', + 'lib/ansible/modules/network/cloudengine/ce_bfd_session.py', + 'lib/ansible/modules/network/cloudengine/ce_bfd_view.py', + 'lib/ansible/modules/network/cloudengine/ce_bgp.py', + 'lib/ansible/modules/network/cloudengine/ce_bgp_af.py', + 'lib/ansible/modules/network/cloudengine/ce_bgp_neighbor.py', + 'lib/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.py', + 'lib/ansible/modules/network/cloudengine/ce_command.py', + 'lib/ansible/modules/network/cloudengine/ce_config.py', + 'lib/ansible/modules/network/cloudengine/ce_dldp.py', + 'lib/ansible/modules/network/cloudengine/ce_dldp_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_eth_trunk.py', + 'lib/ansible/modules/network/cloudengine/ce_evpn_bd_vni.py', + 'lib/ansible/modules/network/cloudengine/ce_evpn_bgp.py', + 'lib/ansible/modules/network/cloudengine/ce_evpn_bgp_rr.py', + 'lib/ansible/modules/network/cloudengine/ce_evpn_global.py', + 'lib/ansible/modules/network/cloudengine/ce_facts.py', + 'lib/ansible/modules/network/cloudengine/ce_file_copy.py', + 'lib/ansible/modules/network/cloudengine/ce_info_center_debug.py', + 'lib/ansible/modules/network/cloudengine/ce_info_center_global.py', + 'lib/ansible/modules/network/cloudengine/ce_info_center_log.py', + 'lib/ansible/modules/network/cloudengine/ce_info_center_trap.py', + 'lib/ansible/modules/network/cloudengine/ce_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_interface_ospf.py', + 'lib/ansible/modules/network/cloudengine/ce_ip_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_link_status.py', + 'lib/ansible/modules/network/cloudengine/ce_mlag_config.py', + 'lib/ansible/modules/network/cloudengine/ce_mlag_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_mtu.py', + 'lib/ansible/modules/network/cloudengine/ce_netconf.py', + 'lib/ansible/modules/network/cloudengine/ce_netstream_aging.py', + 'lib/ansible/modules/network/cloudengine/ce_netstream_export.py', + 'lib/ansible/modules/network/cloudengine/ce_netstream_global.py', + 'lib/ansible/modules/network/cloudengine/ce_netstream_template.py', + 'lib/ansible/modules/network/cloudengine/ce_ntp.py', + 'lib/ansible/modules/network/cloudengine/ce_ntp_auth.py', + 'lib/ansible/modules/network/cloudengine/ce_ospf.py', + 'lib/ansible/modules/network/cloudengine/ce_ospf_vrf.py', + 'lib/ansible/modules/network/cloudengine/ce_reboot.py', + 'lib/ansible/modules/network/cloudengine/ce_rollback.py', + 'lib/ansible/modules/network/cloudengine/ce_sflow.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_community.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_contact.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_location.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_target_host.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_traps.py', + 'lib/ansible/modules/network/cloudengine/ce_snmp_user.py', + 'lib/ansible/modules/network/cloudengine/ce_startup.py', + 'lib/ansible/modules/network/cloudengine/ce_static_route.py', + 'lib/ansible/modules/network/cloudengine/ce_stp.py', + 'lib/ansible/modules/network/cloudengine/ce_switchport.py', + 'lib/ansible/modules/network/cloudengine/ce_vlan.py', + 'lib/ansible/modules/network/cloudengine/ce_vrf.py', + 'lib/ansible/modules/network/cloudengine/ce_vrf_af.py', + 'lib/ansible/modules/network/cloudengine/ce_vrf_interface.py', + 'lib/ansible/modules/network/cloudengine/ce_vrrp.py', + 'lib/ansible/modules/network/cloudengine/ce_vxlan_arp.py', + 'lib/ansible/modules/network/cloudengine/ce_vxlan_gateway.py', + 'lib/ansible/modules/network/cloudengine/ce_vxlan_global.py', + 'lib/ansible/modules/network/cloudengine/ce_vxlan_tunnel.py', + 'lib/ansible/modules/network/cloudengine/ce_vxlan_vap.py', + 'lib/ansible/modules/network/eos/eos_banner.py', + 'lib/ansible/modules/network/eos/eos_command.py', + 'lib/ansible/modules/network/eos/eos_config.py', + 'lib/ansible/modules/network/eos/eos_eapi.py', + 'lib/ansible/modules/network/eos/eos_facts.py', + 'lib/ansible/modules/network/eos/eos_logging.py', + 'lib/ansible/modules/network/eos/eos_system.py', + 'lib/ansible/modules/network/eos/eos_user.py', + 'lib/ansible/modules/network/eos/eos_vlan.py', + 'lib/ansible/modules/network/eos/eos_vrf.py', + 'lib/ansible/modules/network/ios/ios_banner.py', + 'lib/ansible/modules/network/ios/ios_command.py', + 'lib/ansible/modules/network/ios/ios_config.py', + 'lib/ansible/modules/network/ios/ios_facts.py', + 'lib/ansible/modules/network/ios/ios_logging.py', + 'lib/ansible/modules/network/ios/ios_ntp.py', + 'lib/ansible/modules/network/ios/ios_static_route.py', + 'lib/ansible/modules/network/ios/ios_system.py', + 'lib/ansible/modules/network/ios/ios_user.py', + 'lib/ansible/modules/network/ios/ios_vrf.py', + 'lib/ansible/modules/network/netvisor/_pn_cluster.py', + 'lib/ansible/modules/network/netvisor/_pn_ospf.py', + 'lib/ansible/modules/network/netvisor/_pn_ospfarea.py', + 'lib/ansible/modules/network/netvisor/_pn_show.py', + 'lib/ansible/modules/network/netvisor/_pn_trunk.py', + 'lib/ansible/modules/network/netvisor/_pn_vlag.py', + 'lib/ansible/modules/network/netvisor/_pn_vlan.py', + 'lib/ansible/modules/network/netvisor/_pn_vrouter.py', + 'lib/ansible/modules/network/netvisor/_pn_vrouterbgp.py', + 'lib/ansible/modules/network/netvisor/_pn_vrouterif.py', + 'lib/ansible/modules/network/netvisor/_pn_vrouterlbif.py', + 'lib/ansible/modules/network/nxos/_nxos_ip_interface.py', + 'lib/ansible/modules/network/nxos/_nxos_mtu.py', + 'lib/ansible/modules/network/nxos/_nxos_portchannel.py', + 'lib/ansible/modules/network/nxos/_nxos_switchport.py', + 'lib/ansible/modules/network/nxos/nxos_aaa_server.py', + 'lib/ansible/modules/network/nxos/nxos_aaa_server_host.py', + 'lib/ansible/modules/network/nxos/nxos_acl.py', + 'lib/ansible/modules/network/nxos/nxos_acl_interface.py', + 'lib/ansible/modules/network/nxos/nxos_banner.py', + 'lib/ansible/modules/network/nxos/nxos_bfd_global.py', + 'lib/ansible/modules/network/nxos/nxos_bgp.py', + 'lib/ansible/modules/network/nxos/nxos_bgp_af.py', + 'lib/ansible/modules/network/nxos/nxos_bgp_neighbor.py', + 'lib/ansible/modules/network/nxos/nxos_bgp_neighbor_af.py', + 'lib/ansible/modules/network/nxos/nxos_config.py', + 'lib/ansible/modules/network/nxos/nxos_evpn_global.py', + 'lib/ansible/modules/network/nxos/nxos_evpn_vni.py', + 'lib/ansible/modules/network/nxos/nxos_facts.py', + 'lib/ansible/modules/network/nxos/nxos_feature.py', + 'lib/ansible/modules/network/nxos/nxos_file_copy.py', + 'lib/ansible/modules/network/nxos/nxos_gir.py', + 'lib/ansible/modules/network/nxos/nxos_gir_profile_management.py', + 'lib/ansible/modules/network/nxos/nxos_hsrp.py', + 'lib/ansible/modules/network/nxos/nxos_igmp.py', + 'lib/ansible/modules/network/nxos/nxos_igmp_interface.py', + 'lib/ansible/modules/network/nxos/nxos_igmp_snooping.py', + 'lib/ansible/modules/network/nxos/nxos_install_os.py', + 'lib/ansible/modules/network/nxos/nxos_interface.py', + 'lib/ansible/modules/network/nxos/nxos_interface_ospf.py', + 'lib/ansible/modules/network/nxos/nxos_logging.py', + 'lib/ansible/modules/network/nxos/nxos_ntp_auth.py', + 'lib/ansible/modules/network/nxos/nxos_ntp_options.py', + 'lib/ansible/modules/network/nxos/nxos_nxapi.py', + 'lib/ansible/modules/network/nxos/nxos_ospf.py', + 'lib/ansible/modules/network/nxos/nxos_ospf_vrf.py', + 'lib/ansible/modules/network/nxos/nxos_overlay_global.py', + 'lib/ansible/modules/network/nxos/nxos_pim.py', + 'lib/ansible/modules/network/nxos/nxos_pim_interface.py', + 'lib/ansible/modules/network/nxos/nxos_pim_rp_address.py', + 'lib/ansible/modules/network/nxos/nxos_ping.py', + 'lib/ansible/modules/network/nxos/nxos_reboot.py', + 'lib/ansible/modules/network/nxos/nxos_rollback.py', + 'lib/ansible/modules/network/nxos/nxos_rpm.py', + 'lib/ansible/modules/network/nxos/nxos_smu.py', + 'lib/ansible/modules/network/nxos/nxos_snapshot.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_community.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_contact.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_host.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_location.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_traps.py', + 'lib/ansible/modules/network/nxos/nxos_snmp_user.py', + 'lib/ansible/modules/network/nxos/nxos_static_route.py', + 'lib/ansible/modules/network/nxos/nxos_system.py', + 'lib/ansible/modules/network/nxos/nxos_udld.py', + 'lib/ansible/modules/network/nxos/nxos_udld_interface.py', + 'lib/ansible/modules/network/nxos/nxos_user.py', + 'lib/ansible/modules/network/nxos/nxos_vlan.py', + 'lib/ansible/modules/network/nxos/nxos_vpc.py', + 'lib/ansible/modules/network/nxos/nxos_vpc_interface.py', + 'lib/ansible/modules/network/nxos/nxos_vrf.py', + 'lib/ansible/modules/network/nxos/nxos_vrf_af.py', + 'lib/ansible/modules/network/nxos/nxos_vrf_interface.py', + 'lib/ansible/modules/network/nxos/nxos_vrrp.py', + 'lib/ansible/modules/network/nxos/nxos_vtp_domain.py', + 'lib/ansible/modules/network/nxos/nxos_vtp_password.py', + 'lib/ansible/modules/network/nxos/nxos_vtp_version.py', + 'lib/ansible/modules/network/nxos/nxos_vxlan_vtep.py', + 'lib/ansible/modules/network/nxos/nxos_vxlan_vtep_vni.py', + 'lib/ansible/modules/network/panos/_panos_admin.py', + 'lib/ansible/modules/network/panos/_panos_admpwd.py', + 'lib/ansible/modules/network/panos/_panos_cert_gen_ssh.py', + 'lib/ansible/modules/network/panos/_panos_check.py', + 'lib/ansible/modules/network/panos/_panos_commit.py', + 'lib/ansible/modules/network/panos/_panos_dag.py', + 'lib/ansible/modules/network/panos/_panos_dag_tags.py', + 'lib/ansible/modules/network/panos/_panos_import.py', + 'lib/ansible/modules/network/panos/_panos_interface.py', + 'lib/ansible/modules/network/panos/_panos_lic.py', + 'lib/ansible/modules/network/panos/_panos_loadcfg.py', + 'lib/ansible/modules/network/panos/_panos_match_rule.py', + 'lib/ansible/modules/network/panos/_panos_mgtconfig.py', + 'lib/ansible/modules/network/panos/_panos_nat_policy.py', + 'lib/ansible/modules/network/panos/_panos_object.py', + 'lib/ansible/modules/network/panos/_panos_op.py', + 'lib/ansible/modules/network/panos/_panos_pg.py', + 'lib/ansible/modules/network/panos/_panos_query_rules.py', + 'lib/ansible/modules/network/panos/_panos_restart.py', + 'lib/ansible/modules/network/panos/_panos_sag.py', + 'lib/ansible/modules/network/panos/_panos_security_policy.py', + 'lib/ansible/modules/network/panos/_panos_set.py', + 'lib/ansible/modules/network/vyos/vyos_banner.py', + 'lib/ansible/modules/network/vyos/vyos_command.py', + 'lib/ansible/modules/network/vyos/vyos_config.py', + 'lib/ansible/modules/network/vyos/vyos_facts.py', + 'lib/ansible/modules/network/vyos/vyos_interface.py', + 'lib/ansible/modules/network/vyos/vyos_l3_interface.py', + 'lib/ansible/modules/network/vyos/vyos_linkagg.py', + 'lib/ansible/modules/network/vyos/vyos_lldp.py', + 'lib/ansible/modules/network/vyos/vyos_lldp_interface.py', + 'lib/ansible/modules/network/vyos/vyos_logging.py', + 'lib/ansible/modules/network/vyos/vyos_static_route.py', + 'lib/ansible/modules/network/vyos/vyos_system.py', + 'lib/ansible/modules/network/vyos/vyos_user.py', + 'lib/ansible/modules/windows/_win_msi.py', + 'lib/ansible/modules/windows/async_status.ps1', + 'lib/ansible/modules/windows/setup.ps1', + 'lib/ansible/modules/windows/slurp.ps1', + 'lib/ansible/modules/windows/win_acl.ps1', + 'lib/ansible/modules/windows/win_acl.py', + 'lib/ansible/modules/windows/win_acl_inheritance.ps1', + 'lib/ansible/modules/windows/win_acl_inheritance.py', + 'lib/ansible/modules/windows/win_audit_policy_system.ps1', + 'lib/ansible/modules/windows/win_audit_policy_system.py', + 'lib/ansible/modules/windows/win_audit_rule.ps1', + 'lib/ansible/modules/windows/win_audit_rule.py', + 'lib/ansible/modules/windows/win_certificate_store.ps1', + 'lib/ansible/modules/windows/win_certificate_store.py', + 'lib/ansible/modules/windows/win_chocolatey.ps1', + 'lib/ansible/modules/windows/win_chocolatey.py', + 'lib/ansible/modules/windows/win_chocolatey_config.ps1', + 'lib/ansible/modules/windows/win_chocolatey_config.py', + 'lib/ansible/modules/windows/win_chocolatey_facts.ps1', + 'lib/ansible/modules/windows/win_chocolatey_facts.py', + 'lib/ansible/modules/windows/win_chocolatey_feature.ps1', + 'lib/ansible/modules/windows/win_chocolatey_feature.py', + 'lib/ansible/modules/windows/win_chocolatey_source.ps1', + 'lib/ansible/modules/windows/win_chocolatey_source.py', + 'lib/ansible/modules/windows/win_command.ps1', + 'lib/ansible/modules/windows/win_command.py', + 'lib/ansible/modules/windows/win_copy.ps1', + 'lib/ansible/modules/windows/win_copy.py', + 'lib/ansible/modules/windows/win_credential.ps1', + 'lib/ansible/modules/windows/win_credential.py', + 'lib/ansible/modules/windows/win_defrag.ps1', + 'lib/ansible/modules/windows/win_defrag.py', + 'lib/ansible/modules/windows/win_disk_facts.ps1', + 'lib/ansible/modules/windows/win_disk_facts.py', + 'lib/ansible/modules/windows/win_disk_image.ps1', + 'lib/ansible/modules/windows/win_disk_image.py', + 'lib/ansible/modules/windows/win_dns_client.ps1', + 'lib/ansible/modules/windows/win_dns_client.py', + 'lib/ansible/modules/windows/win_dns_record.ps1', + 'lib/ansible/modules/windows/win_dns_record.py', + 'lib/ansible/modules/windows/win_domain.ps1', + 'lib/ansible/modules/windows/win_domain.py', + 'lib/ansible/modules/windows/win_domain_computer.ps1', + 'lib/ansible/modules/windows/win_domain_computer.py', + 'lib/ansible/modules/windows/win_domain_controller.ps1', + 'lib/ansible/modules/windows/win_domain_controller.py', + 'lib/ansible/modules/windows/win_domain_group.ps1', + 'lib/ansible/modules/windows/win_domain_group.py', + 'lib/ansible/modules/windows/win_domain_group_membership.ps1', + 'lib/ansible/modules/windows/win_domain_group_membership.py', + 'lib/ansible/modules/windows/win_domain_membership.ps1', + 'lib/ansible/modules/windows/win_domain_membership.py', + 'lib/ansible/modules/windows/win_domain_user.ps1', + 'lib/ansible/modules/windows/win_domain_user.py', + 'lib/ansible/modules/windows/win_dotnet_ngen.ps1', + 'lib/ansible/modules/windows/win_dotnet_ngen.py', + 'lib/ansible/modules/windows/win_dsc.ps1', + 'lib/ansible/modules/windows/win_dsc.py', + 'lib/ansible/modules/windows/win_environment.ps1', + 'lib/ansible/modules/windows/win_environment.py', + 'lib/ansible/modules/windows/win_eventlog.ps1', + 'lib/ansible/modules/windows/win_eventlog.py', + 'lib/ansible/modules/windows/win_eventlog_entry.ps1', + 'lib/ansible/modules/windows/win_eventlog_entry.py', + 'lib/ansible/modules/windows/win_feature.ps1', + 'lib/ansible/modules/windows/win_feature.py', + 'lib/ansible/modules/windows/win_file.ps1', + 'lib/ansible/modules/windows/win_file.py', + 'lib/ansible/modules/windows/win_file_version.ps1', + 'lib/ansible/modules/windows/win_file_version.py', + 'lib/ansible/modules/windows/win_find.ps1', + 'lib/ansible/modules/windows/win_find.py', + 'lib/ansible/modules/windows/win_firewall.ps1', + 'lib/ansible/modules/windows/win_firewall.py', + 'lib/ansible/modules/windows/win_firewall_rule.ps1', + 'lib/ansible/modules/windows/win_firewall_rule.py', + 'lib/ansible/modules/windows/win_format.ps1', + 'lib/ansible/modules/windows/win_format.py', + 'lib/ansible/modules/windows/win_get_url.ps1', + 'lib/ansible/modules/windows/win_get_url.py', + 'lib/ansible/modules/windows/win_group.ps1', + 'lib/ansible/modules/windows/win_group.py', + 'lib/ansible/modules/windows/win_group_membership.ps1', + 'lib/ansible/modules/windows/win_group_membership.py', + 'lib/ansible/modules/windows/win_hostname.ps1', + 'lib/ansible/modules/windows/win_hostname.py', + 'lib/ansible/modules/windows/win_hosts.ps1', + 'lib/ansible/modules/windows/win_hosts.py', + 'lib/ansible/modules/windows/win_hotfix.ps1', + 'lib/ansible/modules/windows/win_hotfix.py', + 'lib/ansible/modules/windows/win_http_proxy.ps1', + 'lib/ansible/modules/windows/win_http_proxy.py', + 'lib/ansible/modules/windows/win_iis_virtualdirectory.ps1', + 'lib/ansible/modules/windows/win_iis_virtualdirectory.py', + 'lib/ansible/modules/windows/win_iis_webapplication.ps1', + 'lib/ansible/modules/windows/win_iis_webapplication.py', + 'lib/ansible/modules/windows/win_iis_webapppool.ps1', + 'lib/ansible/modules/windows/win_iis_webapppool.py', + 'lib/ansible/modules/windows/win_iis_webbinding.ps1', + 'lib/ansible/modules/windows/win_iis_webbinding.py', + 'lib/ansible/modules/windows/win_iis_website.ps1', + 'lib/ansible/modules/windows/win_iis_website.py', + 'lib/ansible/modules/windows/win_inet_proxy.ps1', + 'lib/ansible/modules/windows/win_inet_proxy.py', + 'lib/ansible/modules/windows/win_lineinfile.ps1', + 'lib/ansible/modules/windows/win_lineinfile.py', + 'lib/ansible/modules/windows/win_mapped_drive.ps1', + 'lib/ansible/modules/windows/win_mapped_drive.py', + 'lib/ansible/modules/windows/win_msg.ps1', + 'lib/ansible/modules/windows/win_msg.py', + 'lib/ansible/modules/windows/win_nssm.ps1', + 'lib/ansible/modules/windows/win_nssm.py', + 'lib/ansible/modules/windows/win_optional_feature.ps1', + 'lib/ansible/modules/windows/win_optional_feature.py', + 'lib/ansible/modules/windows/win_owner.ps1', + 'lib/ansible/modules/windows/win_owner.py', + 'lib/ansible/modules/windows/win_package.ps1', + 'lib/ansible/modules/windows/win_package.py', + 'lib/ansible/modules/windows/win_pagefile.ps1', + 'lib/ansible/modules/windows/win_pagefile.py', + 'lib/ansible/modules/windows/win_partition.ps1', + 'lib/ansible/modules/windows/win_partition.py', + 'lib/ansible/modules/windows/win_path.ps1', + 'lib/ansible/modules/windows/win_path.py', + 'lib/ansible/modules/windows/win_pester.ps1', + 'lib/ansible/modules/windows/win_pester.py', + 'lib/ansible/modules/windows/win_ping.ps1', + 'lib/ansible/modules/windows/win_ping.py', + 'lib/ansible/modules/windows/win_power_plan.ps1', + 'lib/ansible/modules/windows/win_power_plan.py', + 'lib/ansible/modules/windows/win_product_facts.ps1', + 'lib/ansible/modules/windows/win_product_facts.py', + 'lib/ansible/modules/windows/win_psexec.ps1', + 'lib/ansible/modules/windows/win_psexec.py', + 'lib/ansible/modules/windows/win_psmodule.ps1', + 'lib/ansible/modules/windows/win_psmodule.py', + 'lib/ansible/modules/windows/win_psrepository.ps1', + 'lib/ansible/modules/windows/win_psrepository.py', + 'lib/ansible/modules/windows/win_rabbitmq_plugin.ps1', + 'lib/ansible/modules/windows/win_rabbitmq_plugin.py', + 'lib/ansible/modules/windows/win_rds_cap.ps1', + 'lib/ansible/modules/windows/win_rds_cap.py', + 'lib/ansible/modules/windows/win_rds_rap.ps1', + 'lib/ansible/modules/windows/win_rds_rap.py', + 'lib/ansible/modules/windows/win_rds_settings.ps1', + 'lib/ansible/modules/windows/win_rds_settings.py', + 'lib/ansible/modules/windows/win_reboot.py', + 'lib/ansible/modules/windows/win_reg_stat.ps1', + 'lib/ansible/modules/windows/win_reg_stat.py', + 'lib/ansible/modules/windows/win_regedit.ps1', + 'lib/ansible/modules/windows/win_regedit.py', + 'lib/ansible/modules/windows/win_region.ps1', + 'lib/ansible/modules/windows/win_region.py', + 'lib/ansible/modules/windows/win_regmerge.ps1', + 'lib/ansible/modules/windows/win_regmerge.py', + 'lib/ansible/modules/windows/win_robocopy.ps1', + 'lib/ansible/modules/windows/win_robocopy.py', + 'lib/ansible/modules/windows/win_route.ps1', + 'lib/ansible/modules/windows/win_route.py', + 'lib/ansible/modules/windows/win_say.ps1', + 'lib/ansible/modules/windows/win_say.py', + 'lib/ansible/modules/windows/win_scheduled_task.ps1', + 'lib/ansible/modules/windows/win_scheduled_task.py', + 'lib/ansible/modules/windows/win_scheduled_task_stat.ps1', + 'lib/ansible/modules/windows/win_scheduled_task_stat.py', + 'lib/ansible/modules/windows/win_security_policy.ps1', + 'lib/ansible/modules/windows/win_security_policy.py', + 'lib/ansible/modules/windows/win_service.ps1', + 'lib/ansible/modules/windows/win_service.py', + 'lib/ansible/modules/windows/win_share.ps1', + 'lib/ansible/modules/windows/win_share.py', + 'lib/ansible/modules/windows/win_shell.ps1', + 'lib/ansible/modules/windows/win_shell.py', + 'lib/ansible/modules/windows/win_shortcut.ps1', + 'lib/ansible/modules/windows/win_shortcut.py', + 'lib/ansible/modules/windows/win_snmp.ps1', + 'lib/ansible/modules/windows/win_snmp.py', + 'lib/ansible/modules/windows/win_stat.ps1', + 'lib/ansible/modules/windows/win_stat.py', + 'lib/ansible/modules/windows/win_tempfile.ps1', + 'lib/ansible/modules/windows/win_tempfile.py', + 'lib/ansible/modules/windows/win_template.py', + 'lib/ansible/modules/windows/win_timezone.ps1', + 'lib/ansible/modules/windows/win_timezone.py', + 'lib/ansible/modules/windows/win_toast.ps1', + 'lib/ansible/modules/windows/win_toast.py', + 'lib/ansible/modules/windows/win_unzip.ps1', + 'lib/ansible/modules/windows/win_unzip.py', + 'lib/ansible/modules/windows/win_updates.ps1', + 'lib/ansible/modules/windows/win_updates.py', + 'lib/ansible/modules/windows/win_uri.ps1', + 'lib/ansible/modules/windows/win_uri.py', + 'lib/ansible/modules/windows/win_user.ps1', + 'lib/ansible/modules/windows/win_user.py', + 'lib/ansible/modules/windows/win_user_profile.ps1', + 'lib/ansible/modules/windows/win_user_profile.py', + 'lib/ansible/modules/windows/win_user_right.ps1', + 'lib/ansible/modules/windows/win_user_right.py', + 'lib/ansible/modules/windows/win_wait_for.ps1', + 'lib/ansible/modules/windows/win_wait_for.py', + 'lib/ansible/modules/windows/win_wait_for_process.ps1', + 'lib/ansible/modules/windows/win_wait_for_process.py', + 'lib/ansible/modules/windows/win_wakeonlan.ps1', + 'lib/ansible/modules/windows/win_wakeonlan.py', + 'lib/ansible/modules/windows/win_webpicmd.ps1', + 'lib/ansible/modules/windows/win_webpicmd.py', + 'lib/ansible/modules/windows/win_whoami.ps1', + 'lib/ansible/modules/windows/win_whoami.py', + 'lib/ansible/modules/windows/win_xml.ps1', + 'lib/ansible/modules/windows/win_xml.py', + 'lib/ansible/plugins/doc_fragments/a10.py', + 'lib/ansible/plugins/doc_fragments/aci.py', + 'lib/ansible/plugins/doc_fragments/acme.py', + 'lib/ansible/plugins/doc_fragments/aireos.py', + 'lib/ansible/plugins/doc_fragments/alicloud.py', + 'lib/ansible/plugins/doc_fragments/aruba.py', + 'lib/ansible/plugins/doc_fragments/asa.py', + 'lib/ansible/plugins/doc_fragments/auth_basic.py', + 'lib/ansible/plugins/doc_fragments/avi.py', + 'lib/ansible/plugins/doc_fragments/aws.py', + 'lib/ansible/plugins/doc_fragments/aws_credentials.py', + 'lib/ansible/plugins/doc_fragments/aws_region.py', + 'lib/ansible/plugins/doc_fragments/azure.py', + 'lib/ansible/plugins/doc_fragments/azure_tags.py', + 'lib/ansible/plugins/doc_fragments/backup.py', + 'lib/ansible/plugins/doc_fragments/ce.py', + 'lib/ansible/plugins/doc_fragments/checkpoint_commands.py', + 'lib/ansible/plugins/doc_fragments/checkpoint_objects.py', + 'lib/ansible/plugins/doc_fragments/cloudscale.py', + 'lib/ansible/plugins/doc_fragments/cloudstack.py', + 'lib/ansible/plugins/doc_fragments/cnos.py', + 'lib/ansible/plugins/doc_fragments/constructed.py', + 'lib/ansible/plugins/doc_fragments/decrypt.py', + 'lib/ansible/plugins/doc_fragments/default_callback.py', + 'lib/ansible/plugins/doc_fragments/dellos10.py', + 'lib/ansible/plugins/doc_fragments/dellos6.py', + 'lib/ansible/plugins/doc_fragments/dellos9.py', + 'lib/ansible/plugins/doc_fragments/digital_ocean.py', + 'lib/ansible/plugins/doc_fragments/dimensiondata.py', + 'lib/ansible/plugins/doc_fragments/dimensiondata_wait.py', + 'lib/ansible/plugins/doc_fragments/docker.py', + 'lib/ansible/plugins/doc_fragments/ec2.py', + 'lib/ansible/plugins/doc_fragments/emc.py', + 'lib/ansible/plugins/doc_fragments/enos.py', + 'lib/ansible/plugins/doc_fragments/eos.py', + 'lib/ansible/plugins/doc_fragments/exoscale.py', + 'lib/ansible/plugins/doc_fragments/f5.py', + 'lib/ansible/plugins/doc_fragments/files.py', + 'lib/ansible/plugins/doc_fragments/fortios.py', + 'lib/ansible/plugins/doc_fragments/gcp.py', + 'lib/ansible/plugins/doc_fragments/hcloud.py', + 'lib/ansible/plugins/doc_fragments/hetzner.py', + 'lib/ansible/plugins/doc_fragments/hpe3par.py', + 'lib/ansible/plugins/doc_fragments/hwc.py', + 'lib/ansible/plugins/doc_fragments/infinibox.py', + 'lib/ansible/plugins/doc_fragments/influxdb.py', + 'lib/ansible/plugins/doc_fragments/ingate.py', + 'lib/ansible/plugins/doc_fragments/intersight.py', + 'lib/ansible/plugins/doc_fragments/inventory_cache.py', + 'lib/ansible/plugins/doc_fragments/ios.py', + 'lib/ansible/plugins/doc_fragments/iosxr.py', + 'lib/ansible/plugins/doc_fragments/ipa.py', + 'lib/ansible/plugins/doc_fragments/ironware.py', + 'lib/ansible/plugins/doc_fragments/junos.py', + 'lib/ansible/plugins/doc_fragments/k8s_auth_options.py', + 'lib/ansible/plugins/doc_fragments/k8s_name_options.py', + 'lib/ansible/plugins/doc_fragments/k8s_resource_options.py', + 'lib/ansible/plugins/doc_fragments/k8s_scale_options.py', + 'lib/ansible/plugins/doc_fragments/k8s_state_options.py', + 'lib/ansible/plugins/doc_fragments/keycloak.py', + 'lib/ansible/plugins/doc_fragments/kubevirt_common_options.py', + 'lib/ansible/plugins/doc_fragments/kubevirt_vm_options.py', + 'lib/ansible/plugins/doc_fragments/ldap.py', + 'lib/ansible/plugins/doc_fragments/lxca_common.py', + 'lib/ansible/plugins/doc_fragments/manageiq.py', + 'lib/ansible/plugins/doc_fragments/meraki.py', + 'lib/ansible/plugins/doc_fragments/mso.py', + 'lib/ansible/plugins/doc_fragments/mysql.py', + 'lib/ansible/plugins/doc_fragments/netapp.py', + 'lib/ansible/plugins/doc_fragments/netconf.py', + 'lib/ansible/plugins/doc_fragments/netscaler.py', + 'lib/ansible/plugins/doc_fragments/network_agnostic.py', + 'lib/ansible/plugins/doc_fragments/nios.py', + 'lib/ansible/plugins/doc_fragments/nso.py', + 'lib/ansible/plugins/doc_fragments/nxos.py', + 'lib/ansible/plugins/doc_fragments/oneview.py', + 'lib/ansible/plugins/doc_fragments/online.py', + 'lib/ansible/plugins/doc_fragments/onyx.py', + 'lib/ansible/plugins/doc_fragments/opennebula.py', + 'lib/ansible/plugins/doc_fragments/openstack.py', + 'lib/ansible/plugins/doc_fragments/openswitch.py', + 'lib/ansible/plugins/doc_fragments/oracle.py', + 'lib/ansible/plugins/doc_fragments/oracle_creatable_resource.py', + 'lib/ansible/plugins/doc_fragments/oracle_display_name_option.py', + 'lib/ansible/plugins/doc_fragments/oracle_name_option.py', + 'lib/ansible/plugins/doc_fragments/oracle_tags.py', + 'lib/ansible/plugins/doc_fragments/oracle_wait_options.py', + 'lib/ansible/plugins/doc_fragments/ovirt.py', + 'lib/ansible/plugins/doc_fragments/ovirt_facts.py', + 'lib/ansible/plugins/doc_fragments/panos.py', + 'lib/ansible/plugins/doc_fragments/postgres.py', + 'lib/ansible/plugins/doc_fragments/proxysql.py', + 'lib/ansible/plugins/doc_fragments/purestorage.py', + 'lib/ansible/plugins/doc_fragments/rabbitmq.py', + 'lib/ansible/plugins/doc_fragments/rackspace.py', + 'lib/ansible/plugins/doc_fragments/return_common.py', + 'lib/ansible/plugins/doc_fragments/scaleway.py', + 'lib/ansible/plugins/doc_fragments/shell_common.py', + 'lib/ansible/plugins/doc_fragments/shell_windows.py', + 'lib/ansible/plugins/doc_fragments/skydive.py', + 'lib/ansible/plugins/doc_fragments/sros.py', + 'lib/ansible/plugins/doc_fragments/tower.py', + 'lib/ansible/plugins/doc_fragments/ucs.py', + 'lib/ansible/plugins/doc_fragments/url.py', + 'lib/ansible/plugins/doc_fragments/utm.py', + 'lib/ansible/plugins/doc_fragments/validate.py', + 'lib/ansible/plugins/doc_fragments/vca.py', + 'lib/ansible/plugins/doc_fragments/vexata.py', + 'lib/ansible/plugins/doc_fragments/vmware.py', + 'lib/ansible/plugins/doc_fragments/vmware_rest_client.py', + 'lib/ansible/plugins/doc_fragments/vultr.py', + 'lib/ansible/plugins/doc_fragments/vyos.py', + 'lib/ansible/plugins/doc_fragments/xenserver.py', + 'lib/ansible/plugins/doc_fragments/zabbix.py', + )) + + for path in sys.argv[1:] or sys.stdin.read().splitlines(): + if path in skip: + continue + + if any(path.startswith(p) for p in prune): + continue + + with open(path, 'rb') as path_fd: + lines = path_fd.read().splitlines() + + missing = True + if not lines: + # Files are allowed to be empty of everything including boilerplate + missing = False + + for text in lines: + if text == b'__metaclass__ = type': + missing = False + break + + if not missing and path in grandfathered: + print('%s: Remove from test/sanity/code-smell/metaclass-boilerplate.py' % path) + continue + + if missing and path not in grandfathered: + print('%s: missing: __metaclass__ = type' % path) + + +if __name__ == '__main__': + main()