diff options
Diffstat (limited to 'ansible_collections/infoblox/nios_modules')
99 files changed, 4588 insertions, 423 deletions
diff --git a/ansible_collections/infoblox/nios_modules/.github/workflows/ansible-test.yml b/ansible_collections/infoblox/nios_modules/.github/workflows/ansible-test.yml index 85a80f913..0d14379b5 100644 --- a/ansible_collections/infoblox/nios_modules/.github/workflows/ansible-test.yml +++ b/ansible_collections/infoblox/nios_modules/.github/workflows/ansible-test.yml @@ -13,15 +13,15 @@ jobs: strategy: fail-fast: false matrix: - ansible-version: [stable-2.10] + ansible-version: [stable-2.14] steps: - name: Check out code uses: actions/checkout@v2 - - name: Set up Python 3.9 + - name: Set up Python 3.10 uses: actions/setup-python@v1 with: - python-version: 3.9 + python-version: '3.10' - name: Install ansible (${{ matrix.ansible-version }}) run: pip install pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible-version }}.tar.gz --disable-pip-version-check @@ -48,19 +48,21 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.8, 3.9] - ansible-version: [stable-2.9, stable-2.10, stable-2.11, stable-2.12, stable-2.13, devel] + python-version: ['3.8', '3.9', '3.10', '3.11'] + ansible-version: [stable-2.14, stable-2.15, stable-2.16, devel] exclude: - ansible-version: devel - python-version: 2.7 + python-version: '3.8' - ansible-version: devel - python-version: 3.8 - - ansible-version: stable-2.12 - python-version: 2.7 - - ansible-version: stable-2.13 - python-version: 2.7 - - ansible-version: stable-2.9 - python-version: 3.9 + python-version: '3.9' + - ansible-version: stable-2.16 + python-version: '3.8' + - ansible-version: stable-2.16 + python-version: '3.9' + - ansible-version: stable-2.15 + python-version: '3.8' + - ansible-version: stable-2.14 + python-version: '3.8' steps: - name: Set up Python ${{ matrix.python-version }} @@ -80,8 +82,8 @@ jobs: - name: Setup Unit test Pre-requisites run: | ansible-galaxy collection install .cache/collection-tarballs/*.tar.gz - git clone https://github.com/ansible/ansible.git - cp -rf ansible/test/units/compat /home/runner/.ansible/collections/ansible_collections/infoblox/nios_modules/tests/unit/ + git clone https://github.com/ansible/ansible.git -b ${{ matrix.ansible-version }} + if [ "${{ matrix.ansible-version }}" != "devel" ]; then cp -rf ansible/test/units/compat /home/runner/.ansible/collections/ansible_collections/infoblox/nios_modules/tests/unit/; fi cp -rf ansible/test/units/modules/utils.py /home/runner/.ansible/collections/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/ sed -i 's/units/ansible_collections.infoblox.nios_modules.tests.unit/' /home/runner/.ansible/collections/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/utils.py if [ -f /home/runner/.ansible/collections/ansible_collections/infoblox/nios_modules/tests/unit/requirements.txt ]; then pip install -r /home/runner/.ansible/collections/ansible_collections/infoblox/nios_modules/tests/unit/requirements.txt; fi @@ -91,7 +93,11 @@ jobs: - name: Generate coverage report run: | - if [ "${{ matrix.ansible-version }}" == "devel" ]; then pip install coverage==6.5.0; fi + if [ "${{ matrix.ansible-version }}" == "stable-2.14" ]; then + pip install coverage==6.5.0; + elif [ "${{ matrix.ansible-version }}" == "stable-2.15" ]; then + pip install coverage==6.5.0; + fi ansible-test coverage xml -v --group-by command --group-by version working-directory: /home/runner/.ansible/collections/ansible_collections/infoblox/nios_modules/ @@ -108,21 +114,31 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.8, 3.9] - ansible-version: [stable-2.9, stable-2.10, stable-2.11, stable-2.12, stable-2.13, devel] + python-version: ['3.8', '3.9', '3.10', '3.11'] + ansible-version: [stable-2.14, stable-2.15, stable-2.16, devel] exclude: - - ansible-version: stable-2.9 - python-version: 3.9 + - ansible-version: devel + python-version: '3.8' + - ansible-version: devel + python-version: '3.9' + - ansible-version: stable-2.16 + python-version: '3.8' + - ansible-version: stable-2.16 + python-version: '3.9' + - ansible-version: stable-2.15 + python-version: '3.8' + - ansible-version: stable-2.14 + python-version: '3.8' steps: - - name: Set up Python 3.9 + - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: - python-version: 3.9 + python-version: ${{ matrix.python-version }} - name: Check out code uses: actions/checkout@v2 - - name: Install ansible-base (${{ matrix.ansible }}) + - name: Install ansible-base (${{ matrix.ansible-version }}) run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible-version }}.tar.gz --disable-pip-version-check - name: Download migrated collection artifacts @@ -145,7 +161,7 @@ jobs: echo $ANSIBLE_NIOSSIM_CONTAINER ansible-test integration -v --color --retry-on-error --continue-on-error --diff --python ${{ matrix.python-version }} --docker --coverage env: - ANSIBLE_NIOSSIM_CONTAINER: quay.io/ansible/nios-test-container:2.0.0 + ANSIBLE_NIOSSIM_CONTAINER: quay.io/ansible/nios-test-container:3.0.0 working-directory: /home/runner/.ansible/collections/ansible_collections/infoblox/nios_modules/ # ansible-test support producing code coverage date @@ -170,15 +186,15 @@ jobs: strategy: fail-fast: false matrix: - ansible-version: [stable-2.9, stable-2.10, stable-2.11, stable-2.12, stable-2.13, devel] + ansible-version: [stable-2.14, stable-2.15, stable-2.16, devel] steps: - - name: Set up Python 3.9 + - name: Set up Python 3.10 uses: actions/setup-python@v1 with: # it is just required to run that once as "ansible-test sanity" in the docker image # will run on all python versions it supports. - python-version: 3.9 + python-version: '3.10' - name: Install ansible (${{ matrix.ansible-version }}) version run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible-version }}.tar.gz --disable-pip-version-check diff --git a/ansible_collections/infoblox/nios_modules/CHANGELOG.rst b/ansible_collections/infoblox/nios_modules/CHANGELOG.rst index a0094f6eb..b4941d314 100644 --- a/ansible_collections/infoblox/nios_modules/CHANGELOG.rst +++ b/ansible_collections/infoblox/nios_modules/CHANGELOG.rst @@ -3,6 +3,48 @@ Infoblox.Nios_Modules Release Notes =================================== .. contents:: Topics +v1.6.1 +====== + +Release Summary +--------------- +This release includes the updates of plug-in version 1.6.0 and the following documentation changes: +Ansible core version in the dependencies updated to 2.14 or later. + +Minor Changes +------------- +Ansible core version in the dependencies updated to 2.14 or later. + +v1.6.0 +====== + +Release Summary +--------------- +Added new modules with CRUD features to manage NIOS DTC health check monitors: DTC HTTP Monitor, +DTC ICMP Monitor, DTC PDP Monitor, DTC SIP Monitor, DTC SNMP Monitor, DTC TCP Monitor. +Added a new module with CRUD features to manage topology rulesets in NIOS. +Added a new field to define topology ruleset for the DTC Pool and DTC LBDN modules. + +Major Changes +------------- +- Upgrade Ansible version support from 2.13 to 2.16. +- Upgrade Python version support from 3.8 to 3.10. + +New Modules +----------- +- infoblox.nios_modules.nios_dtc_monitor_http - Configures the Infoblox NIOS DTC HTTP monitor +- infoblox.nios_modules.nios_dtc_monitor_icmp - Configures the Infoblox NIOS DTC ICMP monitor +- infoblox.nios_modules.nios_dtc_monitor_pdp - Configures the Infoblox NIOS DTC PDP monitor +- infoblox.nios_modules.nios_dtc_monitor_sip - Configures the Infoblox NIOS DTC SIP monitor +- infoblox.nios_modules.nios_dtc_monitor_snmp - Configures the Infoblox NIOS DTC SNMP monitor +- infoblox.nios_modules.nios_dtc_monitor_tcp - Configures the Infoblox NIOS DTC TCP monitor +- infoblox.nios_modules.nios_dtc_topology - Configures the Infoblox NIOS DTC Topology + +Bugfixes +--------- +- Fixes typo for environment variable INFOBLOX_WAPI_VERSION `#209 <https://github.com/infobloxopen/infoblox-ansible/pull/209>`_ +- Fixes environment variable max_results using INFOBLOX_MAX_RESULTS `#209 <https://github.com/infobloxopen/infoblox-ansible/pull/209>`_ +- Fixes index error for transform fields in DTC LBDN (auth_zone and Pool) and DTC POOL (servers and monitors) `#209 <https://github.com/infobloxopen/infoblox-ansible/pull/209>`_ v1.5.0 ====== diff --git a/ansible_collections/infoblox/nios_modules/FILES.json b/ansible_collections/infoblox/nios_modules/FILES.json index da11d0c28..8be0f6d76 100644 --- a/ansible_collections/infoblox/nios_modules/FILES.json +++ b/ansible_collections/infoblox/nios_modules/FILES.json @@ -8,644 +8,980 @@ "format": 1 }, { - "name": ".gitignore", + "name": "requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9fddc672b3f598f9cff55877a587144bf7edabc6be4be3d6da6cae4a2b825cd6", + "chksum_sha256": "0f9123956754ff0976fa0591a59141a2811f69431f822ba725adb3452f324be2", "format": 1 }, { - "name": "playbooks", + "name": "plugins", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "playbooks/restart_services.yml", + "name": "plugins/doc_fragments", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/doc_fragments/nios.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5dcc9476be118206220829486758c5465cd784a95b66550a414f9004907bc3c1", + "chksum_sha256": "471a4e3afd2e72d7c742e8433ef1ea8a97181164da0e2f8f97e692db95d0056f", "format": 1 }, { - "name": "playbooks/delete_mx_record.yaml", + "name": "plugins/lookup", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/lookup/nios_next_network.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "da47165c799c1e87329ccf9461c4681b4245f097b55d3d62dba411edd3e25da5", + "chksum_sha256": "e9a8c057f7e902a411772d411ad98436d265c86f73073af61443b6e2c1b7e7e9", "format": 1 }, { - "name": "playbooks/create_dtc_server.yml", + "name": "plugins/lookup/nios_lookup.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e4a00c5e95b6476e354b5564c874eff4e38b9fd92d71dc921677b689213b9199", + "chksum_sha256": "b8982cb06294b51bbfc8aa6754077c3f12e1613a8986f0519eb75d895645174b", "format": 1 }, { - "name": "playbooks/create_mx_record.yaml", + "name": "plugins/lookup/nios_next_ip.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b9ae5787aaf298aeaa8b5d7f768402f0f50065699938a3eb5eaacbd7bce1ce8d", + "chksum_sha256": "a0a81954f6f2d819f76de82c6a5ba98c544f901153b20c804078dc4b97bb2481", "format": 1 }, { - "name": "playbooks/update_member.yml", + "name": "plugins/README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "981c8fdd1b8edc49952e1ed4d9f490368c2d9b151597d12ab31216c214a1b37d", + "chksum_sha256": "c82ee692702ec1dd604cdbc38ff252114e5204e1b0627045a66c9451e7a918ac", "format": 1 }, { - "name": "playbooks/delete_zone.yml", + "name": "plugins/inventory", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/inventory/nios_inventory.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61e5e563e04d918cc76bac07f0ce374bf3796ecb63ea75257d976376c4157c20", + "chksum_sha256": "8c05e0161380bd212badf22d3004260424d538b7f7674f9eb52d0b2b0d80bcae", "format": 1 }, { - "name": "playbooks/create_cname_record.yaml", + "name": "plugins/module_utils", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/api.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "10e363c89e5d82b68d4f63ed529282de833b7951b12b9a97f5469d580b24b576", + "chksum_sha256": "3d6a3aa313ec031161fa1958881a4dedaf4ae27db487745a88416b644321e81e", "format": 1 }, { - "name": "playbooks/create_a_record.yaml", + "name": "plugins/module_utils/network.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ace1f52c338c1f9032444ed75f51ef2e8ded43e30fd6af74461b27266900e6bf", + "chksum_sha256": "dced8c65f333a3a101224574c358fa55aa40f2e0e21cfc5f49b64f4bd1ab12d8", "format": 1 }, { - "name": "playbooks/create_dns_view.yml", + "name": "plugins/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/modules/nios_member.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cd1b9dc35122024065dacfff26cc6a690c677d44f4a047d2a661618d71b409a6", + "chksum_sha256": "9ca1ce2bdc2a12c0f57a399bb3012e43df9e212942b38f00110308a75098beb0", "format": 1 }, { - "name": "playbooks/delete_network_view.yml", + "name": "plugins/modules/nios_dtc_pool.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9fbcaff43e867ffc8a9d8cb8e6a3dc92d1af8c92fb96cbd887655e8cadb0971", + "chksum_sha256": "c326f6fe602a816650bc9c083c445e5f2509410b76f1bcd26e8849e0eab80b53", "format": 1 }, { - "name": "playbooks/update_a_record.yml", + "name": "plugins/modules/nios_restartservices.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d74da9f596d41369eb8859bb6a628662b573f695d3326a587c5683d4a2e90b3", + "chksum_sha256": "b6a7fdd4f93c28c5e5fde29129b99477636bc9a1688a7198cb08f51d9495294a", "format": 1 }, { - "name": "playbooks/delete_txt_record.yaml", + "name": "plugins/modules/nios_dns_view.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f72cdc6c618cd7e75a1a1063d5cba782af5fcb07c226e91c2535ac8ff113150f", + "chksum_sha256": "e762c774e13ddcd2e12d7df728bcf8c6c572eaff7cf4819f2aa822b078db7b7d", "format": 1 }, { - "name": "playbooks/create_zone.yml", + "name": "plugins/modules/nios_zone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1d94121423e1184461a55897c7427e7cfd1a242fbfd4709e99c61d16025556d7", + "chksum_sha256": "4f3a1763e347e5fdaf55d7ae7ed1c1d2bf937b645b25023f5317869fac56107c", "format": 1 }, { - "name": "playbooks/create_dtc_pool.yml", + "name": "plugins/modules/nios_network.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d39c51ed9d38d8a1fa9f6c9968203ef1633dce612ff0fcd46706fa6c3969796", + "chksum_sha256": "5cf3a56ca04fd706bdb4360dd73aa7548aac9fbd89cd88ed087a1e2725a598b1", "format": 1 }, { - "name": "playbooks/create_txt_record.yaml", + "name": "plugins/modules/nios_txt_record.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "111d1ce384d339af78c3e8daae32e7deda1b9cb62f08023733ea8e693586dc0d", + "chksum_sha256": "3d0fc4f3292e3f844ea8084ed812feaed3b2798086c70f7f922aec9daf8ebe12", "format": 1 }, { - "name": "playbooks/create_network_view.yml", + "name": "plugins/modules/nios_dtc_lbdn.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fc8ebffa421f96e493531d3436d6fa73fe741a55746e669e8c89a1ff9ff030d", + "chksum_sha256": "b7708bea6bbc0f5193805d948253285f7a7366323b6fac800251a8025b188be4", "format": 1 }, { - "name": "playbooks/delete_dnsview.yml", + "name": "plugins/modules/nios_naptr_record.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37deda100ff17068ff552ba5e1e74b9fad1394ebe2db62e7f2adad294c1affc6", + "chksum_sha256": "01d12e212a8ce8fcb17357f1520d1014b570123433ec72e019e01f70ec16be30", "format": 1 }, { - "name": "playbooks/create_network.yml", + "name": "plugins/modules/nios_ptr_record.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4786f86ec3ed73faf52441b153f81eaf5020907be7cce195cec049e6abbef51e", + "chksum_sha256": "a5cdd84504c3183b7b83c592e662cb0950fae8b0efa29836366dcd1445f9caf6", "format": 1 }, { - "name": "playbooks/delete_cname_record.yaml", + "name": "plugins/modules/nios_host_record.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c04b11f344bfd49f03995665d553e5a008975067010554fd9f1f1a161b7796ae", + "chksum_sha256": "e6784e231f0b78340516b8ec5d45f6e100cc82e80b5ead94cdae6c36bfda063c", "format": 1 }, { - "name": "playbooks/delete_network.yml", + "name": "plugins/modules/nios_network_view.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4577274aa1bba6a8450e1c534ee8c97cbab9b47b2339f6f2f7cce4f79124ad36", + "chksum_sha256": "60249f22776ba43cbc456c7a305fea55f5c5825a80aa384472d71cd8b58b4924", "format": 1 }, { - "name": "playbooks/create_dtc_lbdn.yml", + "name": "plugins/modules/nios_srv_record.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "17840632d509d7e87e5af56b654c7df3cc6ebd92f25d4f86a4c46cbce6ff7edd", + "chksum_sha256": "a6b2e32c51c799e1fd07902b0f8ab2d635f6ca0a3955afa2465d757567777085", "format": 1 }, { - "name": "meta", + "name": "plugins/modules/nios_dtc_monitor_tcp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1f07b0e8618b6ec0cda270ed5b2b39abaaff17d86ca8107abe1010c0eda5d72a", + "format": 1 + }, + { + "name": "plugins/modules/nios_nsgroup.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f75be0f86aa6fe535cbcee064ba4f77db1a74c912fae0cb79d3c9238e14d7014", + "format": 1 + }, + { + "name": "plugins/modules/nios_dtc_server.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "303a986df5365fc00a16a9f9734a166dc699e26308cfcf23877b0caa62d73147", + "format": 1 + }, + { + "name": "plugins/modules/nios_range.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fccc677ae1c7d3c19068f975029261526d878008c1b6aea0ccc09800e8fe056f", + "format": 1 + }, + { + "name": "plugins/modules/nios_mx_record.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5f5d6514627e524fd811c90496bda16ce21b51b9950204f6383a277fb5d6f9d9", + "format": 1 + }, + { + "name": "plugins/modules/nios_cname_record.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "51a6a31429dc733a258a02a193e82f6a9d09f124d67d13a784f9170b202d6612", + "format": 1 + }, + { + "name": "plugins/modules/nios_a_record.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bed6b416e079909fc3032dd1cce57052307b65560d98fa76ed3a7239a5475859", + "format": 1 + }, + { + "name": "plugins/modules/nios_dtc_monitor_snmp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9b9063586ef09d6a415303f1a4fce217c45e852edbdfe61adf1b3984ee68587c", + "format": 1 + }, + { + "name": "plugins/modules/nios_dtc_monitor_http.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "838746c90c4b9440ee98c2600777498f9a1f2c8c7bbf4663e6cebd016080d4d1", + "format": 1 + }, + { + "name": "plugins/modules/nios_aaaa_record.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f407011606760e7c55518f89d5c740157dd55446c4d2e1bd8aa12cc1f400fc2a", + "format": 1 + }, + { + "name": "plugins/modules/nios_fixed_address.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6d16da939f573934520c585c6fcf38c7bb8de40b5f43ffca6dd0563c2fa75935", + "format": 1 + }, + { + "name": "plugins/modules/nios_dtc_monitor_icmp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8ec49490a6ef089e2cd1f14295c8ad2da0bc7b779d43bb76224d0099e0f5b2e3", + "format": 1 + }, + { + "name": "plugins/modules/nios_dtc_monitor_pdp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9a1c167ff589bc3f97150d68a1071985e295653a69eb937e99e2ac7808ff822c", + "format": 1 + }, + { + "name": "plugins/modules/nios_dtc_topology.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9e2d9fd577de8372c401a4a9c93594143ac405a4e72a97806da9876769f34fa2", + "format": 1 + }, + { + "name": "plugins/modules/nios_dtc_monitor_sip.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "86a4af4e083ade3981c26d17df1b650c3d7be78fc6d3305d6f27687556eb1252", + "format": 1 + }, + { + "name": "tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "meta/runtime.yml", + "name": "tests/unit", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/compat", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/compat/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "df18179bb2f5447a56ac92261a911649b96821c0b2c08eea62d5cc6b0195203f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "CHANGELOG.rst", + "name": "tests/unit/compat/mock.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d29674d87960d19a9e4075e82d7f400864ee295d5031d54d26fb366796a6727f", + "chksum_sha256": "e18448d2582e03b3c782d3f5039907f364b852021f8033951f5abbdcd5e07d7a", "format": 1 }, { - "name": "plugins", + "name": "tests/unit/requirements.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "71a5d70d48710b9ea3a87823c42788c094da1bfce9c628a3ebc9ea1d112cfb26", + "format": 1 + }, + { + "name": "tests/unit/plugins", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/doc_fragments", + "name": "tests/unit/plugins/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/plugins/module_utils", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/doc_fragments/nios.py", + "name": "tests/unit/plugins/module_utils/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/plugins/module_utils/test_api.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "903fa282de42ef3acf4e443e860f27823cf5dd0b6b9508fba4e7bfb3299a92a5", + "chksum_sha256": "4b25cb5a43f130c17410011d365177909f61ac49d61110c1c3e2ca7845ab61cf", "format": 1 }, { - "name": "plugins/modules", + "name": "tests/unit/plugins/modules", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/modules/nios_nsgroup.py", + "name": "tests/unit/plugins/modules/test_nios_dtc_monitor_icmp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f75be0f86aa6fe535cbcee064ba4f77db1a74c912fae0cb79d3c9238e14d7014", + "chksum_sha256": "63359c5d15ef6f2bf9da42a467e26372ec9bd7f49199159b72cfdbfeb9b89d14", "format": 1 }, { - "name": "plugins/modules/nios_dtc_pool.py", + "name": "tests/unit/plugins/modules/test_nios_fixed_address.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fa804740462a21ff9d5211cd4c612d02e3a116c0b394fc94f7d3ad03c68e7307", + "chksum_sha256": "e6dc2a63173e9af0fa27a50f1ac4b524718eef99d0ae062fb7b8de1fe0a970da", "format": 1 }, { - "name": "plugins/modules/nios_aaaa_record.py", + "name": "tests/unit/plugins/modules/test_nios_cname_record.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f407011606760e7c55518f89d5c740157dd55446c4d2e1bd8aa12cc1f400fc2a", + "chksum_sha256": "1fcf59bcf710ba6ca6118b171f83027556fa1f84c87509308040aa7d4d91fa61", "format": 1 }, { - "name": "plugins/modules/nios_network.py", + "name": "tests/unit/plugins/modules/test_nios_mx_record.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5cf3a56ca04fd706bdb4360dd73aa7548aac9fbd89cd88ed087a1e2725a598b1", + "chksum_sha256": "a29819f2deabca2ce255fe49bbbf53adaee1ab79ca3a62f635c5f41bca13601a", "format": 1 }, { - "name": "plugins/modules/nios_fixed_address.py", + "name": "tests/unit/plugins/modules/test_nios_dtc_topology.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6d16da939f573934520c585c6fcf38c7bb8de40b5f43ffca6dd0563c2fa75935", + "chksum_sha256": "8f63fbe8bdecceedb138fd2153c66187f83ae52e5974a86a75e99cae71e508de", "format": 1 }, { - "name": "plugins/modules/nios_host_record.py", + "name": "tests/unit/plugins/modules/test_nios_member.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6784e231f0b78340516b8ec5d45f6e100cc82e80b5ead94cdae6c36bfda063c", + "chksum_sha256": "bd0b8081e628d0112da7ba69398de00d7cdd9afa6ba1bd34ccbd9ae513b11285", "format": 1 }, { - "name": "plugins/modules/nios_naptr_record.py", + "name": "tests/unit/plugins/modules/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "01d12e212a8ce8fcb17357f1520d1014b570123433ec72e019e01f70ec16be30", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/nios_zone.py", + "name": "tests/unit/plugins/modules/test_nios_dtc_monitor_http.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4f3a1763e347e5fdaf55d7ae7ed1c1d2bf937b645b25023f5317869fac56107c", + "chksum_sha256": "a34e5a4740673b0f346eb389f9baee52b9809548d353942d9f186f8c924badd6", "format": 1 }, { - "name": "plugins/modules/nios_a_record.py", + "name": "tests/unit/plugins/modules/test_nios_dtc_monitor_snmp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bed6b416e079909fc3032dd1cce57052307b65560d98fa76ed3a7239a5475859", + "chksum_sha256": "f23e2f9674ef4c446733714c6a930858d357834abd9e29d2d4e7d5bfa0286883", "format": 1 }, { - "name": "plugins/modules/nios_restartservices.py", + "name": "tests/unit/plugins/modules/test_nios_aaaa_record.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6a7fdd4f93c28c5e5fde29129b99477636bc9a1688a7198cb08f51d9495294a", + "chksum_sha256": "13bfe2bfbcd53a97e43700ed49e435c9c8ced416515d419ca47a9d2add987f11", "format": 1 }, { - "name": "plugins/modules/nios_srv_record.py", + "name": "tests/unit/plugins/modules/test_nios_dns_view.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a6b2e32c51c799e1fd07902b0f8ab2d635f6ca0a3955afa2465d757567777085", + "chksum_sha256": "c78250f9de28ba9c8466a1be4fb091b7443ce80d8e9502ed8a4723d7d2203d03", "format": 1 }, { - "name": "plugins/modules/nios_cname_record.py", + "name": "tests/unit/plugins/modules/test_nios_dtc_monitor_pdp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51a6a31429dc733a258a02a193e82f6a9d09f124d67d13a784f9170b202d6612", + "chksum_sha256": "ea1b8a4d660f4925d1f7a649e4628fcf1d8e24a9355ff8c0d72ef2c2c4721cbc", "format": 1 }, { - "name": "plugins/modules/nios_range.py", + "name": "tests/unit/plugins/modules/test_nios_dtc_monitor_sip.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fccc677ae1c7d3c19068f975029261526d878008c1b6aea0ccc09800e8fe056f", + "chksum_sha256": "900fcf7b0a9d51d67707bd3b7a39303628bb753e81945729a01b9b275cb85670", "format": 1 }, { - "name": "plugins/modules/nios_mx_record.py", + "name": "tests/unit/plugins/modules/test_nios_host_record.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5f5d6514627e524fd811c90496bda16ce21b51b9950204f6383a277fb5d6f9d9", + "chksum_sha256": "492ce23b97212c7bc8972f87b1e1cf89d88a2d8cd1c406770cdbf43326951b41", "format": 1 }, { - "name": "plugins/modules/nios_dns_view.py", + "name": "tests/unit/plugins/modules/test_nios_network.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e762c774e13ddcd2e12d7df728bcf8c6c572eaff7cf4819f2aa822b078db7b7d", + "chksum_sha256": "94bdde6ba5224d532a22d37b26f1b2398c42d4fd315a040a32fc61f9b91ff1ec", "format": 1 }, { - "name": "plugins/modules/nios_ptr_record.py", + "name": "tests/unit/plugins/modules/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a5cdd84504c3183b7b83c592e662cb0950fae8b0efa29836366dcd1445f9caf6", + "chksum_sha256": "466129bc1fceb1d1d8284f672519df508df44a9bcd30eed253f6864ee61444ed", "format": 1 }, { - "name": "plugins/modules/nios_dtc_lbdn.py", + "name": "tests/unit/plugins/modules/test_nios_a_record.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bda843817cab3fe770570e10c12478f76e8a65c35d57ef6e5cc2c95e08ce983d", + "chksum_sha256": "f9c0e95cfd8184d5f60c55ec850ddf5ffa89f95e33f726d55a5531d31968d6f0", "format": 1 }, { - "name": "plugins/modules/nios_dtc_server.py", + "name": "tests/unit/plugins/modules/test_nios_nsgroup.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "303a986df5365fc00a16a9f9734a166dc699e26308cfcf23877b0caa62d73147", + "chksum_sha256": "6a233f369462e3771b56cadc9707c4302dead28956676a356fdde6f3a9383c66", "format": 1 }, { - "name": "plugins/modules/nios_txt_record.py", + "name": "tests/unit/plugins/modules/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/modules/fixtures/nios_result.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d0fc4f3292e3f844ea8084ed812feaed3b2798086c70f7f922aec9daf8ebe12", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/nios_network_view.py", + "name": "tests/unit/plugins/modules/test_nios_dtc_monitor_tcp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "60249f22776ba43cbc456c7a305fea55f5c5825a80aa384472d71cd8b58b4924", + "chksum_sha256": "298c616c51c23d7ff3f17c6e269d515e642535a28bcb11f16e1dde9dd5784fb8", "format": 1 }, { - "name": "plugins/modules/nios_member.py", + "name": "tests/unit/plugins/modules/test_nios_network_view.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ca1ce2bdc2a12c0f57a399bb3012e43df9e212942b38f00110308a75098beb0", + "chksum_sha256": "2a8f5fbcf7bd6acf368dc9ab9e9f5592fa20d525bd49478af73ee9be73926a9a", "format": 1 }, { - "name": "plugins/inventory", + "name": "tests/unit/plugins/modules/test_nios_naptr_record.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6a98e092ced1500f15f7c91daf141e45be17eeb94aa82d72bffae9a0a52ecfdf", + "format": 1 + }, + { + "name": "tests/unit/plugins/modules/test_nios_zone.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cbb7b98c199a0f7bb1c50e2e21e2a3353aa37c7ff9a676cf9194e4e659510710", + "format": 1 + }, + { + "name": "tests/unit/plugins/modules/test_nios_module.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c733e6ebea7febb7eab14e589c489aed9f5e6d6e188d85556d6d4d1b754f5b67", + "format": 1 + }, + { + "name": "tests/unit/plugins/modules/test_nios_srv_record.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c19caa64fe39dab9d475c2e5e316c71d41cca5cc14942970e9a5fc0872bf2d70", + "format": 1 + }, + { + "name": "tests/unit/plugins/modules/test_nios_ptr_record.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e5388b813fc6c70b53545d05ec18792ed258e966f3e712ee78de0fd29f90dde1", + "format": 1 + }, + { + "name": "tests/unit/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/requirements.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "86aeeb2e7fe4349baadbd5d97a192ec45d42a7fec0053f3ac938e2a5a647dda7", + "format": 1 + }, + { + "name": "tests/integration", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/inventory/nios_inventory.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8c05e0161380bd212badf22d3004260424d538b7f7674f9eb52d0b2b0d80bcae", + "name": "tests/integration/targets", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/lookup", + "name": "tests/integration/targets/nios_naptr_record", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/lookup/nios_next_ip.py", + "name": "tests/integration/targets/nios_naptr_record/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_naptr_record/tasks/nios_naptr_record_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a0a81954f6f2d819f76de82c6a5ba98c544f901153b20c804078dc4b97bb2481", + "chksum_sha256": "943fccfaaab7641fff4e8d2f809830fd3d266504e5a093ba19423fb79c3ac363", "format": 1 }, { - "name": "plugins/lookup/nios_next_network.py", + "name": "tests/integration/targets/nios_naptr_record/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e9a8c057f7e902a411772d411ad98436d265c86f73073af61443b6e2c1b7e7e9", + "chksum_sha256": "a2b37cd08d0d55807c58f0b7f480c0db21d743b0b4e7aa724fb2f779d5a310b8", "format": 1 }, { - "name": "plugins/lookup/nios_lookup.py", + "name": "tests/integration/targets/nios_naptr_record/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_naptr_record/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b8982cb06294b51bbfc8aa6754077c3f12e1613a8986f0519eb75d895645174b", + "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "plugins/README.md", + "name": "tests/integration/targets/nios_naptr_record/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_naptr_record/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c82ee692702ec1dd604cdbc38ff252114e5204e1b0627045a66c9451e7a918ac", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "plugins/module_utils", + "name": "tests/integration/targets/nios_naptr_record/aliases", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_cname_record", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network.py", + "name": "tests/integration/targets/nios_cname_record/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_cname_record/tasks/nios_cname_record_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dced8c65f333a3a101224574c358fa55aa40f2e0e21cfc5f49b64f4bd1ab12d8", + "chksum_sha256": "6e5e3f2f0b5ed874e855b9122802b8706faa49150d1d8d4fe2e9d46a535f754e", "format": 1 }, { - "name": "plugins/module_utils/api.py", + "name": "tests/integration/targets/nios_cname_record/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9cc01c357851760f1318acf9c642b8c82456647b2c629dc9e30927d5e055adae", + "chksum_sha256": "caaf32183efdfa76ed46f018a355c75535d68755b2fd010cdac29dc1aea53e36", "format": 1 }, { - "name": "COPYING", + "name": "tests/integration/targets/nios_cname_record/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_cname_record/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "CONTRIBUTING.md", + "name": "tests/integration/targets/nios_cname_record/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_cname_record/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd88c8b2920fd2d659c1ee76d5709c61a3d68e4af1c21a156670a5f543dc26ef", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": ".github", + "name": "tests/integration/targets/nios_cname_record/aliases", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_network_view", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": ".github/workflows", + "name": "tests/integration/targets/nios_network_view/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": ".github/workflows/ansible-test.yml", + "name": "tests/integration/targets/nios_network_view/tasks/nios_network_view_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "89fcf3805eeaeb7e48a5bf7d3cef938eaca0c13f6253cdb80aa934cc1974fb61", + "chksum_sha256": "0988d75d8debe3ad04f656d77c22cff648214fff669323be2ae1d1707dfd06f1", "format": 1 }, { - "name": "requirements.txt", + "name": "tests/integration/targets/nios_network_view/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55fb25c4faa774de799493c0f9ca57dae363e19d91e1358131ec9a0cc326f1e9", + "chksum_sha256": "f98e791d53284656c4ae67e3e82eb5d207b0e288bb8707f62e026fb4f5f4e387", "format": 1 }, { - "name": "changelogs", + "name": "tests/integration/targets/nios_network_view/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "changelogs/config.yaml", + "name": "tests/integration/targets/nios_network_view/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44e348d60d00b2812b8cb8aba66308db03d0c83b228611759a2630240b29dfdf", + "chksum_sha256": "9b2c007ef16bd19c23982f22d955c1cebe881731f8e06615c9a8fb2985604cc4", "format": 1 }, { - "name": "changelogs/changelog.yaml", + "name": "tests/integration/targets/nios_network_view/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_network_view/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7c336d1c9c8197b07b112ba6635583417b0d93058997dc5f17a2f0b917af989", + "chksum_sha256": "3cb79c3d80cffc120afea8cc796848a327b790dbe8b6702bd51c1e2a5d82d906", "format": 1 }, { - "name": "changelogs/.plugin-cache.yaml", + "name": "tests/integration/targets/nios_network_view/aliases", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84c8c3cd94c934accbabc1927709f486d1d3d7a554ab5f0c793b6b54aac2b2f2", + "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests", + "name": "tests/integration/targets/nios_dtc_topology", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration", + "name": "tests/integration/targets/nios_dtc_topology/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets", + "name": "tests/integration/targets/nios_dtc_topology/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f338ac1f477abf97127e4a400c2471ba0fe52fb62efdc0c1b3fbdd68dc957c90", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_topology/tasks/nios_dtc_topology_idempotence.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "630af6494eb9f413d31818063fca5634a1fcdfa89255a260c538a784a02df9b1", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_topology/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_a_record", + "name": "tests/integration/targets/nios_dtc_topology/meta/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_topology/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_a_record/tasks", + "name": "tests/integration/targets/nios_dtc_topology/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_topology/aliases", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_monitor_icmp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_a_record/tasks/main.yml", + "name": "tests/integration/targets/nios_dtc_monitor_icmp/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_monitor_icmp/tasks/nios_dtc_monitor_icmp_idempotence.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d15dab6a8d8e6b40ac5147025cb8a316ebff5b5822d2305a7fa768ba209f894", + "chksum_sha256": "75e354f31bdaff7358b02c14c99874bc525f5abfd69ce83e590abf9b3aaea833", "format": 1 }, { - "name": "tests/integration/targets/nios_a_record/tasks/nios_a_record_idempotence.yml", + "name": "tests/integration/targets/nios_dtc_monitor_icmp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ce6edea9daaa81eaeabe5c9565437f59744da7eefe0834b66a35fdba9408a3c5", + "chksum_sha256": "0f9555e5be6f96ad78230e70a0bed1519fc6cae58d54cec3e168587a05117264", "format": 1 }, { - "name": "tests/integration/targets/nios_a_record/meta", + "name": "tests/integration/targets/nios_dtc_monitor_icmp/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_a_record/meta/main.yaml", + "name": "tests/integration/targets/nios_dtc_monitor_icmp/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "tests/integration/targets/nios_a_record/defaults", + "name": "tests/integration/targets/nios_dtc_monitor_icmp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_a_record/defaults/main.yaml", + "name": "tests/integration/targets/nios_dtc_monitor_icmp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nios_a_record/aliases", + "name": "tests/integration/targets/nios_dtc_monitor_icmp/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/integration/targets/nios_aaaa_record", + "name": "tests/integration/targets/nios_dtc_monitor_http", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_aaaa_record/tasks", + "name": "tests/integration/targets/nios_dtc_monitor_http/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_aaaa_record/tasks/main.yml", + "name": "tests/integration/targets/nios_dtc_monitor_http/tasks/nios_dtc_monitor_http_idempotence.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51f2c8c8d2bf554c82d3ef5a8158377adadd87b71b6de8bc09a360e9ff1f5524", + "chksum_sha256": "4422b8f25479d8a88062ccee8f4975c70ca60ccac3b76fbac58ffab3d1081a4b", "format": 1 }, { - "name": "tests/integration/targets/nios_aaaa_record/tasks/nios_aaaa_record_idempotence.yml", + "name": "tests/integration/targets/nios_dtc_monitor_http/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b7293e35f42a9951679d1eb30c0a73c5b20e8563373e81e77ef4ef149145abe", + "chksum_sha256": "dff97af332844cd2b94fa8f89e48eeb624f25db407a03579f90e060165644a38", "format": 1 }, { - "name": "tests/integration/targets/nios_aaaa_record/meta", + "name": "tests/integration/targets/nios_dtc_monitor_http/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_aaaa_record/meta/main.yaml", + "name": "tests/integration/targets/nios_dtc_monitor_http/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "tests/integration/targets/nios_aaaa_record/defaults", + "name": "tests/integration/targets/nios_dtc_monitor_http/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_aaaa_record/defaults/main.yaml", + "name": "tests/integration/targets/nios_dtc_monitor_http/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nios_aaaa_record/aliases", + "name": "tests/integration/targets/nios_dtc_monitor_http/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", @@ -666,17 +1002,17 @@ "format": 1 }, { - "name": "tests/integration/targets/nios_zone/tasks/main.yml", + "name": "tests/integration/targets/nios_zone/tasks/nios_zone_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "321785ddd2789cc1265b9502c5463bd9c4979267ae0be21558ea5eec4eceed72", + "chksum_sha256": "22e69c13af0623593d880c24015f6b8990c8d3d8f03bc887d10dca8972b76d0c", "format": 1 }, { - "name": "tests/integration/targets/nios_zone/tasks/nios_zone_idempotence.yml", + "name": "tests/integration/targets/nios_zone/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "22e69c13af0623593d880c24015f6b8990c8d3d8f03bc887d10dca8972b76d0c", + "chksum_sha256": "13e3f87625444e179c44037c3c1a889d382e669ad033c8475c981e1f6fc9a0aa", "format": 1 }, { @@ -715,280 +1051,315 @@ "format": 1 }, { - "name": "tests/integration/targets/prepare_nios_tests", + "name": "tests/integration/targets/nios_dtc_monitor_pdp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_nios_tests/tasks", + "name": "tests/integration/targets/nios_dtc_monitor_pdp/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_nios_tests/tasks/main.yml", + "name": "tests/integration/targets/nios_dtc_monitor_pdp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f6b41fc52044ee283bfaa36506ad6e8e63e40abb080d4d955b57682c0c5a895", + "chksum_sha256": "7c97236947c79a5f21ea16ea8e24473f2749999fd6877ba03b838fed9c433476", "format": 1 }, { - "name": "tests/integration/targets/prepare_nios_tests/tasks/prepare_nios_tests_idempotence.yml", + "name": "tests/integration/targets/nios_dtc_monitor_pdp/tasks/nios_dtc_monitor_pdp_idempotence.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f7ef612d02c82d058380d8a5db2a7f593236034fc83da2b78165186ebb7a095", + "chksum_sha256": "b79e5a2324f7353286a33b36e8e67e619df336e7205ba4b55818dd23f0472885", "format": 1 }, { - "name": "tests/integration/targets/nios_host_record", + "name": "tests/integration/targets/nios_dtc_monitor_pdp/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_host_record/tasks", + "name": "tests/integration/targets/nios_dtc_monitor_pdp/meta/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_monitor_pdp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_host_record/tasks/main.yml", + "name": "tests/integration/targets/nios_dtc_monitor_pdp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6fddc4c90cd988fc0533529f29845b018b09d228e0079c37d7a938399d10480", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nios_host_record/tasks/nios_host_record_idempotence.yml", + "name": "tests/integration/targets/nios_dtc_monitor_pdp/aliases", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c6efd391e887105cc040b3dfc42ed5e8ce4ce3bafaba8ccd2377292a27de8c5", + "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/integration/targets/nios_host_record/meta", + "name": "tests/integration/targets/nios_ptr_record", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_host_record/meta/main.yaml", + "name": "tests/integration/targets/nios_ptr_record/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_ptr_record/tasks/nios_ptr_record_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b2c007ef16bd19c23982f22d955c1cebe881731f8e06615c9a8fb2985604cc4", + "chksum_sha256": "d963d7efe7113cc92ab45fc5bca5faafd1aa713346558b43004aedd684725019", "format": 1 }, { - "name": "tests/integration/targets/nios_host_record/defaults", + "name": "tests/integration/targets/nios_ptr_record/tasks/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8402910a2f2b0fdbe683662018408669c511e21867916645330ef2f61ccb7da6", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_ptr_record/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_host_record/defaults/main.yaml", + "name": "tests/integration/targets/nios_ptr_record/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3cb79c3d80cffc120afea8cc796848a327b790dbe8b6702bd51c1e2a5d82d906", + "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "tests/integration/targets/nios_host_record/aliases", + "name": "tests/integration/targets/nios_ptr_record/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_ptr_record/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_ptr_record/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/integration/targets/nios_naptr_record", + "name": "tests/integration/targets/nios_aaaa_record", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_naptr_record/tasks", + "name": "tests/integration/targets/nios_aaaa_record/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_naptr_record/tasks/main.yml", + "name": "tests/integration/targets/nios_aaaa_record/tasks/nios_aaaa_record_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8c01642191a24501d81753c5cb8af0ab2b6962482903560d2547119686232a1", + "chksum_sha256": "9b7293e35f42a9951679d1eb30c0a73c5b20e8563373e81e77ef4ef149145abe", "format": 1 }, { - "name": "tests/integration/targets/nios_naptr_record/tasks/nios_naptr_record_idempotence.yml", + "name": "tests/integration/targets/nios_aaaa_record/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "943fccfaaab7641fff4e8d2f809830fd3d266504e5a093ba19423fb79c3ac363", + "chksum_sha256": "682b92aef3f4182a57b461d9b4613332434cec42e981275720377672c7bf30b8", "format": 1 }, { - "name": "tests/integration/targets/nios_naptr_record/meta", + "name": "tests/integration/targets/nios_aaaa_record/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_naptr_record/meta/main.yaml", + "name": "tests/integration/targets/nios_aaaa_record/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "tests/integration/targets/nios_naptr_record/defaults", + "name": "tests/integration/targets/nios_aaaa_record/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_naptr_record/defaults/main.yaml", + "name": "tests/integration/targets/nios_aaaa_record/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nios_naptr_record/aliases", + "name": "tests/integration/targets/nios_aaaa_record/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/integration/targets/nios_txt_record", + "name": "tests/integration/targets/nios_dtc_monitor_sip", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_txt_record/tasks", + "name": "tests/integration/targets/nios_dtc_monitor_sip/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_txt_record/tasks/main.yml", + "name": "tests/integration/targets/nios_dtc_monitor_sip/tasks/nios_dtc_monitor_sip_idempotence.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6143fed0b778a7af1a4f8f7d7c6da63e07dcb162dd794b861b2582c1c48a8854", + "chksum_sha256": "a193d294cc1fde3fe4535b19e6c6e235225cb4c1c9f755883783da312f631b11", "format": 1 }, { - "name": "tests/integration/targets/nios_txt_record/tasks/nios_txt_record_idempotence.yml", + "name": "tests/integration/targets/nios_dtc_monitor_sip/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c357b3236a490bbb05bf10f0bd9965882d4ffff7d48f0d8df059335c4c55227c", + "chksum_sha256": "06343798781cc2d4b490840988a9611db90711efb243bcb93b173b54b2ba5d44", "format": 1 }, { - "name": "tests/integration/targets/nios_txt_record/meta", + "name": "tests/integration/targets/nios_dtc_monitor_sip/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_txt_record/meta/main.yaml", + "name": "tests/integration/targets/nios_dtc_monitor_sip/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b2c007ef16bd19c23982f22d955c1cebe881731f8e06615c9a8fb2985604cc4", + "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "tests/integration/targets/nios_txt_record/defaults", + "name": "tests/integration/targets/nios_dtc_monitor_sip/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_txt_record/defaults/main.yaml", + "name": "tests/integration/targets/nios_dtc_monitor_sip/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3cb79c3d80cffc120afea8cc796848a327b790dbe8b6702bd51c1e2a5d82d906", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nios_txt_record/aliases", + "name": "tests/integration/targets/nios_dtc_monitor_sip/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/integration/targets/nios_srv_record", + "name": "tests/integration/targets/nios_network", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_srv_record/tasks", + "name": "tests/integration/targets/nios_network/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_srv_record/tasks/nios_srv_record_idempotence.yml", + "name": "tests/integration/targets/nios_network/tasks/nios_network_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "983b84f88a05dc722a0ef22e4a2deea656cf9425f86a40d10abe1c3d91cfe51d", + "chksum_sha256": "0e8b1f0c838de0cea2151ce497b6d631b0aefda15731e2eb6bc0daefdab3774f", "format": 1 }, { - "name": "tests/integration/targets/nios_srv_record/tasks/main.yml", + "name": "tests/integration/targets/nios_network/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d9588a0ae488ec618c82e823db100269d87978fc7336ed1d41ac282f40603483", + "chksum_sha256": "4392003ca54e208405b313ce1b880a768d7f7cc58e757c6209feda6892fc0d1b", "format": 1 }, { - "name": "tests/integration/targets/nios_srv_record/meta", + "name": "tests/integration/targets/nios_network/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_srv_record/meta/main.yaml", + "name": "tests/integration/targets/nios_network/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", + "chksum_sha256": "9b2c007ef16bd19c23982f22d955c1cebe881731f8e06615c9a8fb2985604cc4", "format": 1 }, { - "name": "tests/integration/targets/nios_srv_record/defaults", + "name": "tests/integration/targets/nios_network/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_srv_record/defaults/main.yaml", + "name": "tests/integration/targets/nios_network/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nios_srv_record/aliases", + "name": "tests/integration/targets/nios_network/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", @@ -1009,17 +1380,17 @@ "format": 1 }, { - "name": "tests/integration/targets/nios_mx_record/tasks/main.yml", + "name": "tests/integration/targets/nios_mx_record/tasks/nios_mx_record_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3a2d3fb34b2974e819a3401ab9bc26576b2be2f1b2e3f3c428cb78039bc21f98", + "chksum_sha256": "8082362994c85378fd9c5b26cad32f583dc83d84d5f83527fb905c401946e65a", "format": 1 }, { - "name": "tests/integration/targets/nios_mx_record/tasks/nios_mx_record_idempotence.yml", + "name": "tests/integration/targets/nios_mx_record/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8082362994c85378fd9c5b26cad32f583dc83d84d5f83527fb905c401946e65a", + "chksum_sha256": "a40bc234e700790f623eb59110310d94ee4df7a18064f47203b0d54169d7cd32", "format": 1 }, { @@ -1058,556 +1429,822 @@ "format": 1 }, { - "name": "tests/integration/targets/nios_network_view", + "name": "tests/integration/targets/prepare_nios_tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_network_view/tasks", + "name": "tests/integration/targets/prepare_nios_tests/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_network_view/tasks/main.yml", + "name": "tests/integration/targets/prepare_nios_tests/tasks/prepare_nios_tests_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e3e46fde3dbeb3ae613631df0384134902707bd5511c6dbb4f04ceca4abc714", + "chksum_sha256": "9f7ef612d02c82d058380d8a5db2a7f593236034fc83da2b78165186ebb7a095", "format": 1 }, { - "name": "tests/integration/targets/nios_network_view/tasks/nios_network_view_idempotence.yml", + "name": "tests/integration/targets/prepare_nios_tests/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0988d75d8debe3ad04f656d77c22cff648214fff669323be2ae1d1707dfd06f1", + "chksum_sha256": "082f283eaf4938585c1ce3a50a3ad0e7d75b713dc90a1ca57b0e2edacdadd5b7", "format": 1 }, { - "name": "tests/integration/targets/nios_network_view/meta", + "name": "tests/integration/targets/nios_dns_view", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_network_view/meta/main.yaml", + "name": "tests/integration/targets/nios_dns_view/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dns_view/tasks/nios_dns_view_idempotence.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "35a60985b368995a2347da83a8cbb30217cf2d5a3b71204e40f626ef13d228bb", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dns_view/tasks/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "da1081ebdad890fde4e32bc65619661b2efb1864f0da2051cbcee5b99e658480", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dns_view/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dns_view/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9b2c007ef16bd19c23982f22d955c1cebe881731f8e06615c9a8fb2985604cc4", "format": 1 }, { - "name": "tests/integration/targets/nios_network_view/defaults", + "name": "tests/integration/targets/nios_dns_view/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_network_view/defaults/main.yaml", + "name": "tests/integration/targets/nios_dns_view/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "3cb79c3d80cffc120afea8cc796848a327b790dbe8b6702bd51c1e2a5d82d906", "format": 1 }, { - "name": "tests/integration/targets/nios_network_view/aliases", + "name": "tests/integration/targets/nios_dns_view/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/integration/targets/nios_ptr_record", + "name": "tests/integration/targets/nios_host_record", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_ptr_record/tasks", + "name": "tests/integration/targets/nios_host_record/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_ptr_record/tasks/main.yml", + "name": "tests/integration/targets/nios_host_record/tasks/nios_host_record_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "964ab01e8de80401c3d083286c2fa5e85c13d8a80a9209433c44c6b8adb5f05e", + "chksum_sha256": "2c6efd391e887105cc040b3dfc42ed5e8ce4ce3bafaba8ccd2377292a27de8c5", "format": 1 }, { - "name": "tests/integration/targets/nios_ptr_record/tasks/nios_ptr_record_idempotence.yml", + "name": "tests/integration/targets/nios_host_record/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d963d7efe7113cc92ab45fc5bca5faafd1aa713346558b43004aedd684725019", + "chksum_sha256": "ec463c7662d9684574444631e13ee88831c505cb924e24fb440e29bda9264316", "format": 1 }, { - "name": "tests/integration/targets/nios_ptr_record/meta", + "name": "tests/integration/targets/nios_host_record/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_ptr_record/meta/main.yaml", + "name": "tests/integration/targets/nios_host_record/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", + "chksum_sha256": "9b2c007ef16bd19c23982f22d955c1cebe881731f8e06615c9a8fb2985604cc4", "format": 1 }, { - "name": "tests/integration/targets/nios_ptr_record/defaults", + "name": "tests/integration/targets/nios_host_record/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_ptr_record/defaults/main.yaml", + "name": "tests/integration/targets/nios_host_record/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "3cb79c3d80cffc120afea8cc796848a327b790dbe8b6702bd51c1e2a5d82d906", "format": 1 }, { - "name": "tests/integration/targets/nios_ptr_record/aliases", + "name": "tests/integration/targets/nios_host_record/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/integration/targets/nios_cname_record", + "name": "tests/integration/targets/nios_txt_record", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_cname_record/tasks", + "name": "tests/integration/targets/nios_txt_record/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_cname_record/tasks/main.yml", + "name": "tests/integration/targets/nios_txt_record/tasks/nios_txt_record_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "787a53293d68001b9cccea1154d4c6b4c6277aa52df187ef6b7ecb4e519e5a65", + "chksum_sha256": "c357b3236a490bbb05bf10f0bd9965882d4ffff7d48f0d8df059335c4c55227c", "format": 1 }, { - "name": "tests/integration/targets/nios_cname_record/tasks/nios_cname_record_idempotence.yml", + "name": "tests/integration/targets/nios_txt_record/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6e5e3f2f0b5ed874e855b9122802b8706faa49150d1d8d4fe2e9d46a535f754e", + "chksum_sha256": "baecc65456a65d80d5f2d71431add855540f254fd6073c523f48be294ae002a5", "format": 1 }, { - "name": "tests/integration/targets/nios_cname_record/meta", + "name": "tests/integration/targets/nios_txt_record/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_cname_record/meta/main.yaml", + "name": "tests/integration/targets/nios_txt_record/meta/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9b2c007ef16bd19c23982f22d955c1cebe881731f8e06615c9a8fb2985604cc4", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_txt_record/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_txt_record/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3cb79c3d80cffc120afea8cc796848a327b790dbe8b6702bd51c1e2a5d82d906", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_txt_record/aliases", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_monitor_snmp", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_monitor_snmp/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_monitor_snmp/tasks/nios_dtc_monitor_snmp_idempotence.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d520a52f7802e492c0b89f423bb2abeaecd8cbc720713185e435f0a19628a5db", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_monitor_snmp/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e56a3b54efbc352d4b17d58518880adba0676e6a8c4f3b04842eb1a934093cd1", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_monitor_snmp/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_dtc_monitor_snmp/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "tests/integration/targets/nios_cname_record/defaults", + "name": "tests/integration/targets/nios_dtc_monitor_snmp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_cname_record/defaults/main.yaml", + "name": "tests/integration/targets/nios_dtc_monitor_snmp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nios_cname_record/aliases", + "name": "tests/integration/targets/nios_dtc_monitor_snmp/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/integration/targets/nios_network", + "name": "tests/integration/targets/nios_a_record", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_network/tasks", + "name": "tests/integration/targets/nios_a_record/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_network/tasks/main.yml", + "name": "tests/integration/targets/nios_a_record/tasks/nios_a_record_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "11b1faac4c49c5acbace378328c5fea92014f667d732dbe2ef2a2583f826dc82", + "chksum_sha256": "ce6edea9daaa81eaeabe5c9565437f59744da7eefe0834b66a35fdba9408a3c5", "format": 1 }, { - "name": "tests/integration/targets/nios_network/tasks/nios_network_idempotence.yml", + "name": "tests/integration/targets/nios_a_record/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0e8b1f0c838de0cea2151ce497b6d631b0aefda15731e2eb6bc0daefdab3774f", + "chksum_sha256": "1d64f5c5a2d96317f5b549e4dbe215358fda4778b1d40576528821d4023fe093", "format": 1 }, { - "name": "tests/integration/targets/nios_network/meta", + "name": "tests/integration/targets/nios_a_record/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_network/meta/main.yaml", + "name": "tests/integration/targets/nios_a_record/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b2c007ef16bd19c23982f22d955c1cebe881731f8e06615c9a8fb2985604cc4", + "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "tests/integration/targets/nios_network/defaults", + "name": "tests/integration/targets/nios_a_record/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_network/defaults/main.yaml", + "name": "tests/integration/targets/nios_a_record/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nios_network/aliases", + "name": "tests/integration/targets/nios_a_record/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/integration/targets/nios_dns_view", + "name": "tests/integration/targets/nios_dtc_monitor_tcp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_dns_view/tasks", + "name": "tests/integration/targets/nios_dtc_monitor_tcp/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_dns_view/tasks/main.yml", + "name": "tests/integration/targets/nios_dtc_monitor_tcp/tasks/nios_dtc_monitor_tcp_idempotence.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba5bfe201c74edd65e1df617cad400bd2634d1bf5c9b6b66a22108e73566ebd2", + "chksum_sha256": "094adbb9c0ecc088f354fd01a1e48f8ca92223d5862d460ad22a67c004e0de8e", "format": 1 }, { - "name": "tests/integration/targets/nios_dns_view/tasks/nios_dns_view_idempotence.yml", + "name": "tests/integration/targets/nios_dtc_monitor_tcp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "35a60985b368995a2347da83a8cbb30217cf2d5a3b71204e40f626ef13d228bb", + "chksum_sha256": "526d24063fcc02884ac706b25239f52601da39d96a6d4379039bcb5a9f1bba45", "format": 1 }, { - "name": "tests/integration/targets/nios_dns_view/meta", + "name": "tests/integration/targets/nios_dtc_monitor_tcp/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_dns_view/meta/main.yaml", + "name": "tests/integration/targets/nios_dtc_monitor_tcp/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b2c007ef16bd19c23982f22d955c1cebe881731f8e06615c9a8fb2985604cc4", + "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "tests/integration/targets/nios_dns_view/defaults", + "name": "tests/integration/targets/nios_dtc_monitor_tcp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nios_dns_view/defaults/main.yaml", + "name": "tests/integration/targets/nios_dtc_monitor_tcp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3cb79c3d80cffc120afea8cc796848a327b790dbe8b6702bd51c1e2a5d82d906", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nios_dns_view/aliases", + "name": "tests/integration/targets/nios_dtc_monitor_tcp/aliases", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/requirements.txt", + "name": "tests/integration/targets/nios_srv_record", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_srv_record/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nios_srv_record/tasks/nios_srv_record_idempotence.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f1d4cbfb694f6fe029ac69b53766a557c3c91f82efe8cc4540c483bda5d4d329", + "chksum_sha256": "983b84f88a05dc722a0ef22e4a2deea656cf9425f86a40d10abe1c3d91cfe51d", "format": 1 }, { - "name": "tests/unit", + "name": "tests/integration/targets/nios_srv_record/tasks/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "031a9571c3d16567fd2c00f672edddb55aa4da8c9b243e8f1fde685d0b8ccbaf", + "format": 1 + }, + { + "name": "tests/integration/targets/nios_srv_record/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/__init__.py", + "name": "tests/integration/targets/nios_srv_record/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "f6641fa60f8ba09c7ce762c2ef3514012995ac5302b4864a10e6aa0f1c83d512", "format": 1 }, { - "name": "tests/unit/compat", + "name": "tests/integration/targets/nios_srv_record/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/compat/__init__.py", + "name": "tests/integration/targets/nios_srv_record/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/unit/compat/mock.py", + "name": "tests/integration/targets/nios_srv_record/aliases", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e18448d2582e03b3c782d3f5039907f364b852021f8033951f5abbdcd5e07d7a", + "chksum_sha256": "b2aba930fc2918934f7b9bdff17f9f99ab65167a6e9e41a0c9f45fffb31eaef0", "format": 1 }, { - "name": "tests/unit/plugins", + "name": "meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/__init__.py", + "name": "meta/runtime.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "4833e2900333e7a035d7e0f63f6d55777c2697476ee0a2f9bfcf250167c7571d", "format": 1 }, { - "name": "tests/unit/plugins/modules", + "name": "playbooks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/modules/__init__.py", + "name": "playbooks/delete_dnsview.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "37deda100ff17068ff552ba5e1e74b9fad1394ebe2db62e7f2adad294c1affc6", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_fixed_address.py", + "name": "playbooks/create_cname_record.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6dc2a63173e9af0fa27a50f1ac4b524718eef99d0ae062fb7b8de1fe0a970da", + "chksum_sha256": "10e363c89e5d82b68d4f63ed529282de833b7951b12b9a97f5469d580b24b576", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_zone.py", + "name": "playbooks/create_dtc_topology.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cbb7b98c199a0f7bb1c50e2e21e2a3353aa37c7ff9a676cf9194e4e659510710", + "chksum_sha256": "84673a45caa8fc0a7575a8ab1b1f74196a457d02e8811bf528d35dcf4f04acfb", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_dns_view.py", + "name": "playbooks/create_dtc_monitor_icmp.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c78250f9de28ba9c8466a1be4fb091b7443ce80d8e9502ed8a4723d7d2203d03", + "chksum_sha256": "2de930eac0102acf2a58626ae523e5033f7993af32c41a96d9b80e865b48cf69", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_aaaa_record.py", + "name": "playbooks/delete_mx_record.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13bfe2bfbcd53a97e43700ed49e435c9c8ced416515d419ca47a9d2add987f11", + "chksum_sha256": "047f7a39fd55e3df466de35b5b9b86fcfc8da9b711c69d6fbc3a17698f0c3aeb", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_host_record.py", + "name": "playbooks/delete_network_view.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "492ce23b97212c7bc8972f87b1e1cf89d88a2d8cd1c406770cdbf43326951b41", + "chksum_sha256": "c9fbcaff43e867ffc8a9d8cb8e6a3dc92d1af8c92fb96cbd887655e8cadb0971", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_nsgroup.py", + "name": "playbooks/delete_dtc_monitor_tcp.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a233f369462e3771b56cadc9707c4302dead28956676a356fdde6f3a9383c66", + "chksum_sha256": "fa39a7eaef132ef35ccc0102afe44e227b7bb31eca796ca5d6f11bf3f9fb0a5b", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_module.py", + "name": "playbooks/create_dtc_monitor_snmp.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c733e6ebea7febb7eab14e589c489aed9f5e6d6e188d85556d6d4d1b754f5b67", + "chksum_sha256": "09a1c221770123531ab8c08f62f80afa1677888973f674a544f394aa62e5ca06", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_ptr_record.py", + "name": "playbooks/delete_dtc_monitor_pdp.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e5388b813fc6c70b53545d05ec18792ed258e966f3e712ee78de0fd29f90dde1", + "chksum_sha256": "2cce3c1941ebf195e77a80c1fea118254304fa8e7000ffbb4528a04757e84585", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_member.py", + "name": "playbooks/create_txt_record.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd0b8081e628d0112da7ba69398de00d7cdd9afa6ba1bd34ccbd9ae513b11285", + "chksum_sha256": "111d1ce384d339af78c3e8daae32e7deda1b9cb62f08023733ea8e693586dc0d", "format": 1 }, { - "name": "tests/unit/plugins/modules/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "playbooks/delete_dtc_monitor_sip.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0c6748bd209a1ebde84151e71ccec5ebc766a54d036eb069c424f281a9228ee0", "format": 1 }, { - "name": "tests/unit/plugins/modules/fixtures/nios_result.txt", + "name": "playbooks/delete_txt_record.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "fec8d0ee3f5ace16a834fd80934e938fb27287d438c6ac5eddebb00e81588856", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_a_record.py", + "name": "playbooks/create_network.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f9c0e95cfd8184d5f60c55ec850ddf5ffa89f95e33f726d55a5531d31968d6f0", + "chksum_sha256": "4786f86ec3ed73faf52441b153f81eaf5020907be7cce195cec049e6abbef51e", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_cname_record.py", + "name": "playbooks/create_dtc_monitor_tcp.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1fcf59bcf710ba6ca6118b171f83027556fa1f84c87509308040aa7d4d91fa61", + "chksum_sha256": "f1cc12ea276313a463c68a14d8b2dad02e9a4b549254ea73c7afaabfa39f5d92", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_network.py", + "name": "playbooks/create_dtc_monitor_sip.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "94bdde6ba5224d532a22d37b26f1b2398c42d4fd315a040a32fc61f9b91ff1ec", + "chksum_sha256": "85b1fd5726df38d94c0e88aa4ce58cf08913c59f89e1d3edf51f3888b056271a", "format": 1 }, { - "name": "tests/unit/plugins/modules/utils.py", + "name": "playbooks/create_dtc_pool.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ebeccd641cf5de2b25ae1bf4e153492bb499c641c5b5465ca25168f08b1a1ac", + "chksum_sha256": "5d39c51ed9d38d8a1fa9f6c9968203ef1633dce612ff0fcd46706fa6c3969796", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_naptr_record.py", + "name": "playbooks/delete_zone.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a98e092ced1500f15f7c91daf141e45be17eeb94aa82d72bffae9a0a52ecfdf", + "chksum_sha256": "61e5e563e04d918cc76bac07f0ce374bf3796ecb63ea75257d976376c4157c20", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_network_view.py", + "name": "playbooks/delete_network.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a8f5fbcf7bd6acf368dc9ab9e9f5592fa20d525bd49478af73ee9be73926a9a", + "chksum_sha256": "4577274aa1bba6a8450e1c534ee8c97cbab9b47b2339f6f2f7cce4f79124ad36", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_srv_record.py", + "name": "playbooks/create_dtc_monitor_pdp.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c19caa64fe39dab9d475c2e5e316c71d41cca5cc14942970e9a5fc0872bf2d70", + "chksum_sha256": "be85c09ae35ccab3099bc0e3c7e940d38e43e6fedebff2769ca43a0de214c45d", "format": 1 }, { - "name": "tests/unit/plugins/modules/test_nios_mx_record.py", + "name": "playbooks/create_zone.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a29819f2deabca2ce255fe49bbbf53adaee1ab79ca3a62f635c5f41bca13601a", + "chksum_sha256": "1d94121423e1184461a55897c7427e7cfd1a242fbfd4709e99c61d16025556d7", "format": 1 }, { - "name": "tests/unit/plugins/module_utils", + "name": "playbooks/delete_dtc_monitor_http.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "03a609cd016d0cdc167cfef9de74ae4590497e1de5f31a01b59607aaf5aa80ff", + "format": 1 + }, + { + "name": "playbooks/update_member.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0ee756fcaa7cd8f4b54396fef514328a9954d5d59805af465e1ae88589ba3bed", + "format": 1 + }, + { + "name": "playbooks/update_a_record.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2d74da9f596d41369eb8859bb6a628662b573f695d3326a587c5683d4a2e90b3", + "format": 1 + }, + { + "name": "playbooks/create_dtc_server.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e4a00c5e95b6476e354b5564c874eff4e38b9fd92d71dc921677b689213b9199", + "format": 1 + }, + { + "name": "playbooks/restart_services.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3be7039d547201555dfc17a566a8bfd0b7eb1f9b118e1c49c229b182b23e7198", + "format": 1 + }, + { + "name": "playbooks/create_dtc_monitor_http.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a37a978e80617e5994b3aaea7a556294fd42970598d85e6d9acca3f064194037", + "format": 1 + }, + { + "name": "playbooks/delete_cname_record.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0b4fa059b33b49fd97e78d36bd78bf369e93b1e99ab92e76c3238140b0f76ef0", + "format": 1 + }, + { + "name": "playbooks/delete_dtc_monitor_snmp.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8acc0786c5f9c40d818ac53632f1f8b5941c8859ee36b716b7cad46a68effabd", + "format": 1 + }, + { + "name": "playbooks/delete_dtc_topology.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "26696d8cc23efdd46f8ff512b3049f94e4f8731208334556ad296c18ade28e37", + "format": 1 + }, + { + "name": "playbooks/create_a_record.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ace1f52c338c1f9032444ed75f51ef2e8ded43e30fd6af74461b27266900e6bf", + "format": 1 + }, + { + "name": "playbooks/create_mx_record.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b9ae5787aaf298aeaa8b5d7f768402f0f50065699938a3eb5eaacbd7bce1ce8d", + "format": 1 + }, + { + "name": "playbooks/delete_dtc_monitor_icmp.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9d073f047c1239d7ef17ee4d82a1dd84cb8ac32913651280840224f93ebd48fa", + "format": 1 + }, + { + "name": "playbooks/create_network_view.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7fc8ebffa421f96e493531d3436d6fa73fe741a55746e669e8c89a1ff9ff030d", + "format": 1 + }, + { + "name": "playbooks/create_dns_view.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cd1b9dc35122024065dacfff26cc6a690c677d44f4a047d2a661618d71b409a6", + "format": 1 + }, + { + "name": "playbooks/create_dtc_lbdn.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "17840632d509d7e87e5af56b654c7df3cc6ebd92f25d4f86a4c46cbce6ff7edd", + "format": 1 + }, + { + "name": "changelogs", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/module_utils/__init__.py", + "name": "changelogs/config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "44e348d60d00b2812b8cb8aba66308db03d0c83b228611759a2630240b29dfdf", "format": 1 }, { - "name": "tests/unit/plugins/module_utils/test_api.py", + "name": "changelogs/.plugin-cache.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7cda9fe496a0fb8877eabd424069649e9bb64b8965bbf7ba875fe1aae557e34", + "chksum_sha256": "0a52be0705f26d756f9c668addf00cba5a928062b5860802abb6c1560cf2e380", "format": 1 }, { - "name": "tests/unit/requirements.txt", + "name": "changelogs/changelog.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1b6aded0bacf264f0dcee417363adcb09fac038946bf434ae1c8a5f56a964a8", + "chksum_sha256": "b86c9717603cd5ed6adac82b87c7de5f0587544977ac07ae8714b64fbcd0e6c0", "format": 1 }, { "name": "README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "705ac13797ece5dc9a316090cf8322b35152c1cf9da2df47373323b39bd72230", + "chksum_sha256": "15104f6d67b302eb09de6c37c16f7d988d08af5aeb939002a9a2dbab70df1912", + "format": 1 + }, + { + "name": "COPYING", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "format": 1 + }, + { + "name": ".gitignore", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9fddc672b3f598f9cff55877a587144bf7edabc6be4be3d6da6cae4a2b825cd6", + "format": 1 + }, + { + "name": "CONTRIBUTING.md", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fd88c8b2920fd2d659c1ee76d5709c61a3d68e4af1c21a156670a5f543dc26ef", + "format": 1 + }, + { + "name": ".github", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": ".github/workflows", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": ".github/workflows/ansible-test.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "55ea8d968c6c487363f1db3fce4ab78b1a5f6863115ca82bfdb7428809291fa8", + "format": 1 + }, + { + "name": "CHANGELOG.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "aa69c9f35d722a1a81389a6f41121f0802410f97920fff7a982c9c3e4ca3e444", "format": 1 } ], diff --git a/ansible_collections/infoblox/nios_modules/MANIFEST.json b/ansible_collections/infoblox/nios_modules/MANIFEST.json index f6934942f..156bb5f2d 100644 --- a/ansible_collections/infoblox/nios_modules/MANIFEST.json +++ b/ansible_collections/infoblox/nios_modules/MANIFEST.json @@ -2,12 +2,11 @@ "collection_info": { "namespace": "infoblox", "name": "nios_modules", - "version": "1.5.0", + "version": "1.6.1", "authors": [ - "Sailesh Giri (sgiri@infoblox.com)", - "Vaishnavi TR (vtr@infoblox.com)", - "Anagha KH (akh@infoblox.com)", - "Shankar Ganesh (sganesh@infoblox.com)" + "Hemanth Kumar (hkumar3@infoblox.com)", + "Jeenitkumar Khatri (jkhatri@infoblox.com)", + "Jaykumar Chhatbar (jchhatbar@infoblox.com)" ], "readme": "README.md", "tags": [ @@ -31,7 +30,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "114285e178980c8e439aa1ec414e5cf44dbb8d4b40bdef7ef1dd9a780d312d12", + "chksum_sha256": "fa4ee7cb5ef7609fae22ad1c77f1f199b76fd5cec3ab52f1b0915d92fa262586", "format": 1 }, "format": 1 diff --git a/ansible_collections/infoblox/nios_modules/README.md b/ansible_collections/infoblox/nios_modules/README.md index a5b72d0b8..b7665d504 100644 --- a/ansible_collections/infoblox/nios_modules/README.md +++ b/ansible_collections/infoblox/nios_modules/README.md @@ -29,10 +29,24 @@ Modules - `nios_dtc_lbdn` – Configure Infoblox NIOS DTC LBDN records +- `nios_dtc_monitor_http` – Configure Infoblox NIOS DTC HTTP monitors + +- `nios_dtc_monitor_icmp` – Configure Infoblox NIOS DTC ICMP monitors + +- `nios_dtc_monitor_pdp` – Configure Infoblox NIOS DTC PDP monitors + +- `nios_dtc_monitor_sip` – Configure Infoblox NIOS DTC SIP monitors + +- `nios_dtc_monitor_snmp` – Configure Infoblox NIOS DTC SNMP monitors + +- `nios_dtc_monitor_tcp` – Configure Infoblox NIOS DTC TCP monitors + - `nios_dtc_pool` – Configure Infoblox NIOS DTC pools - `nios_dtc_server` – Configure Infoblox NIOS DTC server records +- `nios_dtc_topology` – Configure Infoblox NIOS DTC topologies + - `nios_fixed_address` – Configure Infoblox NIOS DHCP Fixed Address - `nios_host_record` – Configure Infoblox NIOS host records @@ -79,11 +93,15 @@ Installation Dependencies ------------ -- Python version 3.8 or later +- Python version 3.10 or later + +- Ansible Core version 2.14 or later -- Ansible version 2.12 or later +- NIOS 8.6.x and 9.0.x -- NIOS 8.5.x or later +- Infoblox WAPI version 2.9 or later + +Note: For modules of DTC objects to function properly, Infoblox recommends WAPI version 2.12 or later. Prerequisites ------------- @@ -166,7 +184,7 @@ Dates TBD Current release --------------- -1.5.0 on 11 May 2023 +1.6.1 on 19 Dec 2023 Versioning ========= diff --git a/ansible_collections/infoblox/nios_modules/changelogs/.plugin-cache.yaml b/ansible_collections/infoblox/nios_modules/changelogs/.plugin-cache.yaml index f7b275058..3ed1f4b5b 100644 --- a/ansible_collections/infoblox/nios_modules/changelogs/.plugin-cache.yaml +++ b/ansible_collections/infoblox/nios_modules/changelogs/.plugin-cache.yaml @@ -59,6 +59,41 @@ plugins: name: nios_dtc_server namespace: '' version_added: 1.1.0 + nios_dtc_monitor_http: + description: Configure Infoblox NIOS DTC HTTP monitor + name: nios_dtc_monitor_http + namespace: '' + version_added: 1.6.0 + nios_dtc_monitor_tcp: + description: Configure Infoblox NIOS DTC TCP monitor + name: nios_dtc_monitor_tcp + namespace: '' + version_added: 1.6.0 + nios_dtc_monitor_icmp: + description: Configure Infoblox NIOS DTC ICMP monitor + name: nios_dtc_monitor_icmp + namespace: '' + version_added: 1.6.0 + nios_dtc_monitor_pdp: + description: Configure Infoblox NIOS DTC PDP monitor + name: nios_dtc_monitor_pdp + namespace: '' + version_added: 1.6.0 + nios_dtc_monitor_sip: + description: Configure Infoblox NIOS DTC SIP monitor + name: nios_dtc_monitor_sip + namespace: '' + version_added: 1.6.0 + nios_dtc_monitor_snmp: + description: Configure Infoblox NIOS DTC SNMP monitor + name: nios_dtc_monitor_snmp + namespace: '' + version_added: 1.6.0 + nios_dtc_topology: + description: Configure Infoblox NIOS DTC Topology + name: nios_dtc_topology + namespace: '' + version_added: 1.6.0 nios_fixed_address: description: Configure Infoblox NIOS DHCP Fixed Address name: nios_fixed_address @@ -128,4 +163,4 @@ plugins: shell: {} strategy: {} vars: {} -version: 1.5.0 +version: 1.6.1 diff --git a/ansible_collections/infoblox/nios_modules/changelogs/changelog.yaml b/ansible_collections/infoblox/nios_modules/changelogs/changelog.yaml index ac91562ef..ec67aff0d 100644 --- a/ansible_collections/infoblox/nios_modules/changelogs/changelog.yaml +++ b/ansible_collections/infoblox/nios_modules/changelogs/changelog.yaml @@ -217,3 +217,46 @@ releases: Updates default WAPI version to `2.9`, Added Grid Master Candidate feature' release_date: '2023-05-11' + 1.6.0: + changes: + major_changes: + - Upgrade Ansible version support from 2.13 to 2.16. + - Upgrade Python version support from 3.8 to 3.10. + release_summary: 'Added new modules with CRUD features to manage NIOS DTC health check monitors: DTC HTTP Monitor, + DTC ICMP Monitor, DTC PDP Monitor, DTC SIP Monitor, DTC SNMP Monitor, DTC TCP Monitor. + Added a new module with CRUD features to manage topology rulesets in NIOS. + Added a new field to define topology ruleset for the DTC Pool and DTC LBDN modules.' + bugfixes: + - Fixes typo for environment variable INFOBLOX_WAPI_VERSION `#209 <https://github.com/infobloxopen/infoblox-ansible/pull/209>`_ + - Fixes environment variable max_results using INFOBLOX_MAX_RESULTS `#209 <https://github.com/infobloxopen/infoblox-ansible/pull/209>`_ + - Fixes index error for transform fields in DTC LBDN (auth_zone and Pool) and DTC POOL (servers and monitors) `#209 <https://github.com/infobloxopen/infoblox-ansible/pull/209>`_ + modules: + - description: Configures the Infoblox NIOS DTC HTTP monitor. + name: nios_dtc_monitor_http + namespace: '' + - description: Configures the Infoblox NIOS DTC ICMP monitor + name: nios_dtc_monitor_icmp + namespace: '' + - description: Configures the Infoblox NIOS DTC PDP monitor + name: nios_dtc_monitor_pdp + namespace: '' + - description: Configures the Infoblox NIOS DTC SIP monitor + name: nios_dtc_monitor_sip + namespace: '' + - description: Configures the Infoblox NIOS DTC SNMP monitor + name: nios_dtc_monitor_snmp + namespace: '' + - description: Configures the Infoblox NIOS DTC TCP monitor + name: nios_dtc_monitor_tcp + namespace: '' + - description: Configures the Infoblox NIOS DTC Topology + name: nios_dtc_topology + namespace: '' + release_date: '2023-12-14' + 1.6.1: + changes: + minor_changes: + - Ansible core version in the dependencies updated to 2.14 or later. + release_summary: 'This release includes the updates of plug-in version 1.6.0 and the following documentation changes: + Ansible core version in the dependencies updated to 2.14 or later.' + release_date: '2023-12-19' diff --git a/ansible_collections/infoblox/nios_modules/meta/runtime.yml b/ansible_collections/infoblox/nios_modules/meta/runtime.yml index 2ee3c9fa9..be99ccf4b 100644 --- a/ansible_collections/infoblox/nios_modules/meta/runtime.yml +++ b/ansible_collections/infoblox/nios_modules/meta/runtime.yml @@ -1,2 +1,2 @@ --- -requires_ansible: '>=2.9.10' +requires_ansible: '>=2.14.0' diff --git a/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_http.yaml b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_http.yaml new file mode 100644 index 000000000..2d2afc3ee --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_http.yaml @@ -0,0 +1,19 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Create Nios DTC HTTPS monitor Test + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + port: 443 + secure: true + comment: Created with Ansible + state: present + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_icmp.yaml b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_icmp.yaml new file mode 100644 index 000000000..f792cfa64 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_icmp.yaml @@ -0,0 +1,17 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Create Nios DTC ICMP monitor Test + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + comment: Created with Ansible + state: present + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_pdp.yaml b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_pdp.yaml new file mode 100644 index 000000000..ea2bc9b9b --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_pdp.yaml @@ -0,0 +1,17 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Create Nios DTC PDP monitor Test + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + comment: Created with Ansible + state: present + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_sip.yaml b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_sip.yaml new file mode 100644 index 000000000..4caa32ea2 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_sip.yaml @@ -0,0 +1,17 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Create Nios DTC SIP monitor Test + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + comment: Created with Ansible + state: present + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_snmp.yaml b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_snmp.yaml new file mode 100644 index 000000000..b8b796ee2 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_snmp.yaml @@ -0,0 +1,17 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Create Nios DTC SNMP monitor Test + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + comment: Created with Ansible + state: present + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_tcp.yaml b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_tcp.yaml new file mode 100644 index 000000000..95a824a1b --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_monitor_tcp.yaml @@ -0,0 +1,18 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Create Nios DTC TCP monitor Test + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + comment: Created with Ansible + state: present + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_topology.yml b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_topology.yml new file mode 100644 index 000000000..01c50bd49 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/create_dtc_topology.yml @@ -0,0 +1,31 @@ +--- +- hosts: localhost + vars: + nios_provider: + host: 10.196.205.10 + username: cloudadmin + password: infoblox + wapi_version: "2.12" + + connection: local + tasks: + - name: Create a DTC Topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + rules: + - dest_type: POOL + destination_link: web_pool1 + return_type: REGULAR + sources: + - source_op: IS + source_type: EA0 + source_value: DC1 + - dest_type: POOL + destination_link: web_pool2 + return_type: REGULAR + sources: + - source_op: IS + source_type: EA0 + source_value: DC2 + state: present + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/delete_cname_record.yaml b/ansible_collections/infoblox/nios_modules/playbooks/delete_cname_record.yaml index 50c551053..f7f753a7e 100644 --- a/ansible_collections/infoblox/nios_modules/playbooks/delete_cname_record.yaml +++ b/ansible_collections/infoblox/nios_modules/playbooks/delete_cname_record.yaml @@ -9,7 +9,7 @@ connection: local tasks: - - name: Create Nios CNAME record + - name: Delete Nios CNAME record infoblox.nios_modules.nios_cname_record: name: cname.ansible.com canonical: realhost.ansible.com diff --git a/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_http.yaml b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_http.yaml new file mode 100644 index 000000000..29427ebd1 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_http.yaml @@ -0,0 +1,16 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Delete Nios DTC HTTPS monitor Test + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + state: absent + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_icmp.yaml b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_icmp.yaml new file mode 100644 index 000000000..eca2975fa --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_icmp.yaml @@ -0,0 +1,16 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Delete Nios DTC ICMP monitor Test + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + state: absent + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_pdp.yaml b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_pdp.yaml new file mode 100644 index 000000000..b69fb4627 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_pdp.yaml @@ -0,0 +1,16 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Delete Nios DTC PDP monitor Test + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + state: absent + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_sip.yaml b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_sip.yaml new file mode 100644 index 000000000..1fbc0e290 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_sip.yaml @@ -0,0 +1,17 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Delete Nios DTC SIP monitor Test + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + port: 8080 + state: absent + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_snmp.yaml b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_snmp.yaml new file mode 100644 index 000000000..972751a64 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_snmp.yaml @@ -0,0 +1,16 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Delete Nios DTC SNMP monitor Test + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + state: absent + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_tcp.yaml b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_tcp.yaml new file mode 100644 index 000000000..662df448a --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_monitor_tcp.yaml @@ -0,0 +1,16 @@ +--- + +- hosts: localhost + vars: + nios_provider: + host: 10.36.118.2 + username: cloudadmin + password: admin + + connection: local + tasks: + - name: Delete Nios DTC TCP monitor Test + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + state: absent + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_topology.yml b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_topology.yml new file mode 100644 index 000000000..1782aa676 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/playbooks/delete_dtc_topology.yml @@ -0,0 +1,16 @@ +--- +- hosts: localhost + vars: + nios_provider: + host: 10.196.205.10 + username: cloudadmin + password: infoblox + wapi_version: "2.12" + + connection: local + tasks: + - name: delete a DTC Topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + state: absent + provider: "{{ nios_provider }}" diff --git a/ansible_collections/infoblox/nios_modules/playbooks/delete_mx_record.yaml b/ansible_collections/infoblox/nios_modules/playbooks/delete_mx_record.yaml index 3b269a255..9a4475ecb 100644 --- a/ansible_collections/infoblox/nios_modules/playbooks/delete_mx_record.yaml +++ b/ansible_collections/infoblox/nios_modules/playbooks/delete_mx_record.yaml @@ -9,7 +9,7 @@ connection: local tasks: - - name: Create Nios MX record + - name: delete Nios MX record infoblox.nios_modules.nios_mx_record: name: ansible.com mx: mailhost.ansible.com diff --git a/ansible_collections/infoblox/nios_modules/playbooks/delete_txt_record.yaml b/ansible_collections/infoblox/nios_modules/playbooks/delete_txt_record.yaml index 376e29734..ea9269afd 100644 --- a/ansible_collections/infoblox/nios_modules/playbooks/delete_txt_record.yaml +++ b/ansible_collections/infoblox/nios_modules/playbooks/delete_txt_record.yaml @@ -9,7 +9,7 @@ connection: local tasks: - - name: Create Nios TXT record + - name: delete Nios TXT record infoblox.nios_modules.nios_txt_record: name: fqdn.txt.ansible.com text: example_text diff --git a/ansible_collections/infoblox/nios_modules/playbooks/restart_services.yml b/ansible_collections/infoblox/nios_modules/playbooks/restart_services.yml index 23bbe590b..b8b8fe61a 100644 --- a/ansible_collections/infoblox/nios_modules/playbooks/restart_services.yml +++ b/ansible_collections/infoblox/nios_modules/playbooks/restart_services.yml @@ -10,6 +10,6 @@ connection: local tasks: - name: Restart Services - nios_restartservices: + infoblox.nios_modules.nios_restartservices: provider: "{{ nios_provider }}" ... diff --git a/ansible_collections/infoblox/nios_modules/playbooks/update_member.yml b/ansible_collections/infoblox/nios_modules/playbooks/update_member.yml index 0d8603219..391569138 100644 --- a/ansible_collections/infoblox/nios_modules/playbooks/update_member.yml +++ b/ansible_collections/infoblox/nios_modules/playbooks/update_member.yml @@ -8,7 +8,7 @@ password: cloudadmin connection: local tasks: - - name: create member + - name: update member host name infoblox.nios_modules.nios_member: host_name: {old_name: block1.localdomain, new_name: member01.localdomain} master_candidate: false diff --git a/ansible_collections/infoblox/nios_modules/plugins/doc_fragments/nios.py b/ansible_collections/infoblox/nios_modules/plugins/doc_fragments/nios.py index bd1f02eaf..bbecf7a63 100644 --- a/ansible_collections/infoblox/nios_modules/plugins/doc_fragments/nios.py +++ b/ansible_collections/infoblox/nios_modules/plugins/doc_fragments/nios.py @@ -77,7 +77,7 @@ options: wapi_version: description: - Specifies the version of WAPI to use - - Value can also be specified using C(INFOBLOX_WAP_VERSION) environment + - Value can also be specified using C(INFOBLOX_WAPI_VERSION) environment variable. - Until ansible 2.8 the default WAPI was 1.4 type: str diff --git a/ansible_collections/infoblox/nios_modules/plugins/module_utils/api.py b/ansible_collections/infoblox/nios_modules/plugins/module_utils/api.py index 51c512571..3a586193b 100644 --- a/ansible_collections/infoblox/nios_modules/plugins/module_utils/api.py +++ b/ansible_collections/infoblox/nios_modules/plugins/module_utils/api.py @@ -71,6 +71,13 @@ NIOS_MEMBER = 'member' NIOS_DTC_SERVER = 'dtc:server' NIOS_DTC_POOL = 'dtc:pool' NIOS_DTC_LBDN = 'dtc:lbdn' +NIOS_DTC_MONITOR_HTTP = 'dtc:monitor:http' +NIOS_DTC_MONITOR_ICMP = 'dtc:monitor:icmp' +NIOS_DTC_MONITOR_PDP = 'dtc:monitor:pdp' +NIOS_DTC_MONITOR_SIP = 'dtc:monitor:sip' +NIOS_DTC_MONITOR_SNMP = 'dtc:monitor:snmp' +NIOS_DTC_MONITOR_TCP = 'dtc:monitor:tcp' +NIOS_DTC_TOPOLOGY = 'dtc:topology' NIOS_PROVIDER_SPEC = { 'host': dict(fallback=(env_fallback, ['INFOBLOX_HOST'])), @@ -84,8 +91,8 @@ NIOS_PROVIDER_SPEC = { 'http_pool_connections': dict(type='int', default=10), 'http_pool_maxsize': dict(type='int', default=10), 'max_retries': dict(type='int', default=3, fallback=(env_fallback, ['INFOBLOX_MAX_RETRIES'])), - 'wapi_version': dict(default='2.9', fallback=(env_fallback, ['INFOBLOX_WAP_VERSION'])), - 'max_results': dict(type='int', default=1000, fallback=(env_fallback, ['INFOBLOX_MAX_RETRIES'])) + 'wapi_version': dict(default='2.9', fallback=(env_fallback, ['INFOBLOX_WAPI_VERSION'])), + 'max_results': dict(type='int', default=1000, fallback=(env_fallback, ['INFOBLOX_MAX_RESULTS'])) } @@ -113,7 +120,12 @@ def get_connector(*args, **kwargs): # explicitly set env = ('INFOBLOX_%s' % key).upper() if env in os.environ: - kwargs[key] = os.environ.get(env) + if NIOS_PROVIDER_SPEC[key].get('type') == 'bool': + kwargs[key] = eval(os.environ.get(env).title()) + elif NIOS_PROVIDER_SPEC[key].get('type') == 'int': + kwargs[key] = eval(os.environ.get(env)) + else: + kwargs[key] = os.environ.get(env) if 'validate_certs' in kwargs.keys(): kwargs['ssl_verify'] = kwargs['validate_certs'] @@ -746,6 +758,11 @@ class WapiModule(WapiBase): except TypeError: txt = obj_filter['text'] test_obj_filter['text'] = txt + + # removing Port param from get params for NIOS_DTC_MONITOR_TCP + elif (ib_obj_type == NIOS_DTC_MONITOR_TCP): + test_obj_filter = dict([('name', obj_filter['name'])]) + # check if test_obj_filter is empty copy passed obj_filter else: test_obj_filter = obj_filter @@ -767,9 +784,6 @@ class WapiModule(WapiBase): except TypeError: ipaddr = obj_filter['ipv4addr'] test_obj_filter['ipv4addr'] = ipaddr - # prevents creation of a new A record with 'new_ipv4addr' when A record with a particular 'old_ipv4addr' is not found - if old_ipv4addr_exists and ib_obj is None: - raise Exception("A Record with ipv4addr: '%s' is not found" % (ipaddr)) ib_obj = self.get_object(ib_obj_type, test_obj_filter.copy(), return_fields=list(ib_spec.keys())) # prevents creation of a new A record with 'new_ipv4addr' when A record with a particular 'old_ipv4addr' is not found if old_ipv4addr_exists and ib_obj is None: diff --git a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_lbdn.py b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_lbdn.py index e18689035..bc5a79c16 100644 --- a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_lbdn.py +++ b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_lbdn.py @@ -37,6 +37,12 @@ options: - RATIO - ROUND_ROBIN - TOPOLOGY + topology: + description: + - Configures the topology rules for the C(TOPOLOGY) load balancing method. + - Required only when I(lb_method) is set to C(TOPOLOGY). + required: false + type: str auth_zones: description: - List of linked authoritative zones. @@ -172,7 +178,7 @@ def main(): for zone in module.params['auth_zones']: zone_obj = wapi.get_object('zone_auth', {'fqdn': zone}) - if zone_obj is not None: + if zone_obj: zone_list.append(zone_obj[0]['_ref']) else: module.fail_json( @@ -188,13 +194,23 @@ def main(): {'name': pool['pool']}) if 'ratio' not in pool: pool['ratio'] = 1 - if pool_obj is not None: + if pool_obj: pool_list.append({'pool': pool_obj[0]['_ref'], 'ratio': pool['ratio']}) else: module.fail_json(msg='pool %s cannot be found.' % pool) return pool_list + def topology_transform(module): + topology = module.params['topology'] + if topology: + topo_obj = wapi.get_object('dtc:topology', {'name': topology}) + if topo_obj: + return topo_obj[0]['_ref'] + else: + module.fail_json( + msg='topology %s cannot be found.' % topology) + auth_zones_spec = dict() pools_spec = dict( @@ -207,6 +223,7 @@ def main(): lb_method=dict(required=True, choices=['GLOBAL_AVAILABILITY', 'RATIO', 'ROUND_ROBIN', 'TOPOLOGY']), + topology=dict(type='str', transform=topology_transform), auth_zones=dict(type='list', elements='str', options=auth_zones_spec, transform=auth_zones_transform), patterns=dict(type='list', elements='str'), diff --git a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_http.py b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_http.py new file mode 100644 index 000000000..b90e98a04 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_http.py @@ -0,0 +1,272 @@ +#!/usr/bin/python +# Copyright (c) 2018-2019 Red Hat, Inc. +# Copyright (c) 2020 Infoblox, Inc. +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +DOCUMENTATION = ''' +--- +module: nios_dtc_monitor_http +author: "Joachim Buyse (@jbisabel)" +version_added: "1.6.0" +short_description: Configure Infoblox NIOS DTC HTTP monitors +description: + - Adds and/or removes instances of DTC HTTP monitor objects from Infoblox NIOS + servers. This module manages C(dtc:monitor:http) objects using the Infoblox + WAPI interface over REST. +requirements: + - infoblox-client +extends_documentation_fragment: infoblox.nios_modules.nios +notes: + - This module supports C(check_mode). +options: + name: + description: + - Configures the display name for this DTC monitor. Values with leading + or trailing white space are not valid for this field. + required: true + type: str + port: + description: + - Configures the port value for HTTP requests. + type: int + default: 80 + ciphers: + description: + - Configures an optional cipher list for the secure HTTP/S connection. + type: str + client_cert: + description: + - Configures an optional client certificate, supplied in a secure HTTP/S + mode if present. + type: str + content_check: + description: + - Configures the content check type + type: str + choices: + - EXTRACT + - MATCH + - NONE + default: NONE + content_check_input: + description: + - Configures the portion of the response to use as input for content check. + type: str + choices: + - ALL + - BODY + - HEADERS + default: ALL + content_check_op: + description: + - Configures the content check success criteria operator. + type: str + choices: + - EQ + - GEQ + - LEQ + - NEQ + content_check_regex: + description: + - Configures the content check regular expression. Values with leading + or trailing white space are not valid for this field. + type: str + content_extract_group: + description: + - Configures the content extraction sub-expression to extract. + type: int + default: 0 + content_extract_type: + description: + - Configures the content extraction expected type for the extracted data. + type: str + choices: + - INTEGER + - STRING + default: STRING + content_extract_value: + description: + - Configures the content extraction value to compare with the extracted + result. Values with leading or trailing white space are not valid for + this field. + type: str + request: + description: + - Configures the HTTP request to send + type: str + default: GET / + result: + description: + - Configures the type of the expected result + type: str + choices: + - ANY + - CODE_IS + - CODE_IS_NOT + default: ANY + result_code: + description: + - Configures the expected return code + type: int + default: 200 + enable_sni: + description: + - Configures whether or not Server Name Indication (SNI) for the HTTPS + monitor is enabled. + type: bool + default: false + secure: + description: + - Configures the security status of the connection. + type: bool + default: false + validate_cert: + description: + - Configures whether the validation of the remote server's certificate is + enabled. + type: bool + default: true + interval: + description: + - Configures the interval for HTTP health check. + type: int + default: 5 + retry_down: + description: + - Configures the value of how many times the server should appear as + down to be treated as dead after it was alive. + type: int + default: 1 + retry_up: + description: + - Configures the value of how many times the server should appear as up + to be treated as alive after it was dead. + type: int + default: 1 + timeout: + description: + - Configures the timeout for HTTP health check in seconds. + type: int + default: 15 + extattrs: + description: + - Allows for the configuration of Extensible Attributes on the + instance of the object. This argument accepts a set of key / value + pairs for configuration. + type: dict + comment: + description: + - Configures a text string comment to be associated with the instance + of this object. The provided text string will be configured on the + object instance. + type: str + state: + description: + - Configures the intended state of the instance of the object on + the NIOS server. When this value is set to C(present), the object + is configured on the device and when this value is set to C(absent) + the value is removed (if necessary) from the device. + default: present + choices: + - present + - absent + type: str +''' + +EXAMPLES = ''' +- name: Configure a DTC HTTPS monitor + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + port: 443 + secure: true + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Add a comment to an existing DTC HTTPS monitor + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + comment: this is a test comment + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Remove a DTC HTTPS monitor from the system + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + state: absent + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local +''' + +RETURN = ''' # ''' + +from ansible.module_utils.basic import AnsibleModule +from ..module_utils.api import WapiModule +from ..module_utils.api import NIOS_DTC_MONITOR_HTTP +from ..module_utils.api import normalize_ib_spec + + +def main(): + ''' Main entry point for module execution + ''' + + ib_spec = dict( + name=dict(required=True, ib_req=True), + + port=dict(type='int', default=80), + ciphers=dict(type='str'), + client_cert=dict(type='str'), + content_check=dict(default='NONE', choices=['EXTRACT', 'MATCH', 'NONE']), + content_check_input=dict(default='ALL', choices=['ALL', 'BODY', 'HEADERS']), + content_check_op=dict(choices=['EQ', 'GEQ', 'LEQ', 'NEQ']), + content_check_regex=dict(type='str'), + content_extract_group=dict(type='int', default=0), + content_extract_type=dict(default='STRING', choices=['INTEGER', 'STRING']), + content_extract_value=dict(type='str'), + request=dict(type='str', default='GET /'), + result=dict(default='ANY', choices=['ANY', 'CODE_IS', 'CODE_IS_NOT']), + result_code=dict(type='int', default=200), + enable_sni=dict(type='bool', default=False), + secure=dict(type='bool', default=False), + validate_cert=dict(type='bool', default=True), + interval=dict(type='int', default=5), + retry_down=dict(type='int', default=1), + retry_up=dict(type='int', default=1), + timeout=dict(type='int', default=15), + + extattrs=dict(type='dict'), + comment=dict(), + ) + + argument_spec = dict( + provider=dict(required=True), + state=dict(default='present', choices=['present', 'absent']) + ) + + argument_spec.update(normalize_ib_spec(ib_spec)) + argument_spec.update(WapiModule.provider_spec) + + module = AnsibleModule(argument_spec=argument_spec, + supports_check_mode=True) + + wapi = WapiModule(module) + result = wapi.run(NIOS_DTC_MONITOR_HTTP, ib_spec) + + module.exit_json(**result) + + +if __name__ == '__main__': + main() diff --git a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_icmp.py b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_icmp.py new file mode 100644 index 000000000..e133954ef --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_icmp.py @@ -0,0 +1,154 @@ +#!/usr/bin/python +# Copyright (c) 2018-2019 Red Hat, Inc. +# Copyright (c) 2020 Infoblox, Inc. +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +DOCUMENTATION = ''' +--- +module: nios_dtc_monitor_icmp +author: "Joachim Buyse (@jbisabel)" +version_added: "1.6.0" +short_description: Configure Infoblox NIOS DTC ICMP monitors +description: + - Adds and/or removes instances of DTC ICMP monitor objects from Infoblox NIOS + servers. This module manages C(dtc:monitor:icmp) objects using the Infoblox + WAPI interface over REST. +requirements: + - infoblox-client +extends_documentation_fragment: infoblox.nios_modules.nios +notes: + - This module supports C(check_mode). +options: + name: + description: + - Configures the display name for this DTC monitor. Values with leading + or trailing white space are not valid for this field. + required: true + type: str + interval: + description: + - Configures the interval for ICMP health check. + type: int + default: 5 + retry_down: + description: + - Configures the value of how many times the server should appear as + down to be treated as dead after it was alive. + type: int + default: 1 + retry_up: + description: + - Configures the value of how many times the server should appear as up + to be treated as alive after it was dead. + type: int + default: 1 + timeout: + description: + - Configures the timeout for ICMP health check in seconds. + type: int + default: 15 + extattrs: + description: + - Allows for the configuration of Extensible Attributes on the + instance of the object. This argument accepts a set of key / value + pairs for configuration. + type: dict + comment: + description: + - Configures a text string comment to be associated with the instance + of this object. The provided text string will be configured on the + object instance. + type: str + state: + description: + - Configures the intended state of the instance of the object on + the NIOS server. When this value is set to C(present), the object + is configured on the device and when this value is set to C(absent) + the value is removed (if necessary) from the device. + default: present + choices: + - present + - absent + type: str +''' + +EXAMPLES = ''' +- name: Configure a DTC ICMP monitor + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + port: 8080 + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Add a comment to an existing DTC ICMP monitor + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + comment: this is a test comment + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Remove a DTC ICMP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + state: absent + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local +''' + +RETURN = ''' # ''' + +from ansible.module_utils.basic import AnsibleModule +from ..module_utils.api import WapiModule +from ..module_utils.api import NIOS_DTC_MONITOR_ICMP +from ..module_utils.api import normalize_ib_spec + + +def main(): + ''' Main entry point for module execution + ''' + + ib_spec = dict( + name=dict(required=True, ib_req=True), + + interval=dict(type='int', default=5), + retry_down=dict(type='int', default=1), + retry_up=dict(type='int', default=1), + timeout=dict(type='int', default=15), + + extattrs=dict(type='dict'), + comment=dict(), + ) + + argument_spec = dict( + provider=dict(required=True), + state=dict(default='present', choices=['present', 'absent']) + ) + + argument_spec.update(normalize_ib_spec(ib_spec)) + argument_spec.update(WapiModule.provider_spec) + + module = AnsibleModule(argument_spec=argument_spec, + supports_check_mode=True) + + wapi = WapiModule(module) + result = wapi.run(NIOS_DTC_MONITOR_ICMP, ib_spec) + + module.exit_json(**result) + + +if __name__ == '__main__': + main() diff --git a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_pdp.py b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_pdp.py new file mode 100644 index 000000000..d9cf8e4a8 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_pdp.py @@ -0,0 +1,159 @@ +#!/usr/bin/python +# Copyright (c) 2018-2019 Red Hat, Inc. +# Copyright (c) 2020 Infoblox, Inc. +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +DOCUMENTATION = ''' +--- +module: nios_dtc_monitor_pdp +author: "Joachim Buyse (@jbisabel)" +version_added: "1.6.0" +short_description: Configure Infoblox NIOS DTC PDP monitors +description: + - Adds and/or removes instances of DTC PDP monitor objects from Infoblox NIOS + servers. This module manages C(dtc:monitor:pdp) objects using the Infoblox + WAPI interface over REST. +requirements: + - infoblox-client +extends_documentation_fragment: infoblox.nios_modules.nios +notes: + - This module supports C(check_mode). +options: + name: + description: + - Configures the display name for this DTC monitor. Values with leading + or trailing white space are not valid for this field. + required: true + type: str + port: + description: + - Configures the port value for PDP requests. + type: int + default: 2123 + interval: + description: + - Configures the interval for PDP health check. + type: int + default: 5 + retry_down: + description: + - Configures the value of how many times the server should appear as + down to be treated as dead after it was alive. + type: int + default: 1 + retry_up: + description: + - Configures the value of how many times the server should appear as up + to be treated as alive after it was dead. + type: int + default: 1 + timeout: + description: + - Configures the timeout for PDP health check in seconds. + type: int + default: 15 + extattrs: + description: + - Allows for the configuration of Extensible Attributes on the + instance of the object. This argument accepts a set of key / value + pairs for configuration. + type: dict + comment: + description: + - Configures a text string comment to be associated with the instance + of this object. The provided text string will be configured on the + object instance. + type: str + state: + description: + - Configures the intended state of the instance of the object on + the NIOS server. When this value is set to C(present), the object + is configured on the device and when this value is set to C(absent) + the value is removed (if necessary) from the device. + default: present + choices: + - present + - absent + type: str +''' + +EXAMPLES = ''' +- name: Configure a DTC PDP monitor + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Add a comment to an existing DTC PDP monitor + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + comment: this is a test comment + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Remove a DTC PDP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + state: absent + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local +''' + +RETURN = ''' # ''' + +from ansible.module_utils.basic import AnsibleModule +from ..module_utils.api import WapiModule +from ..module_utils.api import NIOS_DTC_MONITOR_PDP +from ..module_utils.api import normalize_ib_spec + + +def main(): + ''' Main entry point for module execution + ''' + + ib_spec = dict( + name=dict(required=True, ib_req=True), + + port=dict(type='int', default=2123), + interval=dict(type='int', default=5), + retry_down=dict(type='int', default=1), + retry_up=dict(type='int', default=1), + timeout=dict(type='int', default=15), + + extattrs=dict(type='dict'), + comment=dict(), + ) + + argument_spec = dict( + provider=dict(required=True), + state=dict(default='present', choices=['present', 'absent']) + ) + + argument_spec.update(normalize_ib_spec(ib_spec)) + argument_spec.update(WapiModule.provider_spec) + + module = AnsibleModule(argument_spec=argument_spec, + supports_check_mode=True) + + wapi = WapiModule(module) + result = wapi.run(NIOS_DTC_MONITOR_PDP, ib_spec) + + module.exit_json(**result) + + +if __name__ == '__main__': + main() diff --git a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_sip.py b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_sip.py new file mode 100644 index 000000000..c1df09853 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_sip.py @@ -0,0 +1,209 @@ +#!/usr/bin/python +# Copyright (c) 2018-2019 Red Hat, Inc. +# Copyright (c) 2020 Infoblox, Inc. +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +DOCUMENTATION = ''' +--- +module: nios_dtc_monitor_sip +author: "Joachim Buyse (@jbisabel)" +version_added: "1.6.0" +short_description: Configure Infoblox NIOS DTC SIP monitors +description: + - Adds and/or removes instances of DTC SIP monitor objects from Infoblox NIOS + servers. This module manages C(dtc:monitor:sip) objects using the Infoblox + WAPI interface over REST. +requirements: + - infoblox-client +extends_documentation_fragment: infoblox.nios_modules.nios +notes: + - This module supports C(check_mode). +options: + name: + description: + - Configures the display name for this DTC monitor. Values with leading + or trailing white space are not valid for this field. + required: true + type: str + port: + description: + - Configures the port value for SIP requests. + type: int + default: 5060 + ciphers: + description: + - Configures an optional cipher list for the secure TLS/SIPS connection. + type: str + client_cert: + description: + - Configures an optional client certificate, supplied in TLS or SIPS mode + if present. + type: str + request: + description: + - Configures the SIP request to send + type: str + result: + description: + - Configures the type of the expected result + type: str + choices: + - ANY + - CODE_IS + - CODE_IS_NOT + default: ANY + result_code: + description: + - Configures the expected return code + type: int + default: 200 + transport: + description: + - Configures the transport layer protocol to use for the SIP check + type: str + choices: + - SIPS + - TCP + - TLS + - UDP + default: TCP + validate_cert: + description: + - Configures whether the validation of the remote server's certificate is + enabled. + type: bool + default: true + interval: + description: + - Configures the interval for SIP health check. + type: int + default: 5 + retry_down: + description: + - Configures the value of how many times the server should appear as + down to be treated as dead after it was alive. + type: int + default: 1 + retry_up: + description: + - Configures the value of how many times the server should appear as up + to be treated as alive after it was dead. + type: int + default: 1 + timeout: + description: + - Configures the timeout for SIP health check in seconds. + type: int + default: 15 + extattrs: + description: + - Allows for the configuration of Extensible Attributes on the + instance of the object. This argument accepts a set of key / value + pairs for configuration. + type: dict + comment: + description: + - Configures a text string comment to be associated with the instance + of this object. The provided text string will be configured on the + object instance. + type: str + state: + description: + - Configures the intended state of the instance of the object on + the NIOS server. When this value is set to C(present), the object + is configured on the device and when this value is set to C(absent) + the value is removed (if necessary) from the device. + default: present + choices: + - present + - absent + type: str +''' + +EXAMPLES = ''' +- name: Configure a DTC SIP monitor + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Add a comment to an existing DTC SIP monitor + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + comment: this is a test comment + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Remove a DTC SIP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + state: absent + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local +''' + +RETURN = ''' # ''' + +from ansible.module_utils.basic import AnsibleModule +from ..module_utils.api import WapiModule +from ..module_utils.api import NIOS_DTC_MONITOR_SIP +from ..module_utils.api import normalize_ib_spec + + +def main(): + ''' Main entry point for module execution + ''' + + ib_spec = dict( + name=dict(required=True, ib_req=True), + + port=dict(type='int', default=5060), + ciphers=dict(type='str'), + client_cert=dict(type='str'), + request=dict(type='str'), + result=dict(default='ANY', choices=['ANY', 'CODE_IS', 'CODE_IS_NOT']), + result_code=dict(type='int', default=200), + transport=dict(default='TCP', choices=['SIPS', 'TCP', 'TLS', 'UDP']), + validate_cert=dict(type='bool', default=True), + interval=dict(type='int', default=5), + retry_down=dict(type='int', default=1), + retry_up=dict(type='int', default=1), + timeout=dict(type='int', default=15), + + extattrs=dict(type='dict'), + comment=dict(), + ) + + argument_spec = dict( + provider=dict(required=True), + state=dict(default='present', choices=['present', 'absent']) + ) + + argument_spec.update(normalize_ib_spec(ib_spec)) + argument_spec.update(WapiModule.provider_spec) + + module = AnsibleModule(argument_spec=argument_spec, + supports_check_mode=True) + + wapi = WapiModule(module) + result = wapi.run(NIOS_DTC_MONITOR_SIP, ib_spec) + + module.exit_json(**result) + + +if __name__ == '__main__': + main() diff --git a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_snmp.py b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_snmp.py new file mode 100644 index 000000000..036580e86 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_snmp.py @@ -0,0 +1,279 @@ +#!/usr/bin/python +# Copyright (c) 2018-2019 Red Hat, Inc. +# Copyright (c) 2020 Infoblox, Inc. +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +DOCUMENTATION = ''' +--- +module: nios_dtc_monitor_snmp +author: "Joachim Buyse (@jbisabel)" +version_added: "1.6.0" +short_description: Configure Infoblox NIOS DTC SNMP monitors +description: + - Adds and/or removes instances of DTC SNMP monitor objects from Infoblox NIOS + servers. This module manages C(dtc:monitor:snmp) objects using the Infoblox + WAPI interface over REST. +requirements: + - infoblox-client +extends_documentation_fragment: infoblox.nios_modules.nios +notes: + - This module supports C(check_mode). +options: + name: + description: + - Configures the display name for this DTC monitor. Values with leading + or trailing white space are not valid for this field. + required: true + type: str + port: + description: + - Configures the port value for SNMP requests. + type: int + default: 161 + version: + description: + - Configures the SNMP protocol version for the SNMP health check. + type: str + choices: + - V1 + - V2C + - V3 + default: V2C + community: + description: + - Configures the SNMP community string for SNMP authentication. + type: str + default: public + user: + description: + - Configures the SNMPv3 user setting. + type: str + context: + description: + - Configures the SNMPv3 context. Values with leading or trailing white + space are not valid for this field. + type: str + engine_id: + description: + - Configures the SNMPv3 engine identifier. Values with leading or + trailing white space are not valid for this field. + type: str + oids: + description: + - Configures the list of OIDs for SNMP monitoring. + type: list + elements: dict + suboptions: + comment: + description: + - Configures a text string comment to be associated with the instance + of this object. The provided text string will be configured on the + object instance. + type: str + condition: + description: + - Configures the condition of the validation result for the SNMP + health check. + type: str + choices: + - ANY + - EXACT + - GEQ + - LEQ + - RANGE + default: ANY + first: + description: + - Configures the condition's first term to match against the SNMP + health check result. + type: str + last: + description: + - Configures the condition's second term to match against the SNMP + health check result with 'RANGE' condition. + type: str + oid: + description: + - Configures the SNMP OID value for DTC SNMP Monitor health checks. + - This field is required on creation + required: true + type: str + type: + description: + - Configures the condition type for DTC SNMP Monitor health checks + results. + type: str + choices: + - INTEGER + - STRING + default: STRING + interval: + description: + - Configures the interval for SNMP health check. + type: int + default: 5 + retry_down: + description: + - Configures the value of how many times the server should appear as + down to be treated as dead after it was alive. + type: int + default: 1 + retry_up: + description: + - Configures the value of how many times the server should appear as up + to be treated as alive after it was dead. + type: int + default: 1 + timeout: + description: + - Configures the timeout for SNMP health check in seconds. + type: int + default: 15 + extattrs: + description: + - Allows for the configuration of Extensible Attributes on the + instance of the object. This argument accepts a set of key / value + pairs for configuration. + type: dict + comment: + description: + - Configures a text string comment to be associated with the instance + of this object. The provided text string will be configured on the + object instance. + type: str + state: + description: + - Configures the intended state of the instance of the object on + the NIOS server. When this value is set to C(present), the object + is configured on the device and when this value is set to C(absent) + the value is removed (if necessary) from the device. + default: present + choices: + - present + - absent + type: str +''' + +EXAMPLES = ''' +- name: Configure a DTC SNMP monitor + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + port: 8080 + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Add a comment to an existing DTC SNMP monitor + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + comment: this is a test comment + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Remove a DTC SNMP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + state: absent + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local +''' + +RETURN = ''' # ''' + +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.six import iteritems +from ..module_utils.api import WapiModule +from ..module_utils.api import NIOS_DTC_MONITOR_SNMP +from ..module_utils.api import normalize_ib_spec + + +def oids(module): + ''' Transform the module argument into a valid WAPI struct + This function will transform the oids argument into a structure that is a + valid WAPI structure in the format of: + { + comment: <value>, + condition: <value>, + first: <value>, + last: <value>, + oid: <value>, + type: <value>, + } + It will remove any options that are set to None since WAPI will error on + that condition. + The remainder of the value validation is performed by WAPI + ''' + + oids = list() + for item in module.params['oids']: + oid = dict([(k, v) for k, v in iteritems(item) if v is not None]) + if 'oid' not in oid: + module.fail_json(msg='oid is required for oid value') + oids.append(oid) + return oids + + +def main(): + ''' Main entry point for module execution + ''' + + oid_spec = dict( + comment=dict(type='str'), + condition=dict(default='ANY', choices=['ANY', 'EXACT', 'GEQ', 'LEQ', 'RANGE']), + first=dict(type='str'), + last=dict(type='str'), + oid=dict(type='str', required=True), + type=dict(default='STRING', choices=['INTEGER', 'STRING']) + ) + + ib_spec = dict( + name=dict(required=True, ib_req=True), + + port=dict(type='int', default=161), + version=dict(default='V2C', choices=['V1', 'V2C', 'V3']), + community=dict(type='str', default='public'), + user=dict(type='str'), + context=dict(type='str'), + engine_id=dict(type='str'), + oids=dict(type='list', elements='dict', options=oid_spec, transform=oids), + interval=dict(type='int', default=5), + retry_down=dict(type='int', default=1), + retry_up=dict(type='int', default=1), + timeout=dict(type='int', default=15), + + extattrs=dict(type='dict'), + comment=dict(), + ) + + argument_spec = dict( + provider=dict(required=True), + state=dict(default='present', choices=['present', 'absent']) + ) + + argument_spec.update(normalize_ib_spec(ib_spec)) + argument_spec.update(WapiModule.provider_spec) + + module = AnsibleModule(argument_spec=argument_spec, + supports_check_mode=True) + + wapi = WapiModule(module) + result = wapi.run(NIOS_DTC_MONITOR_SNMP, ib_spec) + + module.exit_json(**result) + + +if __name__ == '__main__': + main() diff --git a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_tcp.py b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_tcp.py new file mode 100644 index 000000000..e812f13c6 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_monitor_tcp.py @@ -0,0 +1,163 @@ +#!/usr/bin/python +# Copyright (c) 2018-2019 Red Hat, Inc. +# Copyright (c) 2020 Infoblox, Inc. +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +DOCUMENTATION = ''' +--- +module: nios_dtc_monitor_tcp +author: "Joachim Buyse (@jbisabel)" +version_added: "1.6.0" +short_description: Configure Infoblox NIOS DTC TCP monitors +description: + - Adds and/or removes instances of DTC TCP monitor objects from Infoblox NIOS + servers. This module manages C(dtc:monitor:tcp) objects using the Infoblox + WAPI interface over REST. +requirements: + - infoblox-client +extends_documentation_fragment: infoblox.nios_modules.nios +notes: + - This module supports C(check_mode). +options: + name: + description: + - Configures the display name for this DTC monitor. Values with leading + or trailing white space are not valid for this field. + required: true + type: str + port: + description: + - Configures the port value for TCP requests. The field is required on + creation. + required: true + type: int + interval: + description: + - Configures the interval for TCP health check. + type: int + default: 5 + retry_down: + description: + - Configures the value of how many times the server should appear as + down to be treated as dead after it was alive. + type: int + default: 1 + retry_up: + description: + - Configures the value of how many times the server should appear as up + to be treated as alive after it was dead. + type: int + default: 1 + timeout: + description: + - Configures the timeout for TCP health check in seconds. + type: int + default: 15 + extattrs: + description: + - Allows for the configuration of Extensible Attributes on the + instance of the object. This argument accepts a set of key / value + pairs for configuration. + type: dict + comment: + description: + - Configures a text string comment to be associated with the instance + of this object. The provided text string will be configured on the + object instance. + type: str + state: + description: + - Configures the intended state of the instance of the object on + the NIOS server. When this value is set to C(present), the object + is configured on the device and when this value is set to C(absent) + the value is removed (if necessary) from the device. + default: present + choices: + - present + - absent + type: str +''' + +EXAMPLES = ''' +- name: Configure a DTC TCP monitor + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Add a comment to an existing DTC TCP monitor + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + comment: this is a test comment + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Remove a DTC TCP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + state: absent + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local +''' + +RETURN = ''' # ''' + +from ansible.module_utils.basic import AnsibleModule +from ..module_utils.api import WapiModule +from ..module_utils.api import NIOS_DTC_MONITOR_TCP +from ..module_utils.api import normalize_ib_spec + + +def main(): + ''' Main entry point for module execution + ''' + + ib_spec = dict( + name=dict(required=True, ib_req=True), + port=dict(type='int', required=True, ib_req=True), + + interval=dict(type='int', default=5), + retry_down=dict(type='int', default=1), + retry_up=dict(type='int', default=1), + timeout=dict(type='int', default=15), + + extattrs=dict(type='dict'), + comment=dict(), + ) + + argument_spec = dict( + provider=dict(required=True), + state=dict(default='present', choices=['present', 'absent']) + ) + + argument_spec.update(normalize_ib_spec(ib_spec)) + argument_spec.update(WapiModule.provider_spec) + + module = AnsibleModule(argument_spec=argument_spec, + supports_check_mode=True) + + wapi = WapiModule(module) + result = wapi.run(NIOS_DTC_MONITOR_TCP, ib_spec) + + module.exit_json(**result) + + +if __name__ == '__main__': + main() diff --git a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_pool.py b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_pool.py index 422d76f16..82491f62b 100644 --- a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_pool.py +++ b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_pool.py @@ -41,6 +41,12 @@ options: - TOPOLOGY required: true type: str + lb_preferred_topology: + description: + - Configures the topology rules for the C(TOPOLOGY) load balancing method. + - Required only when I(lb_preferred_method) is set to C(TOPOLOGY). + required: false + type: str servers: description: - Configure the DTC Servers related to the pool @@ -170,9 +176,11 @@ def main(): for server in module.params['servers']: server_obj = wapi.get_object('dtc:server', {'name': server['server']}) - if server_obj is not None: + if server_obj: server_list.append({'server': server_obj[0]['_ref'], 'ratio': server['ratio']}) + else: + module.fail_json(msg='Server %s cannot be found.' % server) return server_list def monitors_transform(module): @@ -181,10 +189,23 @@ def main(): for monitor in module.params['monitors']: monitor_obj = wapi.get_object('dtc:monitor:' + monitor['type'], {'name': monitor['name']}) - if monitor_obj is not None: + if monitor_obj: monitor_list.append(monitor_obj[0]['_ref']) + else: + module.fail_json( + msg='monitor %s cannot be found.' % monitor) return monitor_list + def topology_transform(module): + topology = module.params['lb_preferred_topology'] + if topology: + topo_obj = wapi.get_object('dtc:topology', {'name': topology}) + if topo_obj: + return topo_obj[0]['_ref'] + else: + module.fail_json( + msg='topology %s cannot be found.' % topology) + servers_spec = dict( server=dict(required=True), ratio=dict(type='int', default=1) @@ -203,6 +224,7 @@ def main(): 'RATIO', 'ROUND_ROBIN', 'TOPOLOGY']), + lb_preferred_topology=dict(type='str', transform=topology_transform), servers=dict(type='list', elements='dict', options=servers_spec, transform=servers_transform), diff --git a/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_topology.py b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_topology.py new file mode 100644 index 000000000..eec857256 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/plugins/modules/nios_dtc_topology.py @@ -0,0 +1,253 @@ +#!/usr/bin/python +# Copyright (c) 2018-2019 Red Hat, Inc. +# Copyright (c) 2020 Infoblox, Inc. +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +DOCUMENTATION = ''' +--- +module: nios_dtc_topology +author: "Joachim Buyse (@jbisabel)" +short_description: Configure Infoblox NIOS DTC Topology +version_added: "1.6.0" +description: + - Adds and/or removes instances of DTC Topology objects from + Infoblox NIOS topologies. This module manages NIOS C(dtc:topology) objects + using the Infoblox WAPI interface over REST. +requirements: + - infoblox-client +extends_documentation_fragment: infoblox.nios_modules.nios +notes: + - This module supports C(check_mode). +options: + name: + description: + - Specifies the DTC Topology display name. + required: true + type: str + rules: + description: + - Configures the topology rules + type: list + elements: dict + suboptions: + dest_type: + description: + - Configures the type of the destination for this DTC Topology Rule. + type: str + choices: + - POOL + - SERVER + required: true + destination_link: + description: + - Configures the name of the destination DTC pool or DTC server. + type: str + return_type: + description: + - Configures the type of the DNS response for the rule. + type: str + choices: + - NOERR + - NXDOMAIN + - REGULAR + default: REGULAR + sources: + description: + - Configures the conditions for matching sources. Should be empty to + set the rule as default destination. + type: list + elements: dict + suboptions: + source_op: + description: + - Configures the operation used to match the value. + type: str + choices: + - IS + - IS_NOT + source_type: + description: + - Configures the source type. + type: str + choices: + - CITY + - CONTINENT + - COUNTRY + - EA0 + - EA1 + - EA2 + - EA3 + - SUBDIVISION + - SUBNET + required: true + source_value: + description: + - Configures the source value. + type: str + required: true + extattrs: + description: + - Allows for the configuration of Extensible Attributes on the + instance of the object. This argument accepts a set of key / value + pairs for configuration. + type: dict + comment: + description: + - Configures a text string comment to be associated with the instance + of this object. The provided text string will be configured on the + object instance. + type: str + state: + description: + - Configures the intended state of the instance of the object on + the NIOS topology. When this value is set to C(present), the object + is configured on the device and when this value is set to C(absent) + the value is removed (if necessary) from the device. + default: present + choices: + - present + - absent + type: str +''' + +EXAMPLES = ''' +- name: Configure a DTC Topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + rules: + - dest_type: POOL + destination_link: web_pool1 + return_type: REGULAR + sources: + - source_op: IS + source_type: EA0 + source_value: DC1 + - dest_type: POOL + destination_link: web_pool2 + return_type: REGULAR + sources: + - source_op: IS + source_type: EA0 + source_value: DC2 + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Add a comment to a DTC topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + comment: this is a test comment + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Remove a DTC Topology from the system + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + state: absent + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local +''' + +RETURN = ''' # ''' + +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.six import iteritems +from ..module_utils.api import WapiModule +from ..module_utils.api import NIOS_DTC_TOPOLOGY +from ..module_utils.api import normalize_ib_spec + + +def main(): + ''' Main entry point for module execution + ''' + + def sources_transform(sources, module): + source_list = list() + for source in sources: + src = dict([(k, v) for k, v in iteritems(source) if v is not None]) + if 'source_type' not in src or 'source_value' not in src: + module.fail_json(msg='source_type and source_value are required for source') + source_list.append(src) + return source_list + + def rules_transform(module): + rule_list = list() + dest_obj = None + + if not module.params['rules']: + return rule_list + + for rule in module.params['rules']: + if rule['dest_type'] == 'POOL': + dest_obj = wapi.get_object('dtc:pool', {'name': rule['destination_link']}) + else: + dest_obj = wapi.get_object('dtc:server', {'name': rule['destination_link']}) + if not dest_obj and rule['return_type'] == 'REGULAR': + module.fail_json(msg='destination_link %s does not exist' % rule['destination_link']) + + tf_rule = dict( + dest_type=rule['dest_type'], + destination_link=dest_obj[0]['_ref'] if dest_obj else None, + return_type=rule['return_type'] + ) + + if rule['sources']: + tf_rule['sources'] = sources_transform(rule['sources'], module) + + rule_list.append(tf_rule) + return rule_list + + source_spec = dict( + source_op=dict(choices=['IS', 'IS_NOT']), + source_type=dict(required=True, choices=['CITY', 'CONTINENT', 'COUNTRY', 'EA0', 'EA1', 'EA2', 'EA3', 'SUBDIVISION', 'SUBNET']), + source_value=dict(required=True, type='str') + ) + + rule_spec = dict( + dest_type=dict(required=True, choices=['POOL', 'SERVER']), + destination_link=dict(type='str'), + return_type=dict(default='REGULAR', choices=['NOERR', 'NXDOMAIN', 'REGULAR']), + sources=dict(type='list', elements='dict', options=source_spec) + ) + + ib_spec = dict( + name=dict(required=True, ib_req=True), + + rules=dict(type='list', elements='dict', options=rule_spec, transform=rules_transform), + + extattrs=dict(type='dict'), + comment=dict(), + ) + + argument_spec = dict( + provider=dict(required=True), + state=dict(default='present', choices=['present', 'absent']) + ) + + argument_spec.update(normalize_ib_spec(ib_spec)) + argument_spec.update(WapiModule.provider_spec) + + module = AnsibleModule(argument_spec=argument_spec, + supports_check_mode=True) + + wapi = WapiModule(module) + result = wapi.run(NIOS_DTC_TOPOLOGY, ib_spec) + + module.exit_json(**result) + + +if __name__ == '__main__': + main() diff --git a/ansible_collections/infoblox/nios_modules/requirements.txt b/ansible_collections/infoblox/nios_modules/requirements.txt index be6114543..886ac909a 100644 --- a/ansible_collections/infoblox/nios_modules/requirements.txt +++ b/ansible_collections/infoblox/nios_modules/requirements.txt @@ -1 +1 @@ -infoblox-client +infoblox-client==0.6.0
\ No newline at end of file diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_a_record/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_a_record/tasks/main.yml index b3fa8014d..0955a39f4 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_a_record/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_a_record/tasks/main.yml @@ -1 +1 @@ -- include: nios_a_record_idempotence.yml +- include_tasks: nios_a_record_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_aaaa_record/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_aaaa_record/tasks/main.yml index 2fec2adb2..9096b63d8 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_aaaa_record/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_aaaa_record/tasks/main.yml @@ -1 +1 @@ -- include: nios_aaaa_record_idempotence.yml +- include_tasks: nios_aaaa_record_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_cname_record/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_cname_record/tasks/main.yml index b30f250a5..df8ff758d 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_cname_record/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_cname_record/tasks/main.yml @@ -1 +1 @@ -- include: nios_cname_record_idempotence.yml +- include_tasks: nios_cname_record_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dns_view/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dns_view/tasks/main.yml index 1eb9c07ab..2b9ca3a01 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dns_view/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dns_view/tasks/main.yml @@ -1 +1 @@ -- include: nios_dns_view_idempotence.yml +- include_tasks: nios_dns_view_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/aliases b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/aliases new file mode 100644 index 000000000..b3138dc76 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/aliases @@ -0,0 +1,3 @@ +shippable/cloud/group1 +cloud/nios +destructive diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/defaults/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/meta/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/meta/main.yaml new file mode 100644 index 000000000..1b01a972f --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/meta/main.yaml @@ -0,0 +1,2 @@ +dependencies: + - prepare_nios_tests diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/tasks/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/tasks/main.yaml new file mode 100644 index 000000000..f774bfbfb --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/tasks/main.yaml @@ -0,0 +1 @@ +- include_tasks: nios_dtc_monitor_http_idempotence.yaml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/tasks/nios_dtc_monitor_http_idempotence.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/tasks/nios_dtc_monitor_http_idempotence.yaml new file mode 100644 index 000000000..8b3a4f404 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_http/tasks/nios_dtc_monitor_http_idempotence.yaml @@ -0,0 +1,75 @@ +- name: Clean up the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: absent + provider: "{{ nios_provider }}" + +- name: Create the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: present + provider: "{{ nios_provider }}" + +- name: Clean up the DTC HTTPS monitor + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + state: absent + provider: "{{ nios_provider }}" + +- name: Create a DTC HTTPS monitor + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + port: 443 + secure: true + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_http_create1 + +- name: Recreate a DTC HTTPS monitor + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + port: 443 + secure: true + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_http_create2 + +- name: Add a comment to an existing DTC HTTPS monitor + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_http_update1 + +- name: Readd a comment to an existing DTC HTTPS monitor + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_http_update2 + +- name: Remove a DTC HTTPS monitor from the system + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_http_delete1 + +- name: Reremove a DTC HTTPS monitor from the system + infoblox.nios_modules.nios_dtc_monitor_http: + name: https_monitor + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_http_delete2 + +- name: Verify outcomes + ansible.builtin.assert: + that: + - "dtc_monitor_http_create1.changed" + - "not dtc_monitor_http_create2.changed" + - "dtc_monitor_http_update1.changed" + - "not dtc_monitor_http_update2.changed" + - "dtc_monitor_http_delete1.changed" + - "not dtc_monitor_http_delete2.changed" diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/aliases b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/aliases new file mode 100644 index 000000000..b3138dc76 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/aliases @@ -0,0 +1,3 @@ +shippable/cloud/group1 +cloud/nios +destructive diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/defaults/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/meta/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/meta/main.yaml new file mode 100644 index 000000000..1b01a972f --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/meta/main.yaml @@ -0,0 +1,2 @@ +dependencies: + - prepare_nios_tests diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/tasks/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/tasks/main.yaml new file mode 100644 index 000000000..28bf85bde --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/tasks/main.yaml @@ -0,0 +1 @@ +- include_tasks: nios_dtc_monitor_icmp_idempotence.yaml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/tasks/nios_dtc_monitor_icmp_idempotence.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/tasks/nios_dtc_monitor_icmp_idempotence.yaml new file mode 100644 index 000000000..984aa59a8 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_icmp/tasks/nios_dtc_monitor_icmp_idempotence.yaml @@ -0,0 +1,71 @@ +- name: Clean up the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: absent + provider: "{{ nios_provider }}" + +- name: Create the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: present + provider: "{{ nios_provider }}" + +- name: Clean up the DTC ICMP monitor + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + state: absent + provider: "{{ nios_provider }}" + +- name: Create a DTC ICMP monitor + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_icmp_create1 + +- name: Recreate a DTC ICMP monitor + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_icmp_create2 + +- name: Add a comment to an existing DTC ICMP monitor + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_icmp_update1 + +- name: Readd a comment to an existing DTC ICMP monitor + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_icmp_update2 + +- name: Remove a DTC ICMP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_icmp_delete1 + +- name: Reremove a DTC ICMP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_icmp: + name: icmp_monitor + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_icmp_delete2 + +- name: Verify outcomes + ansible.builtin.assert: + that: + - "dtc_monitor_icmp_create1.changed" + - "not dtc_monitor_icmp_create2.changed" + - "dtc_monitor_icmp_update1.changed" + - "not dtc_monitor_icmp_update2.changed" + - "dtc_monitor_icmp_delete1.changed" + - "not dtc_monitor_icmp_delete2.changed" diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/aliases b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/aliases new file mode 100644 index 000000000..b3138dc76 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/aliases @@ -0,0 +1,3 @@ +shippable/cloud/group1 +cloud/nios +destructive diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/defaults/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/meta/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/meta/main.yaml new file mode 100644 index 000000000..1b01a972f --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/meta/main.yaml @@ -0,0 +1,2 @@ +dependencies: + - prepare_nios_tests diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/tasks/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/tasks/main.yaml new file mode 100644 index 000000000..55829c8dc --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/tasks/main.yaml @@ -0,0 +1 @@ +- include_tasks: nios_dtc_monitor_pdp_idempotence.yaml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/tasks/nios_dtc_monitor_pdp_idempotence.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/tasks/nios_dtc_monitor_pdp_idempotence.yaml new file mode 100644 index 000000000..022f12d76 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_pdp/tasks/nios_dtc_monitor_pdp_idempotence.yaml @@ -0,0 +1,71 @@ +- name: Clean up the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: absent + provider: "{{ nios_provider }}" + +- name: Create the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: present + provider: "{{ nios_provider }}" + +- name: Clean up the DTC PDP monitor + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + state: absent + provider: "{{ nios_provider }}" + +- name: Create a DTC PDP monitor + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_pdp_create1 + +- name: Recreate a DTC PDP monitor + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_pdp_create2 + +- name: Add a comment to an existing DTC PDP monitor + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_pdp_update1 + +- name: Readd a comment to an existing DTC PDP monitor + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_pdp_update2 + +- name: Remove a DTC PDP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_pdp_delete1 + +- name: Reremove a DTC PDP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_pdp: + name: pdp_monitor + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_pdp_delete2 + +- name: Verify outcomes + ansible.builtin.assert: + that: + - "dtc_monitor_pdp_create1.changed" + - "not dtc_monitor_pdp_create2.changed" + - "dtc_monitor_pdp_update1.changed" + - "not dtc_monitor_pdp_update2.changed" + - "dtc_monitor_pdp_delete1.changed" + - "not dtc_monitor_pdp_delete2.changed" diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/aliases b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/aliases new file mode 100644 index 000000000..b3138dc76 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/aliases @@ -0,0 +1,3 @@ +shippable/cloud/group1 +cloud/nios +destructive diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/defaults/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/meta/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/meta/main.yaml new file mode 100644 index 000000000..1b01a972f --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/meta/main.yaml @@ -0,0 +1,2 @@ +dependencies: + - prepare_nios_tests diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/tasks/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/tasks/main.yaml new file mode 100644 index 000000000..e5e1b33f5 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/tasks/main.yaml @@ -0,0 +1 @@ +- include_tasks: nios_dtc_monitor_sip_idempotence.yaml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/tasks/nios_dtc_monitor_sip_idempotence.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/tasks/nios_dtc_monitor_sip_idempotence.yaml new file mode 100644 index 000000000..68187a12b --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_sip/tasks/nios_dtc_monitor_sip_idempotence.yaml @@ -0,0 +1,71 @@ +- name: Clean up the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: absent + provider: "{{ nios_provider }}" + +- name: Create the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: present + provider: "{{ nios_provider }}" + +- name: Clean up the DTC SIP monitor + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + state: absent + provider: "{{ nios_provider }}" + +- name: Create a DTC SIP monitor + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_sip_create1 + +- name: Recreate a DTC SIP monitor + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_sip_create2 + +- name: Add a comment to an existing DTC SIP monitor + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_sip_update1 + +- name: Readd a comment to an existing DTC SIP monitor + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_sip_update2 + +- name: Remove a DTC SIP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_sip_delete1 + +- name: Reremove a DTC SIP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_sip: + name: sip_monitor + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_sip_delete2 + +- name: Verify outcomes + ansible.builtin.assert: + that: + - "dtc_monitor_sip_create1.changed" + - "not dtc_monitor_sip_create2.changed" + - "dtc_monitor_sip_update1.changed" + - "not dtc_monitor_sip_update2.changed" + - "dtc_monitor_sip_delete1.changed" + - "not dtc_monitor_sip_delete2.changed" diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/aliases b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/aliases new file mode 100644 index 000000000..b3138dc76 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/aliases @@ -0,0 +1,3 @@ +shippable/cloud/group1 +cloud/nios +destructive diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/defaults/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/meta/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/meta/main.yaml new file mode 100644 index 000000000..1b01a972f --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/meta/main.yaml @@ -0,0 +1,2 @@ +dependencies: + - prepare_nios_tests diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/tasks/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/tasks/main.yaml new file mode 100644 index 000000000..02c852d38 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/tasks/main.yaml @@ -0,0 +1 @@ +- include_tasks: nios_dtc_monitor_snmp_idempotence.yaml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/tasks/nios_dtc_monitor_snmp_idempotence.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/tasks/nios_dtc_monitor_snmp_idempotence.yaml new file mode 100644 index 000000000..12b560470 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_snmp/tasks/nios_dtc_monitor_snmp_idempotence.yaml @@ -0,0 +1,71 @@ +- name: Clean up the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: absent + provider: "{{ nios_provider }}" + +- name: Create the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: present + provider: "{{ nios_provider }}" + +- name: Clean up the DTC SNMP monitor + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + state: absent + provider: "{{ nios_provider }}" + +- name: Create a DTC SNMP monitor + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_snmp_create1 + +- name: Recreate a DTC SNMP monitor + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_snmp_create2 + +- name: Add a comment to an existing DTC SNMP monitor + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_snmp_update1 + +- name: Readd a comment to an existing DTC SNMP monitor + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_snmp_update2 + +- name: Remove a DTC SNMP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_snmp_delete1 + +- name: Reremove a DTC SNMP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_snmp: + name: snmp_monitor + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_snmp_delete2 + +- name: Verify outcomes + ansible.builtin.assert: + that: + - "dtc_monitor_snmp_create1.changed" + - "not dtc_monitor_snmp_create2.changed" + - "dtc_monitor_snmp_update1.changed" + - "not dtc_monitor_snmp_update2.changed" + - "dtc_monitor_snmp_delete1.changed" + - "not dtc_monitor_snmp_delete2.changed" diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/aliases b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/aliases new file mode 100644 index 000000000..b3138dc76 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/aliases @@ -0,0 +1,3 @@ +shippable/cloud/group1 +cloud/nios +destructive diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/defaults/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/meta/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/meta/main.yaml new file mode 100644 index 000000000..1b01a972f --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/meta/main.yaml @@ -0,0 +1,2 @@ +dependencies: + - prepare_nios_tests diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/tasks/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/tasks/main.yaml new file mode 100644 index 000000000..e24c82651 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/tasks/main.yaml @@ -0,0 +1 @@ +- include_tasks: nios_dtc_monitor_tcp_idempotence.yaml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/tasks/nios_dtc_monitor_tcp_idempotence.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/tasks/nios_dtc_monitor_tcp_idempotence.yaml new file mode 100644 index 000000000..1c025b93b --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_monitor_tcp/tasks/nios_dtc_monitor_tcp_idempotence.yaml @@ -0,0 +1,78 @@ +- name: Clean up the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: absent + provider: "{{ nios_provider }}" + +- name: Create the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: present + provider: "{{ nios_provider }}" + +- name: Clean up the DTC TCP monitor + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + state: absent + provider: "{{ nios_provider }}" + +- name: Create a DTC TCP monitor + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_tcp_create1 + +- name: Recreate a DTC TCP monitor + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_tcp_create2 + +- name: Add a comment to an existing DTC TCP monitor + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_tcp_update1 + +- name: Readd a comment to an existing DTC TCP monitor + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_monitor_tcp_update2 + +- name: Remove a DTC TCP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_tcp_delete1 + +- name: Reremove a DTC TCP monitor from the system + infoblox.nios_modules.nios_dtc_monitor_tcp: + name: tcp_monitor + port: 8080 + state: absent + provider: "{{ nios_provider }}" + register: dtc_monitor_tcp_delete2 + +- name: Verify outcomes + ansible.builtin.assert: + that: + - "dtc_monitor_tcp_create1.changed" + - "not dtc_monitor_tcp_create2.changed" + - "dtc_monitor_tcp_update1.changed" + - "not dtc_monitor_tcp_update2.changed" + - "dtc_monitor_tcp_delete1.changed" + - "not dtc_monitor_tcp_delete2.changed" diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/aliases b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/aliases new file mode 100644 index 000000000..b3138dc76 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/aliases @@ -0,0 +1,3 @@ +shippable/cloud/group1 +cloud/nios +destructive diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/defaults/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/meta/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/meta/main.yaml new file mode 100644 index 000000000..1b01a972f --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/meta/main.yaml @@ -0,0 +1,2 @@ +dependencies: + - prepare_nios_tests diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/tasks/main.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/tasks/main.yaml new file mode 100644 index 000000000..8873ef552 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/tasks/main.yaml @@ -0,0 +1 @@ +- include_tasks: nios_dtc_topology_idempotence.yaml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/tasks/nios_dtc_topology_idempotence.yaml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/tasks/nios_dtc_topology_idempotence.yaml new file mode 100644 index 000000000..a24a9c31a --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_dtc_topology/tasks/nios_dtc_topology_idempotence.yaml @@ -0,0 +1,122 @@ +- name: Clean up the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: absent + provider: "{{ nios_provider }}" + +- name: Create the parent object + infoblox.nios_modules.nios_zone: + name: ansible.com + state: present + provider: "{{ nios_provider }}" + +- name: Clean up the DTC Topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + state: absent + provider: "{{ nios_provider }}" + +- name: Clean up the DTC pool + infoblox.nios_modules.nios_dtc_pool: + name: web_pool + lb_preferred_method: ROUND_ROBIN + state: absent + provider: "{{ nios_provider }}" + +- name: Clean up the DTC server + infoblox.nios_modules.nios_dtc_server: + name: Server1 + host: 192.168.10.1 + state: absent + provider: "{{ nios_provider }}" + +- name: Create DTC server + infoblox.nios_modules.nios_dtc_server: + name: Server1 + host: 192.168.10.1 + comment: Created with Ansible + state: present + provider: "{{ nios_provider }}" + +- name: Create DTC Pool + infoblox.nios_modules.nios_dtc_pool: + name: web_pool + lb_preferred_method: ROUND_ROBIN + servers: + - server: Server1 + ratio: 1 + comment: Created with Ansible + state: present + provider: "{{ nios_provider }}" + +- name: Create a DTC Topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + rules: + - dest_type: POOL + destination_link: web_pool + return_type: REGULAR + state: present + provider: "{{ nios_provider }}" + register: dtc_topology_create1 + +- name: Recreate a DTC Topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + state: present + provider: "{{ nios_provider }}" + register: dtc_topology_create2 + +- name: Add a comment to an existing DTC Topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_topology_update1 + +- name: Readd a comment to an existing DTC Topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + comment: this is a test comment + state: present + provider: "{{ nios_provider }}" + register: dtc_topology_update2 + +- name: Remove a DTC Topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + state: absent + provider: "{{ nios_provider }}" + register: dtc_topology_delete1 + +- name: Reremove a DTC Topology + infoblox.nios_modules.nios_dtc_topology: + name: a_topology + state: absent + provider: "{{ nios_provider }}" + register: dtc_topology_delete2 + +- name: Remove the DTC pool + infoblox.nios_modules.nios_dtc_pool: + name: web_pool + lb_preferred_method: ROUND_ROBIN + state: absent + provider: "{{ nios_provider }}" + +- name: Remove the DTC server + infoblox.nios_modules.nios_dtc_server: + name: Server1 + host: 192.168.10.1 + state: absent + provider: "{{ nios_provider }}" + +- name: Verify outcomes + ansible.builtin.assert: + that: + - "dtc_topology_create1.changed" + - "not dtc_topology_create2.changed" + - "dtc_topology_update1.changed" + - "not dtc_topology_update2.changed" + - "dtc_topology_delete1.changed" + - "not dtc_topology_delete2.changed" diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_host_record/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_host_record/tasks/main.yml index 2f1dcc55e..3c626f557 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_host_record/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_host_record/tasks/main.yml @@ -1 +1 @@ -- include: nios_host_record_idempotence.yml +- include_tasks: nios_host_record_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_mx_record/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_mx_record/tasks/main.yml index fe687173b..ebffb41ac 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_mx_record/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_mx_record/tasks/main.yml @@ -1 +1 @@ -- include: nios_mx_record_idempotence.yml +- include_tasks: nios_mx_record_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_naptr_record/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_naptr_record/tasks/main.yml index a22a8018c..ed94e8a3f 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_naptr_record/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_naptr_record/tasks/main.yml @@ -1 +1 @@ -- include: nios_naptr_record_idempotence.yml +- include_tasks: nios_naptr_record_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_network/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_network/tasks/main.yml index c147af8f4..040cb8a8e 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_network/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_network/tasks/main.yml @@ -1 +1 @@ -- include: nios_network_idempotence.yml +- include_tasks: nios_network_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_network_view/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_network_view/tasks/main.yml index 97e87148b..0acf4a4c3 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_network_view/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_network_view/tasks/main.yml @@ -1 +1 @@ -- include: nios_network_view_idempotence.yml +- include_tasks: nios_network_view_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_ptr_record/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_ptr_record/tasks/main.yml index ec33e8f53..29fbb5fe5 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_ptr_record/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_ptr_record/tasks/main.yml @@ -1 +1 @@ -- include: nios_ptr_record_idempotence.yml +- include_tasks: nios_ptr_record_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_srv_record/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_srv_record/tasks/main.yml index 1c8476732..4e4dd1660 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_srv_record/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_srv_record/tasks/main.yml @@ -1 +1 @@ -- include: nios_srv_record_idempotence.yml +- include_tasks: nios_srv_record_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_txt_record/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_txt_record/tasks/main.yml index e15b4c55d..0acbc091f 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_txt_record/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_txt_record/tasks/main.yml @@ -1 +1 @@ -- include: nios_txt_record_idempotence.yml +- include_tasks: nios_txt_record_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_zone/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_zone/tasks/main.yml index f066edcdb..cb335970a 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_zone/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/nios_zone/tasks/main.yml @@ -1 +1 @@ -- include: nios_zone_idempotence.yml +- include_tasks: nios_zone_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/integration/targets/prepare_nios_tests/tasks/main.yml b/ansible_collections/infoblox/nios_modules/tests/integration/targets/prepare_nios_tests/tasks/main.yml index 2a3092f3a..e3c03fb33 100644 --- a/ansible_collections/infoblox/nios_modules/tests/integration/targets/prepare_nios_tests/tasks/main.yml +++ b/ansible_collections/infoblox/nios_modules/tests/integration/targets/prepare_nios_tests/tasks/main.yml @@ -1 +1 @@ -- include: prepare_nios_tests_idempotence.yml +- include_tasks: prepare_nios_tests_idempotence.yml diff --git a/ansible_collections/infoblox/nios_modules/tests/requirements.txt b/ansible_collections/infoblox/nios_modules/tests/requirements.txt index 7f835e9f4..708b417d1 100644 --- a/ansible_collections/infoblox/nios_modules/tests/requirements.txt +++ b/ansible_collections/infoblox/nios_modules/tests/requirements.txt @@ -4,6 +4,6 @@ pytest-xdist mock pytest-mock pytest-cov==2.8.0 -coverage +coverage==7.3.2 pygobject launchpadlib diff --git a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/module_utils/test_api.py b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/module_utils/test_api.py index 9636c05bb..18d02fafa 100644 --- a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/module_utils/test_api.py +++ b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/module_utils/test_api.py @@ -5,8 +5,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type import copy - -from ansible_collections.infoblox.nios_modules.tests.unit.compat import unittest +try: + from ansible_collections.infoblox.nios_modules.tests.unit.compat import unittest +except ImportError: + import unittest from ansible_collections.infoblox.nios_modules.tests.unit.compat.mock import patch, MagicMock, Mock from ansible_collections.infoblox.nios_modules.plugins.module_utils import api diff --git a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_http.py b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_http.py new file mode 100644 index 000000000..d053f0bfe --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_http.py @@ -0,0 +1,136 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + + +from ansible_collections.infoblox.nios_modules.plugins.modules import nios_dtc_monitor_http +from ansible_collections.infoblox.nios_modules.plugins.module_utils import api +from ansible_collections.infoblox.nios_modules.tests.unit.compat.mock import patch, MagicMock, Mock +from .test_nios_module import TestNiosModule, load_fixture + + +class TestNiosDtcHttpMonitorModule(TestNiosModule): + + module = nios_dtc_monitor_http + + def setUp(self): + super(TestNiosDtcHttpMonitorModule, self).setUp() + self.module = MagicMock(name='ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_http.WapiModule') + self.module.check_mode = False + self.module.params = {'provider': None} + self.mock_wapi = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_http.WapiModule') + self.exec_command = self.mock_wapi.start() + self.mock_wapi_run = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_http.WapiModule.run') + self.mock_wapi_run.start() + self.load_config = self.mock_wapi_run.start() + self.mock_check_type_dict = patch('ansible.module_utils.common.validation.check_type_dict') + self.mock_check_type_dict_obj = self.mock_check_type_dict.start() + + def tearDown(self): + super(TestNiosDtcHttpMonitorModule, self).tearDown() + self.mock_wapi.stop() + self.mock_wapi_run.stop() + self.mock_check_type_dict.stop() + + def _get_wapi(self, test_object): + wapi = api.WapiModule(self.module) + wapi.get_object = Mock(name='get_object', return_value=test_object) + wapi.create_object = Mock(name='create_object') + wapi.update_object = Mock(name='update_object') + wapi.delete_object = Mock(name='delete_object') + return wapi + + def load_fixtures(self, commands=None): + self.exec_command.return_value = (0, load_fixture('nios_result.txt').strip(), None) + self.load_config.return_value = dict(diff=None, session='session') + + def test_nios_dtc_monitor_http_create(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'https_monitor', + 'port': 443, 'secure': True, 'comment': None, 'extattrs': None} + + test_object = None + + test_spec = { + "name": {"ib_req": True}, + "port": {}, + "secure": {}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.create_object.assert_called_once_with('testobject', {'name': 'https_monitor', + 'port': 443, 'secure': True}) + + def test_nios_dtc_monitor_http_update_comment(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'https_monitor', + 'comment': 'updated comment', 'extattrs': None} + + test_object = [ + { + "comment": "test comment", + "_ref": "dtc:monitor:http/ZG5zLm5ldHdvcmtfdmlldyQw:default/true", + "name": "https_monitor", + "port": 443, + "secure": True, + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + + def test_nios_dtc_monitor_http_remove(self): + self.module.params = {'provider': None, 'state': 'absent', 'name': 'https_monitor', + 'comment': None, 'extattrs': None} + + ref = "dtc:monitor:http/ZG5zLm5ldHdvcmtfdmlldyQw:default/false" + + test_object = [ + { + "comment": "test comment", + "_ref": ref, + "name": "https_monitor", + "port": 443, + "secure": True, + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.delete_object.assert_called_once_with(ref) diff --git a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_icmp.py b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_icmp.py new file mode 100644 index 000000000..fb4b300dd --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_icmp.py @@ -0,0 +1,129 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + + +from ansible_collections.infoblox.nios_modules.plugins.modules import nios_dtc_monitor_icmp +from ansible_collections.infoblox.nios_modules.plugins.module_utils import api +from ansible_collections.infoblox.nios_modules.tests.unit.compat.mock import patch, MagicMock, Mock +from .test_nios_module import TestNiosModule, load_fixture + + +class TestNiosDtcIcmpMonitorModule(TestNiosModule): + + module = nios_dtc_monitor_icmp + + def setUp(self): + super(TestNiosDtcIcmpMonitorModule, self).setUp() + self.module = MagicMock(name='ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_icmp.WapiModule') + self.module.check_mode = False + self.module.params = {'provider': None} + self.mock_wapi = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_icmp.WapiModule') + self.exec_command = self.mock_wapi.start() + self.mock_wapi_run = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_icmp.WapiModule.run') + self.mock_wapi_run.start() + self.load_config = self.mock_wapi_run.start() + self.mock_check_type_dict = patch('ansible.module_utils.common.validation.check_type_dict') + self.mock_check_type_dict_obj = self.mock_check_type_dict.start() + + def tearDown(self): + super(TestNiosDtcIcmpMonitorModule, self).tearDown() + self.mock_wapi.stop() + self.mock_wapi_run.stop() + self.mock_check_type_dict.stop() + + def _get_wapi(self, test_object): + wapi = api.WapiModule(self.module) + wapi.get_object = Mock(name='get_object', return_value=test_object) + wapi.create_object = Mock(name='create_object') + wapi.update_object = Mock(name='update_object') + wapi.delete_object = Mock(name='delete_object') + return wapi + + def load_fixtures(self, commands=None): + self.exec_command.return_value = (0, load_fixture('nios_result.txt').strip(), None) + self.load_config.return_value = dict(diff=None, session='session') + + def test_nios_dtc_monitor_icmp_create(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'icmp_monitor', + 'comment': None, 'extattrs': None} + + test_object = None + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.create_object.assert_called_once_with('testobject', {'name': 'icmp_monitor'}) + + def test_nios_dtc_monitor_icmp_update_comment(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'icmp_monitor', + 'comment': 'updated comment', 'extattrs': None} + + test_object = [ + { + "comment": "test comment", + "_ref": "dtc:monitor:icmp/ZG5zLm5ldHdvcmtfdmlldyQw:default/true", + "name": "icmp_monitor", + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + + def test_nios_dtc_monitor_icmp_remove(self): + self.module.params = {'provider': None, 'state': 'absent', 'name': 'icmp_monitor', + 'comment': None, 'extattrs': None} + + ref = "dtc:monitor:icmp/ZG5zLm5ldHdvcmtfdmlldyQw:default/false" + + test_object = [ + { + "comment": "test comment", + "_ref": ref, + "name": "icmp_monitor", + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.delete_object.assert_called_once_with(ref) diff --git a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_pdp.py b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_pdp.py new file mode 100644 index 000000000..802637840 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_pdp.py @@ -0,0 +1,131 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + + +from ansible_collections.infoblox.nios_modules.plugins.modules import nios_dtc_monitor_pdp +from ansible_collections.infoblox.nios_modules.plugins.module_utils import api +from ansible_collections.infoblox.nios_modules.tests.unit.compat.mock import patch, MagicMock, Mock +from .test_nios_module import TestNiosModule, load_fixture + + +class TestNiosDtcTcpMonitorModule(TestNiosModule): + + module = nios_dtc_monitor_pdp + + def setUp(self): + super(TestNiosDtcTcpMonitorModule, self).setUp() + self.module = MagicMock(name='ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_pdp.WapiModule') + self.module.check_mode = False + self.module.params = {'provider': None} + self.mock_wapi = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_pdp.WapiModule') + self.exec_command = self.mock_wapi.start() + self.mock_wapi_run = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_pdp.WapiModule.run') + self.mock_wapi_run.start() + self.load_config = self.mock_wapi_run.start() + self.mock_check_type_dict = patch('ansible.module_utils.common.validation.check_type_dict') + self.mock_check_type_dict_obj = self.mock_check_type_dict.start() + + def tearDown(self): + super(TestNiosDtcTcpMonitorModule, self).tearDown() + self.mock_wapi.stop() + self.mock_wapi_run.stop() + self.mock_check_type_dict.stop() + + def _get_wapi(self, test_object): + wapi = api.WapiModule(self.module) + wapi.get_object = Mock(name='get_object', return_value=test_object) + wapi.create_object = Mock(name='create_object') + wapi.update_object = Mock(name='update_object') + wapi.delete_object = Mock(name='delete_object') + return wapi + + def load_fixtures(self, commands=None): + self.exec_command.return_value = (0, load_fixture('nios_result.txt').strip(), None) + self.load_config.return_value = dict(diff=None, session='session') + + def test_nios_dtc_monitor_pdp_create(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'pdp_monitor', + 'comment': None, 'extattrs': None} + + test_object = None + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.create_object.assert_called_once_with('testobject', {'name': 'pdp_monitor'}) + + def test_nios_dtc_monitor_pdp_update_comment(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'pdp_monitor', + 'comment': 'updated comment', 'extattrs': None} + + test_object = [ + { + "comment": "test comment", + "_ref": "dtc:monitor:pdp/ZG5zLm5ldHdvcmtfdmlldyQw:default/true", + "name": "pdp_monitor", + "port": 2123, + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + + def test_nios_dtc_monitor_pdp_remove(self): + self.module.params = {'provider': None, 'state': 'absent', 'name': 'pdp_monitor', + 'comment': None, 'extattrs': None} + + ref = "dtc:monitor:pdp/ZG5zLm5ldHdvcmtfdmlldyQw:default/false" + + test_object = [ + { + "comment": "test comment", + "_ref": ref, + "name": "pdp_monitor", + "port": 2123, + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.delete_object.assert_called_once_with(ref) diff --git a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_sip.py b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_sip.py new file mode 100644 index 000000000..90b86bfa5 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_sip.py @@ -0,0 +1,129 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + + +from ansible_collections.infoblox.nios_modules.plugins.modules import nios_dtc_monitor_sip +from ansible_collections.infoblox.nios_modules.plugins.module_utils import api +from ansible_collections.infoblox.nios_modules.tests.unit.compat.mock import patch, MagicMock, Mock +from .test_nios_module import TestNiosModule, load_fixture + + +class TestNiosDtcSipMonitorModule(TestNiosModule): + + module = nios_dtc_monitor_sip + + def setUp(self): + super(TestNiosDtcSipMonitorModule, self).setUp() + self.module = MagicMock(name='ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_sip.WapiModule') + self.module.check_mode = False + self.module.params = {'provider': None} + self.mock_wapi = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_sip.WapiModule') + self.exec_command = self.mock_wapi.start() + self.mock_wapi_run = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_sip.WapiModule.run') + self.mock_wapi_run.start() + self.load_config = self.mock_wapi_run.start() + self.mock_check_type_dict = patch('ansible.module_utils.common.validation.check_type_dict') + self.mock_check_type_dict_obj = self.mock_check_type_dict.start() + + def tearDown(self): + super(TestNiosDtcSipMonitorModule, self).tearDown() + self.mock_wapi.stop() + self.mock_wapi_run.stop() + self.mock_check_type_dict.stop() + + def _get_wapi(self, test_object): + wapi = api.WapiModule(self.module) + wapi.get_object = Mock(name='get_object', return_value=test_object) + wapi.create_object = Mock(name='create_object') + wapi.update_object = Mock(name='update_object') + wapi.delete_object = Mock(name='delete_object') + return wapi + + def load_fixtures(self, commands=None): + self.exec_command.return_value = (0, load_fixture('nios_result.txt').strip(), None) + self.load_config.return_value = dict(diff=None, session='session') + + def test_nios_dtc_monitor_sip_create(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'sip_monitor', + 'comment': None, 'extattrs': None} + + test_object = None + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.create_object.assert_called_once_with('testobject', {'name': 'sip_monitor'}) + + def test_nios_dtc_monitor_sip_update_comment(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'sip_monitor', + 'comment': 'updated comment', 'extattrs': None} + + test_object = [ + { + "comment": "test comment", + "_ref": "dtc:monitor:sip/ZG5zLm5ldHdvcmtfdmlldyQw:default/true", + "name": "sip_monitor", + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + + def test_nios_dtc_monitor_sip_remove(self): + self.module.params = {'provider': None, 'state': 'absent', 'name': 'sip_monitor', + 'comment': None, 'extattrs': None} + + ref = "dtc:monitor:sip/ZG5zLm5ldHdvcmtfdmlldyQw:default/false" + + test_object = [ + { + "comment": "test comment", + "_ref": ref, + "name": "sip_monitor", + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.delete_object.assert_called_once_with(ref) diff --git a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_snmp.py b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_snmp.py new file mode 100644 index 000000000..838a35ebd --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_snmp.py @@ -0,0 +1,143 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + + +from ansible_collections.infoblox.nios_modules.plugins.modules import nios_dtc_monitor_snmp +from ansible_collections.infoblox.nios_modules.plugins.module_utils import api +from ansible_collections.infoblox.nios_modules.tests.unit.compat.mock import patch, MagicMock, Mock +from .test_nios_module import TestNiosModule, load_fixture + + +class TestNiosDtcSnmpMonitorModule(TestNiosModule): + + module = nios_dtc_monitor_snmp + + def setUp(self): + super(TestNiosDtcSnmpMonitorModule, self).setUp() + self.module = MagicMock(name='ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_snmp.WapiModule') + self.module.check_mode = False + self.module.params = {'provider': None} + self.mock_wapi = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_snmp.WapiModule') + self.exec_command = self.mock_wapi.start() + self.mock_wapi_run = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_snmp.WapiModule.run') + self.mock_wapi_run.start() + self.load_config = self.mock_wapi_run.start() + self.mock_check_type_dict = patch('ansible.module_utils.common.validation.check_type_dict') + self.mock_check_type_dict_obj = self.mock_check_type_dict.start() + + def tearDown(self): + super(TestNiosDtcSnmpMonitorModule, self).tearDown() + self.mock_wapi.stop() + self.mock_wapi_run.stop() + self.mock_check_type_dict.stop() + + def _get_wapi(self, test_object): + wapi = api.WapiModule(self.module) + wapi.get_object = Mock(name='get_object', return_value=test_object) + wapi.create_object = Mock(name='create_object') + wapi.update_object = Mock(name='update_object') + wapi.delete_object = Mock(name='delete_object') + return wapi + + def load_fixtures(self, commands=None): + self.exec_command.return_value = (0, load_fixture('nios_result.txt').strip(), None) + self.load_config.return_value = dict(diff=None, session='session') + + def test_nios_dtc_monitor_snmp_create(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'snmp_monitor', + 'comment': None, 'extattrs': None} + + test_object = None + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.create_object.assert_called_once_with('testobject', {'name': 'snmp_monitor'}) + + def test_nios_dtc_monitor_snmp_update_comment(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'snmp_monitor', + 'comment': 'updated comment', 'extattrs': None} + + test_object = [ + { + "comment": "test comment", + "_ref": "dtc:monitor:snmp/ZG5zLm5ldHdvcmtfdmlldyQw:default/true", + "name": "snmp_monitor", + "port": 161, + "version": "V2C", + "community": "public", + "interval": 5, + "retry_down": 1, + "retry_up": 1, + "timeout": 15, + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + + def test_nios_dtc_monitor_snmp_remove(self): + self.module.params = {'provider': None, 'state': 'absent', 'name': 'snmp_monitor', + 'comment': None, 'extattrs': None} + + ref = "dtc:monitor:snmp/ZG5zLm5ldHdvcmtfdmlldyQw:default/false" + + test_object = [ + { + "comment": "test comment", + "_ref": ref, + "name": "snmp_monitor", + "port": 161, + "version": "V2C", + "community": "public", + "interval": 5, + "retry_down": 1, + "retry_up": 1, + "timeout": 15, + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.delete_object.assert_called_once_with(ref) diff --git a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_tcp.py b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_tcp.py new file mode 100644 index 000000000..072ba1a37 --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_monitor_tcp.py @@ -0,0 +1,133 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + + +from ansible_collections.infoblox.nios_modules.plugins.modules import nios_dtc_monitor_tcp +from ansible_collections.infoblox.nios_modules.plugins.module_utils import api +from ansible_collections.infoblox.nios_modules.tests.unit.compat.mock import patch, MagicMock, Mock +from .test_nios_module import TestNiosModule, load_fixture + + +class TestNiosDtcTcpMonitorModule(TestNiosModule): + + module = nios_dtc_monitor_tcp + + def setUp(self): + super(TestNiosDtcTcpMonitorModule, self).setUp() + self.module = MagicMock(name='ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_tcp.WapiModule') + self.module.check_mode = False + self.module.params = {'provider': None} + self.mock_wapi = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_tcp.WapiModule') + self.exec_command = self.mock_wapi.start() + self.mock_wapi_run = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_monitor_tcp.WapiModule.run') + self.mock_wapi_run.start() + self.load_config = self.mock_wapi_run.start() + self.mock_check_type_dict = patch('ansible.module_utils.common.validation.check_type_dict') + self.mock_check_type_dict_obj = self.mock_check_type_dict.start() + + def tearDown(self): + super(TestNiosDtcTcpMonitorModule, self).tearDown() + self.mock_wapi.stop() + self.mock_wapi_run.stop() + self.mock_check_type_dict.stop() + + def _get_wapi(self, test_object): + wapi = api.WapiModule(self.module) + wapi.get_object = Mock(name='get_object', return_value=test_object) + wapi.create_object = Mock(name='create_object') + wapi.update_object = Mock(name='update_object') + wapi.delete_object = Mock(name='delete_object') + return wapi + + def load_fixtures(self, commands=None): + self.exec_command.return_value = (0, load_fixture('nios_result.txt').strip(), None) + self.load_config.return_value = dict(diff=None, session='session') + + def test_nios_dtc_monitor_tcp_create(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'tcp_monitor', + 'port': 8080, 'comment': None, 'extattrs': None} + + test_object = None + + test_spec = { + "name": {"ib_req": True}, + "port": {}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.create_object.assert_called_once_with('testobject', {'name': 'tcp_monitor', + 'port': 8080}) + + def test_nios_dtc_monitor_tcp_update_comment(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'tcp_monitor', + 'comment': 'updated comment', 'extattrs': None} + + test_object = [ + { + "comment": "test comment", + "_ref": "dtc:monitor:tcp/ZG5zLm5ldHdvcmtfdmlldyQw:default/true", + "name": "tcp_monitor", + "port": 8080, + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + + def test_nios_dtc_monitor_tcp_remove(self): + self.module.params = {'provider': None, 'state': 'absent', 'name': 'tcp_monitor', + 'comment': None, 'extattrs': None} + + ref = "dtc:monitor:tcp/ZG5zLm5ldHdvcmtfdmlldyQw:default/false" + + test_object = [ + { + "comment": "test comment", + "_ref": ref, + "name": "tcp_monitor", + "port": 8080, + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.delete_object.assert_called_once_with(ref) diff --git a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_topology.py b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_topology.py new file mode 100644 index 000000000..d0ee4c69a --- /dev/null +++ b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/test_nios_dtc_topology.py @@ -0,0 +1,156 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + + +from ansible_collections.infoblox.nios_modules.plugins.modules import nios_dtc_topology +from ansible_collections.infoblox.nios_modules.plugins.module_utils import api +from ansible_collections.infoblox.nios_modules.tests.unit.compat.mock import patch, MagicMock, Mock +from .test_nios_module import TestNiosModule, load_fixture + + +class TestNiosDtcTopologyModule(TestNiosModule): + + module = nios_dtc_topology + + def setUp(self): + super(TestNiosDtcTopologyModule, self).setUp() + self.module = MagicMock(name='ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_topology.WapiModule') + self.module.check_mode = False + self.module.params = {'provider': None} + self.mock_wapi = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_topology.WapiModule') + self.exec_command = self.mock_wapi.start() + self.mock_wapi_run = patch('ansible_collections.infoblox.nios_modules.plugins.modules.nios_dtc_topology.WapiModule.run') + self.mock_wapi_run.start() + self.load_config = self.mock_wapi_run.start() + self.mock_check_type_dict = patch('ansible.module_utils.common.validation.check_type_dict') + self.mock_check_type_dict_obj = self.mock_check_type_dict.start() + + def tearDown(self): + super(TestNiosDtcTopologyModule, self).tearDown() + self.mock_wapi.stop() + self.mock_wapi_run.stop() + self.mock_check_type_dict.stop() + + def _get_wapi(self, test_object): + wapi = api.WapiModule(self.module) + wapi.get_object = Mock(name='get_object', return_value=test_object) + wapi.create_object = Mock(name='create_object') + wapi.update_object = Mock(name='update_object') + wapi.delete_object = Mock(name='delete_object') + return wapi + + def load_fixtures(self, commands=None): + self.exec_command.return_value = (0, load_fixture('nios_result.txt').strip(), None) + self.load_config.return_value = dict(diff=None, session='session') + + def test_nios_dtc_topology_create(self): + self.module.params = { + 'provider': None, + 'state': 'present', + 'name': 'a_topology', + 'rules': [{ + 'dest_type': 'POOL', + 'destination_link': 'web_pool', + 'return_type': 'REGULAR' + }], + 'comment': None, + 'extattrs': None + } + + test_object = None + + test_spec = { + "name": {"ib_req": True}, + "rules": {}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.create_object.assert_called_once_with( + 'testobject', + { + 'name': 'a_topology', + 'rules': [{ + 'dest_type': 'POOL', + 'destination_link': 'web_pool', + 'return_type': 'REGULAR' + }] + } + ) + + def test_nios_dtc_topology_update_comment(self): + self.module.params = {'provider': None, 'state': 'present', 'name': 'a_topology', + 'comment': 'updated comment', 'extattrs': None} + + test_object = [ + { + '_ref': 'dtc:topology/ZG5zLm5ldHdvcmtfdmlldyQw:default/true', + 'name': 'a_topology', + 'rules': [{ + '_ref': 'dtc:topology:rule/ZG5zLm5ldHdvcmtfdmlldyQw:a_topology/web_pool' + }], + 'comment': "test comment", + 'extattrs': {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + + def test_nios_dtc_topology_remove(self): + self.module.params = {'provider': None, 'state': 'absent', 'name': 'a_topology', + 'comment': None, 'extattrs': None} + + ref = "dtc:topology/ZG5zLm5ldHdvcmtfdmlldyQw:default/false" + + test_object = [ + { + "comment": {}, + "_ref": ref, + "name": "a_topology", + 'rules': [{ + '_ref': 'dtc:topology:rule/ZG5zLm5ldHdvcmtfdmlldyQw:a_topology/web_pool' + }], + "extattrs": {} + } + ] + + test_spec = { + "name": {"ib_req": True}, + "comment": {}, + "extattrs": {} + } + + wapi = self._get_wapi(test_object) + res = wapi.run('testobject', test_spec) + + self.assertTrue(res['changed']) + wapi.delete_object.assert_called_once_with(ref) diff --git a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/utils.py b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/utils.py index 6a00fd25f..15e7ec14d 100644 --- a/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/utils.py +++ b/ansible_collections/infoblox/nios_modules/tests/unit/plugins/modules/utils.py @@ -4,8 +4,10 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type import json - -from ansible_collections.community.general.tests.unit.compat import unittest +try: + from ansible_collections.community.general.tests.unit.compat import unittest +except ImportError: + import unittest from ansible_collections.community.general.tests.unit.compat.mock import patch from ansible.module_utils import basic from ansible.module_utils.common.text.converters import to_bytes diff --git a/ansible_collections/infoblox/nios_modules/tests/unit/requirements.txt b/ansible_collections/infoblox/nios_modules/tests/unit/requirements.txt index a0a2eb7ec..fc67ca9e7 100644 --- a/ansible_collections/infoblox/nios_modules/tests/unit/requirements.txt +++ b/ansible_collections/infoblox/nios_modules/tests/unit/requirements.txt @@ -5,4 +5,5 @@ pytest-xdist mock pytest-mock pytest-cov -coverage==4.5.4 +coverage==7.3.2 + |