summaryrefslogtreecommitdiffstats
path: root/ansible_collections/ngine_io
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-18 05:52:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-18 05:52:22 +0000
commit38b7c80217c4e72b1d8988eb1e60bb6e77334114 (patch)
tree356e9fd3762877d07cde52d21e77070aeff7e789 /ansible_collections/ngine_io
parentAdding upstream version 7.7.0+dfsg. (diff)
downloadansible-38b7c80217c4e72b1d8988eb1e60bb6e77334114.tar.xz
ansible-38b7c80217c4e72b1d8988eb1e60bb6e77334114.zip
Adding upstream version 9.4.0+dfsg.upstream/9.4.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/ngine_io')
-rw-r--r--ansible_collections/ngine_io/exoscale/.github/dependabot.yml (renamed from ansible_collections/ngine_io/vultr/.github/dependabot.yml)0
-rw-r--r--ansible_collections/ngine_io/exoscale/.github/workflows/publish.yml35
-rw-r--r--ansible_collections/ngine_io/exoscale/.github/workflows/sanity.yml45
-rw-r--r--ansible_collections/ngine_io/exoscale/CHANGELOG.rst8
-rw-r--r--ansible_collections/ngine_io/exoscale/FILES.json92
-rw-r--r--ansible_collections/ngine_io/exoscale/MANIFEST.json8
-rw-r--r--ansible_collections/ngine_io/exoscale/README.md3
-rw-r--r--ansible_collections/ngine_io/exoscale/changelogs/changelog.yaml6
-rw-r--r--ansible_collections/ngine_io/exoscale/plugins/doc_fragments/exoscale.py3
-rw-r--r--ansible_collections/ngine_io/exoscale/plugins/module_utils/exoscale.py7
-rw-r--r--ansible_collections/ngine_io/exoscale/plugins/modules/exo_dns_domain.py5
-rw-r--r--ansible_collections/ngine_io/exoscale/plugins/modules/exo_dns_record.py6
-rw-r--r--ansible_collections/ngine_io/exoscale/plugins/modules/instance_rdns_record.py186
-rw-r--r--ansible_collections/ngine_io/vultr/.github/workflows/integration.yml74
-rw-r--r--ansible_collections/ngine_io/vultr/.github/workflows/publish.yml34
-rw-r--r--ansible_collections/ngine_io/vultr/.github/workflows/sanity.yml42
-rw-r--r--ansible_collections/ngine_io/vultr/.gitignore2
-rw-r--r--ansible_collections/ngine_io/vultr/CHANGELOG.rst68
-rw-r--r--ansible_collections/ngine_io/vultr/CONTRIBUTING.md6
-rw-r--r--ansible_collections/ngine_io/vultr/COPYING621
-rw-r--r--ansible_collections/ngine_io/vultr/FILES.json1405
-rw-r--r--ansible_collections/ngine_io/vultr/MANIFEST.json35
-rw-r--r--ansible_collections/ngine_io/vultr/README.md87
-rw-r--r--ansible_collections/ngine_io/vultr/changelogs/.gitignore1
-rw-r--r--ansible_collections/ngine_io/vultr/changelogs/changelog.yaml59
-rw-r--r--ansible_collections/ngine_io/vultr/changelogs/config.yaml29
-rw-r--r--ansible_collections/ngine_io/vultr/changelogs/fragments/.keep0
-rw-r--r--ansible_collections/ngine_io/vultr/codecov.yml5
-rw-r--r--ansible_collections/ngine_io/vultr/meta/runtime.yml135
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/doc_fragments/__init__.py0
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/doc_fragments/vultr.py58
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/inventory/__init__.py0
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/inventory/vultr.py200
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/module_utils/vultr.py336
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/__init__.py0
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_account_info.py130
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_block_storage.py382
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_block_storage_info.py160
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_domain.py201
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_domain_info.py117
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_record.py376
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_group.py201
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_group_info.py139
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_rule.py384
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_network.py232
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_network_info.py156
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_os_info.py137
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_plan_baremetal_info.py140
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_plan_info.py139
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_region_info.py129
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_server.py933
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_server_baremetal.py548
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_server_info.py300
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_ssh_key.py236
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_ssh_key_info.py141
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_startup_script.py265
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_startup_script_info.py149
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_user.py326
-rw-r--r--ansible_collections/ngine_io/vultr/plugins/modules/vultr_user_info.py144
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_account_info/aliases2
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_account_info/tasks/main.yml27
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/defaults/main.yml14
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/tasks/main.yml315
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/defaults/main.yml5
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/tasks/main.yml35
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/defaults/main.yml5
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/tasks/main.yml99
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/defaults/main.yml4
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/tasks/main.yml32
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/defaults/main.yml39
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/create_record.yml67
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/main.yml17
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/record.yml6
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/remove_record.yml114
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/test_fail_multiple.yml78
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/update_record.yml70
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/defaults/main.yml5
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/tasks/main.yml86
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/defaults/main.yml3
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/tasks/main.yml33
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/defaults/main.yml5
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/tasks/main.yml475
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/defaults/main.yml5
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/tasks/main.yml113
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/defaults/main.yml5
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/tasks/main.yml35
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_os_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_os_info/tasks/main.yml22
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_baremetal_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_baremetal_info/tasks/main.yml22
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_info/tasks/main.yml21
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_region_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_region_info/tasks/main.yml21
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/defaults/main.yml13
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/tasks/main.yml551
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/defaults/main.yml13
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/tasks/main.yml366
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/defaults/main.yml6
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/tasks/main.yml66
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/defaults/main.yml7
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/tasks/main.yml140
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/defaults/main.yml4
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/tasks/main.yml44
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/defaults/main.yml7
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/tasks/main.yml140
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/defaults/main.yml4
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/tasks/main.yml35
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/defaults/main.yml5
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/tasks/main.yml225
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/aliases1
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/defaults/main.yml10
-rw-r--r--ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/tasks/main.yml34
-rw-r--r--ansible_collections/ngine_io/vultr/tests/sanity/ignore-2.10.txt0
132 files changed, 321 insertions, 12818 deletions
diff --git a/ansible_collections/ngine_io/vultr/.github/dependabot.yml b/ansible_collections/ngine_io/exoscale/.github/dependabot.yml
index 607e7e1a2..607e7e1a2 100644
--- a/ansible_collections/ngine_io/vultr/.github/dependabot.yml
+++ b/ansible_collections/ngine_io/exoscale/.github/dependabot.yml
diff --git a/ansible_collections/ngine_io/exoscale/.github/workflows/publish.yml b/ansible_collections/ngine_io/exoscale/.github/workflows/publish.yml
index 0318edfc4..2bcd079fe 100644
--- a/ansible_collections/ngine_io/exoscale/.github/workflows/publish.yml
+++ b/ansible_collections/ngine_io/exoscale/.github/workflows/publish.yml
@@ -7,19 +7,24 @@ on:
jobs:
deploy:
runs-on: ubuntu-latest
+ defaults:
+ run:
+ working-directory: ansible_collections/ngine_io/exoscale
steps:
- - uses: actions/checkout@v1
- - name: Set up Python
- uses: actions/setup-python@v1
- with:
- python-version: '3.x'
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip
- pip install ansible
- - name: Build and publish
- env:
- ANSIBLE_GALAXY_API_KEY: ${{ secrets.ANSIBLE_GALAXY_API_KEY }}
- run: |
- ansible-galaxy collection build .
- ansible-galaxy collection publish *.tar.gz --api-key $ANSIBLE_GALAXY_API_KEY
+ - uses: actions/checkout@v3
+ with:
+ path: ansible_collections/ngine_io/exoscale
+ - name: Set up Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: "3.x"
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install ansible
+ - name: Build and publish
+ env:
+ ANSIBLE_GALAXY_API_KEY: ${{ secrets.ANSIBLE_GALAXY_API_KEY }}
+ run: |
+ ansible-galaxy collection build .
+ ansible-galaxy collection publish *.tar.gz --api-key $ANSIBLE_GALAXY_API_KEY
diff --git a/ansible_collections/ngine_io/exoscale/.github/workflows/sanity.yml b/ansible_collections/ngine_io/exoscale/.github/workflows/sanity.yml
index 7e0fab5b9..b646882e0 100644
--- a/ansible_collections/ngine_io/exoscale/.github/workflows/sanity.yml
+++ b/ansible_collections/ngine_io/exoscale/.github/workflows/sanity.yml
@@ -1,31 +1,42 @@
name: Sanity
on:
-- pull_request
+ push:
+ branches:
+ - master
+ schedule:
+ - cron: "5 12 * * *"
+ pull_request:
+ workflow_call:
+ workflow_dispatch:
jobs:
sanity:
name: Sanity (${{ matrix.ansible }})
+ runs-on: ubuntu-20.04
+ defaults:
+ run:
+ working-directory: ansible_collections/ngine_io/exoscale
strategy:
matrix:
ansible:
- - stable-2.10
- - stable-2.9
- - devel
- runs-on: ubuntu-latest
+ - stable-2.14
+ - devel
steps:
+ - name: Check out code
+ uses: actions/checkout@v3
+ with:
+ path: ansible_collections/ngine_io/exoscale
- - name: Check out code
- uses: actions/checkout@v1
- with:
- path: ansible_collections/ngine_io/exoscale
+ - name: Set up Python 3
+ uses: actions/setup-python@v4
+ with:
+ python-version: "3.10"
- - name: Set up Python 3.6
- uses: actions/setup-python@v1
- with:
- python-version: 3.6
+ - name: Install ansible-base (${{ matrix.ansible }})
+ run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check
- - name: Install ansible-base (${{ matrix.ansible }})
- run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check
+ - name: Install dependencies
+ run: ansible-galaxy collection install -p ../../ ngine_io.cloudstack
- - name: Run sanity tests
- run: ansible-test sanity --docker -v --color --python 3.6
+ - name: Run sanity tests
+ run: ansible-test sanity --docker -v --color
diff --git a/ansible_collections/ngine_io/exoscale/CHANGELOG.rst b/ansible_collections/ngine_io/exoscale/CHANGELOG.rst
index 54909f89b..c2292e89e 100644
--- a/ansible_collections/ngine_io/exoscale/CHANGELOG.rst
+++ b/ansible_collections/ngine_io/exoscale/CHANGELOG.rst
@@ -5,5 +5,13 @@ Exoscale Ansible Collection Release Notes
.. contents:: Topics
+v1.1.0
+======
+
+New Modules
+-----------
+
+- ngine_io.exoscale.instance_rdns_record - Manages reverse DNS records for Exoscale compute instances.
+
v1.0.0
======
diff --git a/ansible_collections/ngine_io/exoscale/FILES.json b/ansible_collections/ngine_io/exoscale/FILES.json
index f725ab2d6..5c567253c 100644
--- a/ansible_collections/ngine_io/exoscale/FILES.json
+++ b/ansible_collections/ngine_io/exoscale/FILES.json
@@ -8,6 +8,13 @@
"format": 1
},
{
+ "name": "CHANGELOG.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8933e18b420ebf5ac2f08614062358f129ac675b653e6123994a89475199d2b3",
+ "format": 1
+ },
+ {
"name": "tests",
"ftype": "dir",
"chksum_type": null,
@@ -22,6 +29,13 @@
"format": 1
},
{
+ "name": "tests/legacy/exoscale.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "38d542d66924d6e8fd7991ffc2e73544cfd7f88cdd4734ba47734b8ec86ea3fb",
+ "format": 1
+ },
+ {
"name": "tests/legacy/roles",
"ftype": "dir",
"chksum_type": null,
@@ -64,45 +78,45 @@
"format": 1
},
{
- "name": "tests/legacy/exoscale.yml",
+ "name": "changelogs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "changelogs/changelog.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "38d542d66924d6e8fd7991ffc2e73544cfd7f88cdd4734ba47734b8ec86ea3fb",
+ "chksum_sha256": "3e8edd11d87e03989560cbe31d55b406ecc5f3253afa4382cc20f79aa6ea4f25",
"format": 1
},
{
- "name": "CHANGELOG.rst",
+ "name": "changelogs/config.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f3a697694dc57ace9e8600b5b2afbff42deeb76739d55cf66d844aec1ebb5dbf",
+ "chksum_sha256": "6077ffbd67c5ad687d45cb43010521973fe662e82c2f167c5121016803861cea",
"format": 1
},
{
- "name": "CONTRIBUTING.md",
+ "name": "changelogs/.gitignore",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d61725d614410e2ee0a900fb0f6b6d742ad8fb689ae27c4d6a3a7f89e82fc791",
+ "chksum_sha256": "919ef00776e7d2ff349950ac4b806132aa9faf006e214d5285de54533e443b33",
"format": 1
},
{
- "name": "meta",
+ "name": "changelogs/fragments",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "meta/runtime.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "65ddf4c03edf730c4bf7da2184d83dfd28e790cb816ef1f9d82904273cb0c854",
- "format": 1
- },
- {
- "name": "README.md",
+ "name": "changelogs/fragments/.keep",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "476a74dcdd9be0337c38135c7ab2f0f65de2ab4fdff679ceaa66b04f3e844811",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"format": 1
},
{
@@ -130,7 +144,7 @@
"name": "plugins/doc_fragments/exoscale.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c484b770aa74ea4fbd70bf2f673af2e7f469ad732e818223152a356a5b9fd861",
+ "chksum_sha256": "d86f0fc819f87865a54d53e557c43c06ebe2307fe6d6bed3398a3620e6694016",
"format": 1
},
{
@@ -144,7 +158,7 @@
"name": "plugins/module_utils/exoscale.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "27754664282f766b3ad37dde8ac45d67495e3bc599e4bfa4a089a11819038311",
+ "chksum_sha256": "1eb5c5bb5f470db43015ea80b3b83a82c8f54ba0145dfd1ce2dff961455bfc54",
"format": 1
},
{
@@ -158,7 +172,7 @@
"name": "plugins/modules/exo_dns_domain.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fe708671d29b57cdf89f39aee4b0f81672db58030a92b832bf6b78008e080b80",
+ "chksum_sha256": "c935301e351f7edf575a57690a18d414d533474411fbc0545a09597ef16a84f3",
"format": 1
},
{
@@ -169,52 +183,45 @@
"format": 1
},
{
- "name": "plugins/modules/exo_dns_record.py",
+ "name": "plugins/modules/instance_rdns_record.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "920ee4da3ced628cec9e998467ec04cd84db296b47e36225cf0693445fa483a9",
- "format": 1
- },
- {
- "name": "changelogs",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "chksum_sha256": "23076872f3e72d7f40235a451c4a9379c2ee3a3c95a8720852d824999f6d8422",
"format": 1
},
{
- "name": "changelogs/config.yaml",
+ "name": "plugins/modules/exo_dns_record.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6077ffbd67c5ad687d45cb43010521973fe662e82c2f167c5121016803861cea",
+ "chksum_sha256": "12ba02ca52c73008913c66b33550873605d0b0c224aca18781f65c8aa39581aa",
"format": 1
},
{
- "name": "changelogs/fragments",
+ "name": "meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "changelogs/fragments/.keep",
+ "name": "meta/runtime.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "chksum_sha256": "65ddf4c03edf730c4bf7da2184d83dfd28e790cb816ef1f9d82904273cb0c854",
"format": 1
},
{
- "name": "changelogs/.gitignore",
+ "name": "README.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "919ef00776e7d2ff349950ac4b806132aa9faf006e214d5285de54533e443b33",
+ "chksum_sha256": "9a597bfa46bbaf1cf2af965225a512c850b7b97b6f2b8b56cf75d853da649467",
"format": 1
},
{
- "name": "changelogs/changelog.yaml",
+ "name": "CONTRIBUTING.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2dbaa843cb55fda031c7fa291a37ff6a59c596763cce1eaf97fd72b3a1761d92",
+ "chksum_sha256": "d61725d614410e2ee0a900fb0f6b6d742ad8fb689ae27c4d6a3a7f89e82fc791",
"format": 1
},
{
@@ -235,14 +242,21 @@
"name": ".github/workflows/publish.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c529e2810ae1f02ea98dcae1b78241d21a5988496ed5389b2ce8c37395323756",
+ "chksum_sha256": "968d296da538330e7547e13d72957e5efd43eda675d75febb3d2e7a041ec0047",
"format": 1
},
{
"name": ".github/workflows/sanity.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "33964a78f085244db7db9904c39776a726cd4cfef48c3b1dcb5e1cf57714d223",
+ "chksum_sha256": "45a61141d4e4e0f72d0ba02045b0d6b0f0662fa7565e05c5bff5c8d53ca5d858",
+ "format": 1
+ },
+ {
+ "name": ".github/dependabot.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d207e80d10726360f2046d4b2473a3cfd9f9eca99590281fa39d88f78e745145",
"format": 1
}
],
diff --git a/ansible_collections/ngine_io/exoscale/MANIFEST.json b/ansible_collections/ngine_io/exoscale/MANIFEST.json
index acebe1576..f707a1aaf 100644
--- a/ansible_collections/ngine_io/exoscale/MANIFEST.json
+++ b/ansible_collections/ngine_io/exoscale/MANIFEST.json
@@ -2,7 +2,7 @@
"collection_info": {
"namespace": "ngine_io",
"name": "exoscale",
- "version": "1.0.0",
+ "version": "1.1.0",
"authors": [
"Ren\u00e9 Moser <mail@renemoser.net>"
],
@@ -18,7 +18,9 @@
"GPL-3.0-or-later"
],
"license_file": null,
- "dependencies": {},
+ "dependencies": {
+ "ngine_io.cloudstack": ">=1.0.0"
+ },
"repository": "https://github.com/ngine-io/ansible-collection-exoscale",
"documentation": "",
"homepage": "https://github.com/ngine-io/ansible-collection-exoscale",
@@ -28,7 +30,7 @@
"name": "FILES.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "dbbe7cf8b0656632d858a3bcec7ed6049ee30663c1ed9488392b80c53311d4a4",
+ "chksum_sha256": "45043adcb9cba1598dc0e4fd8b7d896a1cf1e547c07168d6e60e7d383031d2c4",
"format": 1
},
"format": 1
diff --git a/ansible_collections/ngine_io/exoscale/README.md b/ansible_collections/ngine_io/exoscale/README.md
index 824f6b779..efae55085 100644
--- a/ansible_collections/ngine_io/exoscale/README.md
+++ b/ansible_collections/ngine_io/exoscale/README.md
@@ -1,5 +1,4 @@
-![Collection integration](https://github.com/ngine-io/ansible-collection-exoscale/workflows/Collection%20integration/badge.svg)
- [![Codecov](https://img.shields.io/codecov/c/github/ngine-io/ansible-collection-exoscale)](https://codecov.io/gh/ngine-io/ansible-collection-exoscale)
+![Collection integration](https://github.com/ngine-io/ansible-collection-exoscale/workflows/Sanity/badge.svg)
[![License](https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg)](LICENSE)
# Ansible Collection for exoscale Cloud
diff --git a/ansible_collections/ngine_io/exoscale/changelogs/changelog.yaml b/ansible_collections/ngine_io/exoscale/changelogs/changelog.yaml
index 4eef701ce..948507e75 100644
--- a/ansible_collections/ngine_io/exoscale/changelogs/changelog.yaml
+++ b/ansible_collections/ngine_io/exoscale/changelogs/changelog.yaml
@@ -2,3 +2,9 @@ ancestor: null
releases:
1.0.0:
release_date: '2020-08-15'
+ 1.1.0:
+ modules:
+ - description: Manages reverse DNS records for Exoscale compute instances.
+ name: instance_rdns_record
+ namespace: ''
+ release_date: '2023-08-23'
diff --git a/ansible_collections/ngine_io/exoscale/plugins/doc_fragments/exoscale.py b/ansible_collections/ngine_io/exoscale/plugins/doc_fragments/exoscale.py
index 52ea2cd49..28081074f 100644
--- a/ansible_collections/ngine_io/exoscale/plugins/doc_fragments/exoscale.py
+++ b/ansible_collections/ngine_io/exoscale/plugins/doc_fragments/exoscale.py
@@ -4,6 +4,7 @@
# 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
@@ -38,7 +39,7 @@ options:
description:
- Validate SSL certs of the Exoscale DNS API.
type: bool
- default: yes
+ default: true
requirements:
- python >= 2.6
notes:
diff --git a/ansible_collections/ngine_io/exoscale/plugins/module_utils/exoscale.py b/ansible_collections/ngine_io/exoscale/plugins/module_utils/exoscale.py
index 44933b1b0..9e1d32fc7 100644
--- a/ansible_collections/ngine_io/exoscale/plugins/module_utils/exoscale.py
+++ b/ansible_collections/ngine_io/exoscale/plugins/module_utils/exoscale.py
@@ -2,13 +2,14 @@
# Copyright (c) 2016, René Moser <mail@renemoser.net>
# 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
import os
-from ansible.module_utils.six.moves import configparser
-from ansible.module_utils.six import integer_types, string_types
from ansible.module_utils._text import to_native, to_text
+from ansible.module_utils.six import integer_types, string_types
+from ansible.module_utils.six.moves import configparser
from ansible.module_utils.urls import fetch_url
EXO_DNS_BASEURL = "https://api.exoscale.ch/dns/v1"
@@ -80,7 +81,7 @@ class ExoDns(object):
# Look at CLOUDSTACK_CONFIG first if present
if 'CLOUDSTACK_CONFIG' in os.environ:
paths += (os.path.expanduser(os.environ['CLOUDSTACK_CONFIG']),)
- if not any([os.path.exists(c) for c in paths]):
+ if not any([os.path.exists(c) for c in paths]): # pylint: disable=use-a-generator
self.module.fail_json(msg="Config file not found. Tried : %s" % ", ".join(paths))
conf = configparser.ConfigParser()
diff --git a/ansible_collections/ngine_io/exoscale/plugins/modules/exo_dns_domain.py b/ansible_collections/ngine_io/exoscale/plugins/modules/exo_dns_domain.py
index 334c5c02b..a8573b51f 100644
--- a/ansible_collections/ngine_io/exoscale/plugins/modules/exo_dns_domain.py
+++ b/ansible_collections/ngine_io/exoscale/plugins/modules/exo_dns_domain.py
@@ -5,6 +5,7 @@
# 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
@@ -132,7 +133,9 @@ exo_dns_domain:
'''
from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.exoscale import ExoDns, exo_dns_argument_spec, exo_dns_required_together
+
+from ..module_utils.exoscale import (ExoDns, exo_dns_argument_spec,
+ exo_dns_required_together)
class ExoDnsDomain(ExoDns):
diff --git a/ansible_collections/ngine_io/exoscale/plugins/modules/exo_dns_record.py b/ansible_collections/ngine_io/exoscale/plugins/modules/exo_dns_record.py
index 8da3491eb..8153ff849 100644
--- a/ansible_collections/ngine_io/exoscale/plugins/modules/exo_dns_record.py
+++ b/ansible_collections/ngine_io/exoscale/plugins/modules/exo_dns_record.py
@@ -5,6 +5,7 @@
# 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
@@ -56,7 +57,7 @@ options:
- Only allowed for a few record types, e.g. C(record_type=A), C(record_type=NS) or C(record_type=MX).
- I(content) will not be updated, instead it is used as a key to find existing records.
type: bool
- default: no
+ default: false
state:
description:
- State of the record.
@@ -186,8 +187,9 @@ exo_dns_record:
'''
from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.exoscale import ExoDns, exo_dns_argument_spec, exo_dns_required_together
+from ..module_utils.exoscale import (ExoDns, exo_dns_argument_spec,
+ exo_dns_required_together)
EXO_RECORD_TYPES = [
'A',
diff --git a/ansible_collections/ngine_io/exoscale/plugins/modules/instance_rdns_record.py b/ansible_collections/ngine_io/exoscale/plugins/modules/instance_rdns_record.py
new file mode 100644
index 000000000..863370d17
--- /dev/null
+++ b/ansible_collections/ngine_io/exoscale/plugins/modules/instance_rdns_record.py
@@ -0,0 +1,186 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# (c) 2019, Lorenz Schori <lo@znerol.ch>
+# 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: instance_rdns_record
+short_description: Manages reverse DNS records for Exoscale compute instances.
+description:
+ - Set and unset reverse DNS record on Exoscale instance.
+version_added: "1.1.0"
+author: "Lorenz Schori (@znerol)"
+options:
+ name:
+ description:
+ - Name of the compute instance
+ required: true
+ type: str
+ content:
+ aliases: [ 'value' ]
+ description:
+ - Reverse DSN name of the compute instance. Required if state=present.
+ type: str
+ state:
+ description:
+ - State of the record.
+ default: present
+ choices: [ 'present', 'absent' ]
+ type: str
+extends_documentation_fragment: ngine_io.cloudstack.cloudstack
+'''
+
+EXAMPLES = '''
+- name: Set the reverse DNS for a compute instance
+ ngine_io.exoscale.instance_rdns_record:
+ name: web-vm-1
+ content: www.example.com
+
+- name: Delete the reverse DNS for a compute instance
+ ngine_io.exoscale.instance_rdns_record:
+ name: web-vm-1
+ state: absent
+'''
+
+RETURN = '''
+---
+instance_rdns_domain:
+ description: Reverse DSN name of the compute instance
+ returned: success
+ type: str
+'''
+
+from ansible.module_utils.basic import AnsibleModule
+from ansible_collections.ngine_io.cloudstack.plugins.module_utils.cloudstack import (
+ AnsibleCloudStack, cs_argument_spec, cs_required_together)
+
+
+class InstanceRdnsRecord(AnsibleCloudStack):
+
+ def __init__(self, module):
+ super(InstanceRdnsRecord, self).__init__(module)
+
+ self.name = self.module.params.get('name')
+ self.content = self.module.params.get('content')
+
+ self.returns = {
+ 'domain': 'domain'
+ }
+
+ self.instance = None
+
+ def get_instance(self):
+ instance = self.instance
+ if not instance:
+ args = {
+ 'fetch_list': True,
+ }
+ # Do not pass zoneid, as the instance name must be unique across
+ # zones.
+ instances = self.query_api('listVirtualMachines', **args)
+ if instances:
+ for v in instances:
+ if self.name.lower() in [v['name'].lower(), v['displayname'].lower(), v['id']]:
+ self.instance = v
+ break
+
+ return self.instance
+
+ def get_record(self, instance):
+ result = {}
+
+ res = self.query_api('queryReverseDnsForVirtualMachine',
+ id=instance['id'])
+ nics = res['virtualmachine'].get('nic', [])
+
+ defaultnics = [nic for nic in nics if nic.get('isdefault', False)]
+
+ if len(defaultnics) > 0:
+ domains = [record['domainname'] for record
+ in defaultnics[0].get('reversedns', [])
+ if 'domainname' in record]
+
+ if len(domains) > 0:
+ result = {
+ 'domainname': domains[0],
+ }
+
+ return result
+
+ def present_record(self):
+ instance = self.get_instance()
+
+ if not instance:
+ self.module.fail_json(
+ msg="No compute instance with name=%s found. " % self.name)
+
+ data = {
+ 'domainname': self.content,
+ }
+ record = self.get_record(instance)
+ if self.has_changed(data, record):
+ self.result['changed'] = True
+ self.result['diff']['before'] = record
+ self.result['diff']['after'] = data
+ if not self.module.check_mode:
+ self.query_api('updateReverseDnsForVirtualMachine',
+ id=instance['id'],
+ domainname=data['domainname'])
+
+ return data
+
+ def absent_record(self):
+ instance = self.get_instance()
+
+ if instance:
+ record = self.get_record(instance)
+ if record:
+ self.result['diff']['before'] = record
+ self.result['changed'] = True
+ if not self.module.check_mode:
+ self.query_api('deleteReverseDnsFromVirtualMachine',
+ id=instance['id'])
+
+ return record
+
+ def get_result(self, resource):
+ self.result['instance_rdns_domain'] = resource
+ return self.result
+
+
+def main():
+ argument_spec = cs_argument_spec()
+ argument_spec.update(dict(
+ name=dict(required=True),
+ content=dict(aliases=['value']),
+ state=dict(choices=['present', 'absent'], default='present'),
+ ))
+
+ module = AnsibleModule(
+ argument_spec=argument_spec,
+ required_together=cs_required_together(),
+ required_if=[
+ ('state', 'present', ['content']),
+ ],
+ supports_check_mode=True,
+ )
+
+ instance_rdns_record = InstanceRdnsRecord(module)
+ if module.params.get('state') == "present":
+ record = instance_rdns_record.present_record()
+ else:
+ record = instance_rdns_record.absent_record()
+
+ result = instance_rdns_record.get_result(record)
+ module.exit_json(**result)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/ansible_collections/ngine_io/vultr/.github/workflows/integration.yml b/ansible_collections/ngine_io/vultr/.github/workflows/integration.yml
deleted file mode 100644
index 7c3d7e9ce..000000000
--- a/ansible_collections/ngine_io/vultr/.github/workflows/integration.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-name: Collection integration
-
-on:
- push:
- schedule:
- - cron: 31 6 * * 2 # Run weekly
-
-jobs:
- integration-test:
- name: Integration test using Python ${{ matrix.python-version }}
- runs-on: ubuntu-20.04
- defaults:
- run:
- working-directory: ansible_collections/ngine_io/vultr
- strategy:
- fail-fast: false
- matrix:
- runner-python-version:
- - 3.6
- python-version:
- - 3.6
- - 2.7
- steps:
- - name: Check out code
- uses: actions/checkout@v3
- with:
- path: ansible_collections/ngine_io/vultr
-
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v4
- with:
- python-version: ${{ matrix.python-version }}
-
- - name: Install ansible and collection dependencies
- run: |
- python -m pip install --upgrade pip
- pip install ansible
-
- - name: Build and install collection
- run: |
- ansible-galaxy collection build .
- ansible-galaxy collection install *.gz
-
- - name: Add config file
- env:
- CONFIG_FILE: ${{ secrets.CONFIG_FILE }}
- run: |
- echo "$CONFIG_FILE" > tests/integration/cloud-config-vultr.ini
-
- - name: Run the tests
- run: >-
- ansible-test
- integration
- --docker
- -v
- --diff
- --color
- --retry-on-error
- --python ${{ matrix.python-version }}
- --continue-on-error
- --coverage
- smoke/vultr/
-
- - name: Generate coverage report
- run: >-
- ansible-test
- coverage xml
- -v
- --requirements
- --group-by command
- --group-by version
- - uses: codecov/codecov-action@v3
- with:
- fail_ci_if_error: false
diff --git a/ansible_collections/ngine_io/vultr/.github/workflows/publish.yml b/ansible_collections/ngine_io/vultr/.github/workflows/publish.yml
deleted file mode 100644
index b6b1ab53b..000000000
--- a/ansible_collections/ngine_io/vultr/.github/workflows/publish.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-name: Upload release to Galaxy
-
-on:
- release:
- types: [created]
-jobs:
- call-sanity-workflow:
- uses: ./.github/workflows/sanity.yml
- deploy:
- runs-on: ubuntu-latest
- defaults:
- run:
- working-directory: ansible_collections/ngine_io/vultr
- steps:
- - uses: actions/checkout@v3
- with:
- path: ansible_collections/ngine_io/vultr
-
- - name: Set up Python
- uses: actions/setup-python@v4
- with:
- python-version: "3.x"
-
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip
- pip install ansible
-
- - name: Build and publish
- env:
- ANSIBLE_GALAXY_API_KEY: ${{ secrets.ANSIBLE_GALAXY_API_KEY }}
- run: |
- ansible-galaxy collection build .
- ansible-galaxy collection publish *.tar.gz --api-key $ANSIBLE_GALAXY_API_KEY
diff --git a/ansible_collections/ngine_io/vultr/.github/workflows/sanity.yml b/ansible_collections/ngine_io/vultr/.github/workflows/sanity.yml
deleted file mode 100644
index c2ca42529..000000000
--- a/ansible_collections/ngine_io/vultr/.github/workflows/sanity.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-name: Sanity
-
-on:
- push:
- branches:
- - master
- schedule:
- - cron: "5 12 * * *"
- pull_request:
- workflow_call:
- workflow_dispatch:
-
-jobs:
- sanity:
- name: Sanity (${{ matrix.ansible }})
- runs-on: ubuntu-20.04
- defaults:
- run:
- working-directory: ansible_collections/ngine_io/vultr
- strategy:
- matrix:
- ansible:
- - stable-2.14
- - stable-2.13
- - stable-2.12
- - devel
- steps:
- - name: Check out code
- uses: actions/checkout@v3
- with:
- path: ansible_collections/ngine_io/vultr
-
- - name: Set up Python
- uses: actions/setup-python@v4
- with:
- python-version: "3.10"
-
- - name: Install ansible-base (${{ matrix.ansible }})
- run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check
-
- - name: Run sanity tests
- run: ansible-test sanity --docker -v --color
diff --git a/ansible_collections/ngine_io/vultr/.gitignore b/ansible_collections/ngine_io/vultr/.gitignore
deleted file mode 100644
index d9bd8c659..000000000
--- a/ansible_collections/ngine_io/vultr/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-tests/output/
-cloud-config-vultr.ini
diff --git a/ansible_collections/ngine_io/vultr/CHANGELOG.rst b/ansible_collections/ngine_io/vultr/CHANGELOG.rst
deleted file mode 100644
index 252fa1649..000000000
--- a/ansible_collections/ngine_io/vultr/CHANGELOG.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-==============================
-Vultr Collection Release Notes
-==============================
-
-.. contents:: Topics
-
-
-v1.1.3
-======
-
-Bugfixes
---------
-
-- iventory - Fixed ``allowed_bandwidth_gb`` to be returned as float (https://github.com/ngine-io/ansible-collection-vultr/pull/35).
-- vultr_server - Fixed ``allowed_bandwidth_gb`` to be returned as float (https://github.com/ngine-io/ansible-collection-vultr/pull/35).
-- vultr_server_baremetal - Fixed ``allowed_bandwidth_gb`` to be returned as float (https://github.com/ngine-io/ansible-collection-vultr/pull/35).
-
-v1.1.2
-======
-
-Release Summary
----------------
-
-This collection has turned into maintenance mode. We encourage you to add new features to its successor at https://galaxy.ansible.com/vultr/cloud.
-
-
-Minor Changes
--------------
-
-- Documentation fixes.
-
-v1.1.1
-======
-
-Bugfixes
---------
-
-- vultr_server - Fix user data not handled correctly (https://github.com/ngine-io/ansible-collection-vultr/pull/26).
-
-v1.1.0
-======
-
-Minor Changes
--------------
-
-- vultr_block_storage - Included ability to resize, attach and detach Block Storage Volumes.
-
-v1.0.0
-======
-
-v0.3.0
-======
-
-Minor Changes
--------------
-
-- vultr_server_info, vultr_server - Improved handling of discontinued plans (https://github.com/ansible/ansible/issues/66707).
-
-Bugfixes
---------
-
-- vultr - Fixed the issue retry max delay param was ignored.
-
-New Modules
------------
-
-- vultr_plan_baremetal_info - Gather information about the Vultr Bare Metal plans available.
-- vultr_server_baremetal - Manages baremetal servers on Vultr.
diff --git a/ansible_collections/ngine_io/vultr/CONTRIBUTING.md b/ansible_collections/ngine_io/vultr/CONTRIBUTING.md
deleted file mode 100644
index 44683c135..000000000
--- a/ansible_collections/ngine_io/vultr/CONTRIBUTING.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Contributing
-
-Any contribution is welcome and we only ask contributors to:
-
-- Create an issues for any significant contribution that would change a large portion of the code base.
-- Provide at least integration tests for any contribution
diff --git a/ansible_collections/ngine_io/vultr/COPYING b/ansible_collections/ngine_io/vultr/COPYING
deleted file mode 100644
index 94a045322..000000000
--- a/ansible_collections/ngine_io/vultr/COPYING
+++ /dev/null
@@ -1,621 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
diff --git a/ansible_collections/ngine_io/vultr/FILES.json b/ansible_collections/ngine_io/vultr/FILES.json
deleted file mode 100644
index 8cf5b7268..000000000
--- a/ansible_collections/ngine_io/vultr/FILES.json
+++ /dev/null
@@ -1,1405 +0,0 @@
-{
- "files": [
- {
- "name": ".",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "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/sanity.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e35c78dc82a238007205388e3be388522878ee28e08bbd5504f58f8a56ab8fc1",
- "format": 1
- },
- {
- "name": ".github/workflows/integration.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "7e969a69b5dc9360f38f82614eb578e3426036c7ac5e6bb5edbecdb7759095e6",
- "format": 1
- },
- {
- "name": ".github/workflows/publish.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "b93a1c2ed79b3504f50fe2d1b47830515c1857e04ca1f4bff97bbe6bba25303f",
- "format": 1
- },
- {
- "name": ".github/dependabot.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d207e80d10726360f2046d4b2473a3cfd9f9eca99590281fa39d88f78e745145",
- "format": 1
- },
- {
- "name": "codecov.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0271dcfe609d71afb466112f2d1c4c13943580fa97bb42b2baa08a1c37bb1c14",
- "format": 1
- },
- {
- "name": "changelogs",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "changelogs/config.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "563c1581cbb9e56aba11a8a22fbce75c922563a23e397788dbbba5678771ebfb",
- "format": 1
- },
- {
- "name": "changelogs/fragments",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "changelogs/fragments/.keep",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "format": 1
- },
- {
- "name": "changelogs/.gitignore",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "919ef00776e7d2ff349950ac4b806132aa9faf006e214d5285de54533e443b33",
- "format": 1
- },
- {
- "name": "changelogs/changelog.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "2688e075ba2c0b676ab9de2d5040c604e20b8ce2ac10cacf51296e14674e9e38",
- "format": 1
- },
- {
- "name": "CHANGELOG.rst",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "4742a037f0a9d5bd5c14efb9b4f162a9310b1845ca62ceb564cb2a4496a65c63",
- "format": 1
- },
- {
- "name": ".gitignore",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "7d6610703389d4c3abb22cda6e2f6b429f15db830eef016a34f916b5e5f9cfe7",
- "format": 1
- },
- {
- "name": "plugins",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/doc_fragments",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/doc_fragments/vultr.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0fc3cbb0cba1768526231546d18fcd5651483f65fb8caf7e1619d14edcc2399f",
- "format": 1
- },
- {
- "name": "plugins/doc_fragments/__init__.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "format": 1
- },
- {
- "name": "plugins/modules",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_server_baremetal.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3dc461a580515134172b78be7c0b6c896da5b82ea7afc3750147868d877111bc",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_network.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "5c8e9d690e660eebfdac87e9853c9289aefa16449f58b3584a0b16a5cc61dba8",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_startup_script_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a5671941f5ea7accf04d5fc8b9e60bcdff79d5d75794842ba8c7c2c3702228d1",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_user.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "b31751880825def7c9b749a622adb94f42b2afa81990dd2cc1f64246814549ed",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_block_storage_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "f5c942415dd687493fc46b4a927b3f085a06c420d13147405319712ae5b7ad11",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_ssh_key_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "30fc759d9b6361143f04b53b376a12c723b1ae0adc796454ca38d4a735e730b9",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_block_storage.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "67c440733c447f241bb2018bdb4ca6872193a3531c2df4fad6a107b82c6d436e",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_server_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "37c7a7dbd287ff00455c4924cdc61c99dbae367fd49dc570aaef1073dc12d0d5",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_plan_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0108582ad1ee7a3f7c24a4f9257e35022a68b8cf701b2d1b0db807f02fb30143",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_os_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "2158f66c5a3b59fdb2ced1fa29c1fa8263f106a6f46d4630655fc66fda5a6819",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_ssh_key.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "30db2d89d2e946b32606aa821789a3b4967f45f2364d6d992e20d73fcc9cba38",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_firewall_group.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d089be1c1b13ffbbe9f5896e4424bad3f31e3302dc0fe1e7b880f8a2146a4284",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_network_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "50194b45d86e273ecad00e3139c97eba38bb2a22afc1e560e035133d62fed1f1",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_firewall_group_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "94258da259c9a38b878692e3303a2a0c937c5e05ffa3b5ccdb8f0a85ced3cb26",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_startup_script.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "03cffa0a6294bad833e51fc30c83fd00a3da63dde34820f4f918ee669313d5a1",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_region_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "ee0648ffad648505eac184d07d1ed4f657ca4931c0aed9530da5a415edd4edf6",
- "format": 1
- },
- {
- "name": "plugins/modules/__init__.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_firewall_rule.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "491e9f3a06a7f4e7c9069ab92e3c1596ec26948428a8f88a39e52b3b90cb53c9",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_plan_baremetal_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "1fab8b861ea930ecffcb502b3979002f7be0ff391d77bbb87fcbfd717adc29bf",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_dns_domain.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "1a208d26279d7858ee55e740a0a24f2ee072ecdc6de43be436f8e87b9e45da90",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_account_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "b6dcf9d0f7c4a225045294f1483404891378826f317104b95b986df1c05f698d",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_dns_record.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "64422dcff674d4ae5083d6b79992226c8f84223ecd495d365a2e6bab67ef69fa",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_user_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "ba07097ec26ef2112020b5e009056607a2c16869af83ea6463d200675798d9be",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_server.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6afbbfcd53352de1c216f0d76a8d07a878963fe1324a0402a5aff40b4b47aab2",
- "format": 1
- },
- {
- "name": "plugins/modules/vultr_dns_domain_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "4ca4982d27a9f56d3a326eff153ff47f909e30027d93732deecfa6163069f1d2",
- "format": 1
- },
- {
- "name": "plugins/module_utils",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/module_utils/vultr.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "528ba35e2d038565b7975ee67ad2bb87f955d19849cd2709a63e2c35707c56ea",
- "format": 1
- },
- {
- "name": "plugins/inventory",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/inventory/vultr.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "374befb4a073327b898f476328584700b1b2ca33c699e3aa63b85fa890eab172",
- "format": 1
- },
- {
- "name": "plugins/inventory/__init__.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "format": 1
- },
- {
- "name": "meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "meta/runtime.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "04696fbd217cbc5e9a0e779e9e454dd4ea2ccaa2e64e2085e347a7462bf79f4c",
- "format": 1
- },
- {
- "name": "CONTRIBUTING.md",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d61725d614410e2ee0a900fb0f6b6d742ad8fb689ae27c4d6a3a7f89e82fc791",
- "format": 1
- },
- {
- "name": "COPYING",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "c61f12da7cdad526bdcbed47a4c0a603e60dbbfdaf8b66933cd088e9132c303f",
- "format": 1
- },
- {
- "name": "README.md",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "4df3dc2d6bcff98ce5764962a4113aa532b6b64a8d1424574f5e8ca9797b9c10",
- "format": 1
- },
- {
- "name": "tests",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/sanity",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/sanity/ignore-2.10.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "format": 1
- },
- {
- "name": "tests/integration",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_baremetal",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_baremetal/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_baremetal/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "68833971624986eaae87ba589430fb3b2aba3832e19146122cd114d20ff1faf1",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_baremetal/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_baremetal/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a75a95397dd5ff4e75aa41b33a7b142cd4b8e3298f351e3ad7ee7ee65ef26cb6",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_baremetal/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_plan_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_plan_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_plan_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3d923883d3a71a5555afc52cc37e231e1008876c9e842a16bf8377768b0f21ae",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_plan_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "2372e00148dd2e1989fed47315130a9f75b01f22183759f2905a1b78833fa5bb",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0405938e979d0f501873c49595a0eec4541488843f81e4a96b59a73da0813044",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0acb1ee578a5103b8b2031b0029387ab47773a2d44426eb3a41a16515145c5cd",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "87bc2569f04cdd9da8579f970937ca75f29a934b5f561e3900684003bdb2e097",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record/tasks/test_fail_multiple.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3a94ab90dcc82900b65490a746281c87160d580526d4ec38367feba99befa20d",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record/tasks/record.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "4c8c1b02a45598f03fa27946a87939e2b17b1719a8edb68650abb01482c64240",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record/tasks/update_record.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "8a814ab6ef117b021c046f01a8e03e53572716bbc6103262cd6627804d2f860b",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "b47d658ee4a20e470eacefc5c0af57b907bb59f6452ef26bc7a0c70c064d90b5",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record/tasks/remove_record.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "01024888321c9e35dade95aba129279ec0cb6427a455a4ac2b26e0cb5a3da7ab",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record/tasks/create_record.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6e3b6d7add4f8473e4595e678ade0804741ec1068e087839efbec0c5274ccdc9",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "7c3fd3f2a66a26ce7bd0a214f10a8a38a7cc32c929e1cb0edb2afa8d3f5c645a",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_record/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0564f7ada76804ade4f8f7859d596cdcff1346d5cbcab4231169e37077085480",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "60f56cb0a4e068a6cf706fb1f4274a7124fab21aba34cb4cc67e73f6f815cb3c",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a13acf223b7c92f2f0f983c444cbc607f9ca72cd82ecb23ec50da8f31fac9913",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group_info/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group_info/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "9cc9cf623c20f06134f0d2e26b4d00483c42144fc6e136274419f138820e3c4e",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "22b70287f62d5562b9095e154e25fe2673254a88e6d0a6b7cce9f6f830b605f0",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d6f8edf2333ade957235db03f9c8412db265aefe56736ac06f24fd534e50e356",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_account_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_account_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_account_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "5148a9bfd2dcc70aa62d5353969369689b4cd87e45d552084e17a1c7ef8b79c8",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_account_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a9f61a9487700a83508395d74ce06374baecfcaf4306b30f008d8b726c626a69",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a11142abb34964253786b2ea016c9a2ed58309aa051410b083226cf162742b9e",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user_info/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user_info/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e9a72a5ae88e71690565abf81fe1845976e98e4b60c6025f0679921da414ceac",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6688640d74d536b63a99aa454af8d95926d3414f3bd079db044f4a1aeab66995",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_info/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_info/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3583c2e51479f99f2789216687ca7d6e6a79c46c15fba4f60e846c25ec995595",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_plan_baremetal_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_plan_baremetal_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_plan_baremetal_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "01c4fbfc268b765fc270e362466b72b398fa2f112249592afcf11ba5f2c6418d",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_plan_baremetal_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "970b3f3fa2d747586bee87eff012ab07a9b3a2ad52673363a63c0bd6c5def496",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "9a42f029a3a8daba55ddff38d2f57bf3450b9a3974926000961a0947edf7fdfb",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_user/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "9fba8e6bc585ec240c3f3bffb23cfff580ac96af614abcb3cb1b48dda34b0899",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain_info/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain_info/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "92fad4ee0d5c2d22cb6aafdda4a9183fd62c27c97a56d70decbb0fb945eb1b2b",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_dns_domain_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e2ac0c621416243b85b0d0f2299a5943039f7bf1954831fc7a27399c334c2b2e",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "cf60b23a46df48b08ffce07e4def1d3291299bf8944b0d3dd3231b848febeb4e",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_group/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "94b223424a4ddc5ba9b41c6a2379cc42f92c772a44a70798cc2e884b5272f8f1",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage_info/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage_info/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a4609951c802849cf47485f3ac1f8a2456a7a983dc766a401c3b1e8abfec1f46",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_block_storage_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3732f439f529df507d7eab14482c3169b5c5ba21ae00587f67aded27ad3d5206",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0d9ebc00866bc772b097af315ebb7319b2a778a307505fd7d2094d3752f2b34f",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_server/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_region_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_region_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_region_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "758a60a461a9519fdb262d236962529c80e9517291ce9381e207db92337c768c",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_region_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_rule",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_rule/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_rule/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "c3df36fb3e46b9e23422f0ed4e4071ed281d20f46b6ed901e857be0abe6742e3",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_rule/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_rule/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "cf60b23a46df48b08ffce07e4def1d3291299bf8944b0d3dd3231b848febeb4e",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_firewall_rule/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_os_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_os_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_os_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "8d515e570329548c517d733888f9911af92d74b74b20b4a60cbb618580661fc9",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_os_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "be07a1772baa2f0d1fd9eb364ce8b2cf8f576c7b4811c1c0b301673083c095bf",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key_info/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key_info/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "554685b32769bcb7ee18dc94b2348362f45b7ca002ecb6d77d7f333703307431",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_ssh_key_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "ac16afb521ac559c983c0156ad13c3740a096db69beae749893791fbbdf915a2",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "c80c20cc2e0d5de0eaf1face10b2ca3c25ed1e2e0aed1b1ca8ee848e96a018fb",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "b9b380a86e35239430dc7422da32dfff6f6ec22f06e5409ff441369fdccd507e",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network_info/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network_info/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d9cd08d5e6dbd37f17ffbe7c917de9612232dc51f54a6cb71dfc212d8d202571",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_network_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script_info/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "271718ae1ecbe2fecf47d77888141cf0630d33122689c8830b9053d49210e2b1",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script_info/defaults",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script_info/defaults/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "f1cb3b66756569be69eb64f65f904c293d21125084629ebeb272d5bc69687712",
- "format": 1
- },
- {
- "name": "tests/integration/targets/vultr_startup_script_info/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "dc2ce6b1319ce6a5d14015a0ce0e61945a5fcb9f4b1cc1e3f2705ba7a5d4b466",
- "format": 1
- }
- ],
- "format": 1
-} \ No newline at end of file
diff --git a/ansible_collections/ngine_io/vultr/MANIFEST.json b/ansible_collections/ngine_io/vultr/MANIFEST.json
deleted file mode 100644
index 2525ae931..000000000
--- a/ansible_collections/ngine_io/vultr/MANIFEST.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "collection_info": {
- "namespace": "ngine_io",
- "name": "vultr",
- "version": "1.1.3",
- "authors": [
- "Ren\u00e9 Moser (@resmo)",
- "Yanis Guenane (@Spredzy)"
- ],
- "readme": "README.md",
- "tags": [
- "cloud",
- "vultr",
- "ngine_io"
- ],
- "description": "Ansible Collection for Vultr Cloud",
- "license": [
- "GPL-3.0-or-later"
- ],
- "license_file": null,
- "dependencies": {},
- "repository": "https://github.com/ngine-io/ansible-collection-vultr",
- "documentation": "",
- "homepage": "https://github.com/ngine-io/ansible-collection-vultr",
- "issues": "https://github.com/ngine-io/ansible-collection-vultr/issues"
- },
- "file_manifest_file": {
- "name": "FILES.json",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "83cdcf4ba11d97bfe889b2c8134dfdf3cfdbd083dd8ff3c95bf6f7e4186d3e5e",
- "format": 1
- },
- "format": 1
-} \ No newline at end of file
diff --git a/ansible_collections/ngine_io/vultr/README.md b/ansible_collections/ngine_io/vultr/README.md
deleted file mode 100644
index 68d74c1b1..000000000
--- a/ansible_collections/ngine_io/vultr/README.md
+++ /dev/null
@@ -1,87 +0,0 @@
-
-# !!! NOTE !!!
-
-This collection is in maintance mode: bug fixes only. For new features, please visit https://github.com/vultr/ansible-collection-vultr/.
-
-----
-
-![Collection integration](https://github.com/ngine-io/ansible-collection-vultr/workflows/Collection%20integration/badge.svg)
- [![Codecov](https://img.shields.io/codecov/c/github/ngine-io/ansible-collection-vultr)](https://codecov.io/gh/ngine-io/ansible-collection-vultr)
-[![License](https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg)](LICENSE)
-
-# Ansible Collection for Vultr Cloud
-
-This collection provides a series of Ansible modules and plugins for interacting with the [Vultr](https://www.vultr.com) Cloud.
-
-## Requirements
-
-- ansible version >= 2.9
-
-## Installation
-
-To install the collection hosted in Galaxy:
-
-```bash
-ansible-galaxy collection install ngine_io.vultr
-```
-
-To upgrade to the latest version of the collection:
-
-```bash
-ansible-galaxy collection install ngine_io.vultr --force
-```
-
-## Usage
-
-### Playbooks
-
-To use a module from Vultr collection, please reference the full namespace, collection name, and modules name that you want to use:
-
-```yaml
----
-- name: Using Vultr collection
- hosts: localhost
- tasks:
- - ngine_io.vultr.vultr_server:
- ...
-```
-
-Or you can add full namepsace and collecton name in the `collections` element:
-
-```yaml
----
-- name: Using Vultr collection
- hosts: localhost
- collections:
- - ngine_io.vultr
- tasks:
- - vultr_server:
- ...
-```
-
-### Roles
-
-For existing Ansible roles, please also reference the full namespace, collection name, and modules name which used in tasks instead of just modules name.
-
-### Plugins
-
-To use a pluign, please reference the full namespace, collection name, and plugins name that you want to use:
-
-```yaml
-plugin: ngine_io.vultr.vultr
-```
-
-## Contributing
-
-There are many ways in which you can participate in the project, for example:
-
-- Submit bugs and feature requests, and help us verify as they are checked in
-- Review source code changes
-- Review the documentation and make pull requests for anything from typos to new content
-- If you are interested in fixing issues and contributing directly to the code base, please see the [CONTRIBUTING](CONTRIBUTING.md) document.
-
-## License
-
-GNU General Public License v3.0
-
-See [COPYING](COPYING) to see the full text.
diff --git a/ansible_collections/ngine_io/vultr/changelogs/.gitignore b/ansible_collections/ngine_io/vultr/changelogs/.gitignore
deleted file mode 100644
index 6be6b5331..000000000
--- a/ansible_collections/ngine_io/vultr/changelogs/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/.plugin-cache.yaml
diff --git a/ansible_collections/ngine_io/vultr/changelogs/changelog.yaml b/ansible_collections/ngine_io/vultr/changelogs/changelog.yaml
deleted file mode 100644
index 37cba1d19..000000000
--- a/ansible_collections/ngine_io/vultr/changelogs/changelog.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-ancestor: null
-releases:
- 0.3.0:
- changes:
- bugfixes:
- - vultr - Fixed the issue retry max delay param was ignored.
- minor_changes:
- - vultr_server_info, vultr_server - Improved handling of discontinued plans
- (https://github.com/ansible/ansible/issues/66707).
- fragments:
- - 66792-vultr-improve-plan.yml
- - 67437-vultr-fix-retry-max-delay-param.yml
- modules:
- - description: Gather information about the Vultr Bare Metal plans available.
- name: vultr_plan_baremetal_info
- namespace: ''
- - description: Manages baremetal servers on Vultr.
- name: vultr_server_baremetal
- namespace: ''
- release_date: '2020-07-03'
- 1.0.0:
- release_date: '2020-08-16'
- 1.1.0:
- changes:
- minor_changes:
- - vultr_block_storage - Included ability to resize, attach and detach Block
- Storage Volumes.
- fragments:
- - 14-attach-detach-and-resize-volumes.yml
- release_date: '2021-02-02'
- 1.1.1:
- changes:
- bugfixes:
- - vultr_server - Fix user data not handled correctly (https://github.com/ngine-io/ansible-collection-vultr/pull/26).
- fragments:
- - 26-fix-user-data.yml
- release_date: '2022-03-27'
- 1.1.2:
- changes:
- minor_changes:
- - Documentation fixes.
- release_summary: 'This collection has turned into maintenance mode. We encourage
- you to add new features to its successor at https://galaxy.ansible.com/vultr/cloud.
-
- '
- fragments:
- - sanity.yml
- - summary.yml
- release_date: '2022-06-08'
- 1.1.3:
- changes:
- bugfixes:
- - iventory - Fixed ``allowed_bandwidth_gb`` to be returned as float (https://github.com/ngine-io/ansible-collection-vultr/pull/35).
- - vultr_server - Fixed ``allowed_bandwidth_gb`` to be returned as float (https://github.com/ngine-io/ansible-collection-vultr/pull/35).
- - vultr_server_baremetal - Fixed ``allowed_bandwidth_gb`` to be returned as
- float (https://github.com/ngine-io/ansible-collection-vultr/pull/35).
- fragments:
- - allowed_bandwidth_gb.yml
- release_date: '2023-01-23'
diff --git a/ansible_collections/ngine_io/vultr/changelogs/config.yaml b/ansible_collections/ngine_io/vultr/changelogs/config.yaml
deleted file mode 100644
index bd5621fa0..000000000
--- a/ansible_collections/ngine_io/vultr/changelogs/config.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-changelog_filename_template: ../CHANGELOG.rst
-changelog_filename_version_depth: 0
-changes_file: changelog.yaml
-changes_format: combined
-keep_fragments: false
-mention_ancestor: true
-new_plugins_after_name: removed_features
-notesdir: fragments
-prelude_section_name: release_summary
-prelude_section_title: Release Summary
-sections:
- - - major_changes
- - Major Changes
- - - minor_changes
- - Minor Changes
- - - breaking_changes
- - Breaking Changes / Porting Guide
- - - deprecated_features
- - Deprecated Features
- - - removed_features
- - Removed Features (previously deprecated)
- - - security_fixes
- - Security Fixes
- - - bugfixes
- - Bugfixes
- - - known_issues
- - Known Issues
-title: Vultr Collection
-trivial_section_name: trivial
diff --git a/ansible_collections/ngine_io/vultr/changelogs/fragments/.keep b/ansible_collections/ngine_io/vultr/changelogs/fragments/.keep
deleted file mode 100644
index e69de29bb..000000000
--- a/ansible_collections/ngine_io/vultr/changelogs/fragments/.keep
+++ /dev/null
diff --git a/ansible_collections/ngine_io/vultr/codecov.yml b/ansible_collections/ngine_io/vultr/codecov.yml
deleted file mode 100644
index 33c8f6eee..000000000
--- a/ansible_collections/ngine_io/vultr/codecov.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-coverage:
- precision: 2
- round: down
- range: "70...100"
diff --git a/ansible_collections/ngine_io/vultr/meta/runtime.yml b/ansible_collections/ngine_io/vultr/meta/runtime.yml
deleted file mode 100644
index d366b4b05..000000000
--- a/ansible_collections/ngine_io/vultr/meta/runtime.yml
+++ /dev/null
@@ -1,135 +0,0 @@
-requires_ansible: '>=2.9.10'
-action_groups:
- vultr:
- - vultr_user
- - vultr_plan_baremetal_info
- - vultr_user_info
- - vultr_block_storage
- - vultr_plan_info
- - vultr_ssh_key_info
- - vultr_network_info
- - vultr_firewall_group_info
- - vultr_ssh_key
- - vultr_dns_domain
- - vultr_server_info
- - vultr_dns_record
- - vultr_server_baremetal
- - vultr_block_storage_info
- - vultr_firewall_group
- - vultr_region_info
- - vultr_network
- - vultr_account_info
- - vultr_firewall_rule
- - vultr_dns_domain_info
- - vultr_server
- - vultr_startup_script
- - vultr_os_info
- - vultr_startup_script_info
-
-plugin_routing:
- modules:
- vr_account_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_account_info
- redirect: ngine_io.vultr.vultr_account_info
- vr_dns_domain:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_dns_domain
- redirect: ngine_io.vultr.vultr_dns_domain
- vr_dns_record:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_dns_record
- redirect: ngine_io.vultr.vultr_dns_record
- vr_firewall_group:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_firewall_group
- redirect: ngine_io.vultr.vultr_firewall_group
- vr_firewall_rule:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_firewall_rule
- redirect: ngine_io.vultr.vultr_firewall_rule
- vr_server:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_server
- redirect: ngine_io.vultr.vultr_server
- vr_ssh_key:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_ssh_key
- redirect: ngine_io.vultr.vultr_ssh_key
- vr_startup_script:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_startup_script
- redirect: ngine_io.vultr.vultr_startup_script
- vr_user:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_user
- redirect: ngine_io.vultr.vultr_user
- vultr_account_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_account_info
- redirect: ngine_io.vultr.vultr_account_info
- vultr_block_storage_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_block_storage_info
- redirect: ngine_io.vultr.vultr_block_storage_info
- vultr_dns_domain_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_dns_domain_info
- redirect: ngine_io.vultr.vultr_dns_domain_info
- vultr_firewall_group_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_firewall_group_info
- redirect: ngine_io.vultr.vultr_firewall_group_info
- vultr_network_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_network_info
- redirect: ngine_io.vultr.vultr_network_info
- vultr_os_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_os_info
- redirect: ngine_io.vultr.vultr_os_info
- vultr_plan_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_plan_info
- redirect: ngine_io.vultr.vultr_plan_info
- vultr_region_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_region_info
- redirect: ngine_io.vultr.vultr_region_info
- vultr_server_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_server_info
- redirect: ngine_io.vultr.vultr_server_info
- vultr_ssh_key_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_ssh_key_info
- redirect: ngine_io.vultr.vultr_ssh_key_info
- vultr_startup_script_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_startup_script_info
- redirect: ngine_io.vultr.vultr_startup_script_info
- vultr_user_facts:
- deprecation:
- removal_date: 2021-12-12
- warning_text: module was renamed, use ngine_io.vultr.vultr_user_info
- redirect: ngine_io.vultr.vultr_user_info
diff --git a/ansible_collections/ngine_io/vultr/plugins/doc_fragments/__init__.py b/ansible_collections/ngine_io/vultr/plugins/doc_fragments/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/doc_fragments/__init__.py
+++ /dev/null
diff --git a/ansible_collections/ngine_io/vultr/plugins/doc_fragments/vultr.py b/ansible_collections/ngine_io/vultr/plugins/doc_fragments/vultr.py
deleted file mode 100644
index cb5cfb64f..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/doc_fragments/vultr.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2017 René Moser <mail@renemoser.net>
-# 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
-
-
-class ModuleDocFragment(object):
-
- # Standard documentation fragment
- DOCUMENTATION = r'''
-options:
- api_key:
- description:
- - API key of the Vultr API.
- - The ENV variable C(VULTR_API_KEY) is used as default, when defined.
- type: str
- api_timeout:
- description:
- - HTTP timeout to Vultr API.
- - The ENV variable C(VULTR_API_TIMEOUT) is used as default, when defined.
- - Fallback value is 60 seconds if not specified.
- type: int
- api_retries:
- description:
- - Amount of retries in case of the Vultr API retuns an HTTP 503 code.
- - The ENV variable C(VULTR_API_RETRIES) is used as default, when defined.
- - Fallback value is 5 retries if not specified.
- type: int
- api_retry_max_delay:
- description:
- - Retry backoff delay in seconds is exponential up to this max. value, in seconds.
- - The ENV variable C(VULTR_API_RETRY_MAX_DELAY) is used as default, when defined.
- - Fallback value is 12 seconds.
- type: int
- api_account:
- description:
- - Name of the ini section in the C(vultr.ini) file.
- - The ENV variable C(VULTR_API_ACCOUNT) is used as default, when defined.
- type: str
- default: default
- api_endpoint:
- description:
- - URL to API endpint (without trailing slash).
- - The ENV variable C(VULTR_API_ENDPOINT) is used as default, when defined.
- - Fallback value is U(https://api.vultr.com) if not specified.
- type: str
- validate_certs:
- description:
- - Validate SSL certs of the Vultr API.
- type: bool
- default: yes
-requirements:
- - python >= 2.6
-notes:
- - Also see the API documentation on https://www.vultr.com/api/.
-'''
diff --git a/ansible_collections/ngine_io/vultr/plugins/inventory/__init__.py b/ansible_collections/ngine_io/vultr/plugins/inventory/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/inventory/__init__.py
+++ /dev/null
diff --git a/ansible_collections/ngine_io/vultr/plugins/inventory/vultr.py b/ansible_collections/ngine_io/vultr/plugins/inventory/vultr.py
deleted file mode 100644
index a44b47178..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/inventory/vultr.py
+++ /dev/null
@@ -1,200 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# Copyright (c) 2019, René Moser <mail@renemoser.net>
-# 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 = r'''
- name: vultr
- author:
- - Yanis Guenane (@Spredzy)
- - René Moser (@resmo)
- short_description: Vultr inventory source
- extends_documentation_fragment:
- - constructed
- description:
- - Get inventory hosts from Vultr public cloud.
- - Uses an YAML configuration file ending with either I(vultr.yml) or I(vultr.yaml) to set parameter values (also see examples).
- - Uses I(api_config), I(~/.vultr.ini), I(./vultr.ini) or C(VULTR_API_CONFIG) pointing to a Vultr credentials INI file
- (see U(https://docs.ansible.com/ansible/latest/scenario_guides/guide_vultr.html)).
- options:
- plugin:
- description: Token that ensures this is a source file for the 'vultr' plugin.
- type: string
- required: True
- choices: [ vultr ]
- api_account:
- description: Specify the account to be used.
- type: string
- default: default
- api_config:
- description: Path to the vultr configuration file. If not specified will be taken from regular Vultr configuration.
- type: path
- env:
- - name: VULTR_API_CONFIG
- api_key:
- description: Vultr API key. If not specified will be taken from regular Vultr configuration.
- type: string
- env:
- - name: VULTR_API_KEY
- hostname:
- description: Field to match the hostname. Note v4_main_ip corresponds to the main_ip field returned from the API and name to label.
- type: string
- default: v4_main_ip
- choices:
- - v4_main_ip
- - v6_main_ip
- - name
- filter_by_tag:
- description: Only return servers filtered by this tag
- type: string
-'''
-
-EXAMPLES = r'''
-# inventory_vultr.yml file in YAML format
-# Example command line: ansible-inventory --list -i inventory_vultr.yml
-
-# Group by a region as lower case and with prefix e.g. "vultr_region_amsterdam" and by OS without prefix e.g. "CentOS_7_x64"
-plugin: vultr
-keyed_groups:
- - prefix: vultr_region
- key: region | lower
- - separator: ""
- key: os
-
-# Pass a tag filter to the API
-plugin: vultr
-filter_by_tag: Cache
-'''
-
-import json
-
-from ansible.errors import AnsibleError
-from ansible.plugins.inventory import BaseInventoryPlugin, Constructable
-from ansible.module_utils.six.moves import configparser
-from ansible.module_utils.urls import open_url
-from ansible.module_utils._text import to_native
-from ..module_utils.vultr import Vultr, VULTR_API_ENDPOINT, VULTR_USER_AGENT
-from ansible.module_utils.six.moves.urllib.parse import quote
-
-
-SCHEMA = {
- 'SUBID': dict(key='id'),
- 'label': dict(key='name'),
- 'date_created': dict(),
- 'allowed_bandwidth_gb': dict(convert_to='float'),
- 'auto_backups': dict(key='auto_backup_enabled', convert_to='bool'),
- 'current_bandwidth_gb': dict(),
- 'kvm_url': dict(),
- 'default_password': dict(),
- 'internal_ip': dict(),
- 'disk': dict(),
- 'cost_per_month': dict(convert_to='float'),
- 'location': dict(key='region'),
- 'main_ip': dict(key='v4_main_ip'),
- 'network_v4': dict(key='v4_network'),
- 'gateway_v4': dict(key='v4_gateway'),
- 'os': dict(),
- 'pending_charges': dict(convert_to='float'),
- 'power_status': dict(),
- 'ram': dict(),
- 'plan': dict(),
- 'server_state': dict(),
- 'status': dict(),
- 'firewall_group': dict(),
- 'tag': dict(),
- 'v6_main_ip': dict(),
- 'v6_network': dict(),
- 'v6_network_size': dict(),
- 'v6_networks': dict(),
- 'vcpu_count': dict(convert_to='int'),
-}
-
-
-def _load_conf(path, account):
-
- if path:
- conf = configparser.ConfigParser()
- conf.read(path)
-
- if not conf._sections.get(account):
- return None
-
- return dict(conf.items(account))
- else:
- return Vultr.read_ini_config(account)
-
-
-def _retrieve_servers(api_key, tag_filter=None):
- api_url = '%s/v1/server/list' % VULTR_API_ENDPOINT
- if tag_filter is not None:
- api_url = api_url + '?tag=%s' % quote(tag_filter)
-
- try:
- response = open_url(
- api_url, headers={'API-Key': api_key, 'Content-type': 'application/json'},
- http_agent=VULTR_USER_AGENT,
- )
- servers_list = json.loads(response.read())
-
- return servers_list.values() if servers_list else []
- except ValueError:
- raise AnsibleError("Incorrect JSON payload")
- except Exception as e:
- raise AnsibleError("Error while fetching %s: %s" % (api_url, to_native(e)))
-
-
-class InventoryModule(BaseInventoryPlugin, Constructable):
-
- NAME = 'ngine_io.vultr.vultr'
-
- def verify_file(self, path):
- valid = False
- if super(InventoryModule, self).verify_file(path):
- if path.endswith(('vultr.yaml', 'vultr.yml')):
- valid = True
- return valid
-
- def parse(self, inventory, loader, path, cache=True):
- super(InventoryModule, self).parse(inventory, loader, path)
- self._read_config_data(path=path)
-
- conf = _load_conf(self.get_option('api_config'), self.get_option('api_account'))
- try:
- api_key = self.get_option('api_key') or conf.get('key')
- except Exception:
- raise AnsibleError('Could not find an API key. Check inventory file and Vultr configuration files.')
-
- hostname_preference = self.get_option('hostname')
-
- # Add a top group 'vultr'
- self.inventory.add_group(group='vultr')
-
- # Filter by tag is supported by the api with a query
- filter_by_tag = self.get_option('filter_by_tag')
- for server in _retrieve_servers(api_key, filter_by_tag):
-
- server = Vultr.normalize_result(server, SCHEMA)
-
- self.inventory.add_host(host=server['name'], group='vultr')
-
- for attribute, value in server.items():
- self.inventory.set_variable(server['name'], attribute, value)
-
- if hostname_preference != 'name':
- self.inventory.set_variable(server['name'], 'ansible_host', server[hostname_preference])
-
- # Use constructed if applicable
- strict = self.get_option('strict')
-
- # Composed variables
- self._set_composite_vars(self.get_option('compose'), server, server['name'], strict=strict)
-
- # Complex groups based on jinja2 conditionals, hosts that meet the conditional are added to group
- self._add_host_to_composed_groups(self.get_option('groups'), server, server['name'], strict=strict)
-
- # Create groups based on variable values and add the corresponding hosts to it
- self._add_host_to_keyed_groups(self.get_option('keyed_groups'), server, server['name'], strict=strict)
diff --git a/ansible_collections/ngine_io/vultr/plugins/module_utils/vultr.py b/ansible_collections/ngine_io/vultr/plugins/module_utils/vultr.py
deleted file mode 100644
index 81e7b62cb..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/module_utils/vultr.py
+++ /dev/null
@@ -1,336 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2017, René Moser <mail@renemoser.net>
-# Simplified BSD License (see licenses/simplified_bsd.txt or https://opensource.org/licenses/BSD-2-Clause)
-
-from __future__ import absolute_import, division, print_function
-__metaclass__ = type
-
-import os
-import time
-import random
-import urllib
-from ansible.module_utils.six.moves import configparser
-from ansible.module_utils._text import to_text, to_native
-from ansible.module_utils.urls import fetch_url
-
-
-VULTR_API_ENDPOINT = "https://api.vultr.com"
-VULTR_USER_AGENT = 'Ansible Vultr'
-
-
-def vultr_argument_spec():
- return dict(
- api_key=dict(type='str', default=os.environ.get('VULTR_API_KEY'), no_log=True),
- api_timeout=dict(type='int', default=os.environ.get('VULTR_API_TIMEOUT')),
- api_retries=dict(type='int', default=os.environ.get('VULTR_API_RETRIES')),
- api_retry_max_delay=dict(type='int', default=os.environ.get('VULTR_API_RETRY_MAX_DELAY')),
- api_account=dict(type='str', default=os.environ.get('VULTR_API_ACCOUNT') or 'default'),
- api_endpoint=dict(type='str', default=os.environ.get('VULTR_API_ENDPOINT')),
- validate_certs=dict(type='bool', default=True),
- )
-
-
-class Vultr:
-
- def __init__(self, module, namespace):
-
- if module._name.startswith('vr_'):
- module.deprecate(
- "The Vultr modules were renamed. The prefix of the modules changed from vr_ to vultr_",
- collection_name='ngine_io.vultr',
- version='2.0.0') # Was Ansbile 2.11
-
- self.module = module
-
- # Namespace use for returns
- self.namespace = namespace
- self.result = {
- 'changed': False,
- namespace: dict(),
- 'diff': dict(before=dict(), after=dict())
- }
-
- # For caching HTTP API responses
- self.api_cache = dict()
-
- try:
- config = self.read_env_variables()
- config.update(Vultr.read_ini_config(self.module.params.get('api_account')))
- except KeyError:
- config = {}
-
- try:
- self.api_config = {
- 'api_key': self.module.params.get('api_key') or config.get('key'),
- 'api_timeout': self.module.params.get('api_timeout') or int(config.get('timeout') or 60),
- 'api_retries': self.module.params.get('api_retries') or int(config.get('retries') or 5),
- 'api_retry_max_delay': self.module.params.get('api_retry_max_delay') or int(config.get('retry_max_delay') or 12),
- 'api_endpoint': self.module.params.get('api_endpoint') or config.get('endpoint') or VULTR_API_ENDPOINT,
- }
- except ValueError as e:
- self.fail_json(msg="One of the following settings, "
- "in section '%s' in the ini config file has not an int value: timeout, retries. "
- "Error was %s" % (self.module.params.get('api_account'), to_native(e)))
-
- if not self.api_config.get('api_key'):
- self.module.fail_json(msg="No API key was specified. Please refer to the documentation.")
-
- # Common vultr returns
- self.result['vultr_api'] = {
- 'api_account': self.module.params.get('api_account'),
- 'api_timeout': self.api_config['api_timeout'],
- 'api_retries': self.api_config['api_retries'],
- 'api_retry_max_delay': self.api_config['api_retry_max_delay'],
- 'api_endpoint': self.api_config['api_endpoint'],
- }
-
- # Headers to be passed to the API
- self.headers = {
- 'API-Key': "%s" % self.api_config['api_key'],
- 'User-Agent': VULTR_USER_AGENT,
- 'Accept': 'application/json',
- }
-
- def read_env_variables(self):
- keys = ['key', 'timeout', 'retries', 'retry_max_delay', 'endpoint']
- env_conf = {}
- for key in keys:
- if 'VULTR_API_%s' % key.upper() not in os.environ:
- continue
- env_conf[key] = os.environ['VULTR_API_%s' % key.upper()]
-
- return env_conf
-
- @staticmethod
- def read_ini_config(ini_group):
- paths = (
- os.path.join(os.path.expanduser('~'), '.vultr.ini'),
- os.path.join(os.getcwd(), 'vultr.ini'),
- )
- if 'VULTR_API_CONFIG' in os.environ:
- paths += (os.path.expanduser(os.environ['VULTR_API_CONFIG']),)
-
- conf = configparser.ConfigParser()
- conf.read(paths)
-
- if not conf._sections.get(ini_group):
- return dict()
-
- return dict(conf.items(ini_group))
-
- def fail_json(self, **kwargs):
- self.result.update(kwargs)
- self.module.fail_json(**self.result)
-
- def get_yes_or_no(self, key):
- if self.module.params.get(key) is not None:
- return 'yes' if self.module.params.get(key) is True else 'no'
-
- def switch_enable_disable(self, resource, param_key, resource_key=None):
- if resource_key is None:
- resource_key = param_key
-
- param = self.module.params.get(param_key)
- if param is None:
- return
-
- r_value = resource.get(resource_key)
- if r_value in ['yes', 'no']:
- if param and r_value != 'yes':
- return "enable"
- elif not param and r_value != 'no':
- return "disable"
- else:
- if param and not r_value:
- return "enable"
- elif not param and r_value:
- return "disable"
-
- def api_query(self, path="/", method="GET", data=None):
- url = self.api_config['api_endpoint'] + path
-
- if data:
- data_encoded = dict()
- data_list = ""
- for k, v in data.items():
- if isinstance(v, list):
- for s in v:
- try:
- data_list += '&%s[]=%s' % (k, urllib.quote(s))
- except AttributeError:
- data_list += '&%s[]=%s' % (k, urllib.parse.quote(s))
- elif v is not None:
- data_encoded[k] = v
- try:
- data = urllib.urlencode(data_encoded) + data_list
- except AttributeError:
- data = urllib.parse.urlencode(data_encoded) + data_list
-
- retry_max_delay = self.api_config['api_retry_max_delay']
- randomness = random.randint(0, 1000) / 1000.0
-
- for retry in range(0, self.api_config['api_retries']):
- response, info = fetch_url(
- module=self.module,
- url=url,
- data=data,
- method=method,
- headers=self.headers,
- timeout=self.api_config['api_timeout'],
- )
-
- if info.get('status') == 200:
- break
-
- # Vultr has a rate limiting requests per second, try to be polite
- # Use exponential backoff plus a little bit of randomness
- delay = 2 ** retry + randomness
- if delay > retry_max_delay:
- delay = retry_max_delay + randomness
- time.sleep(delay)
-
- else:
- self.fail_json(msg="Reached API retries limit %s for URL %s, method %s with data %s. Returned %s, with body: %s %s" % (
- self.api_config['api_retries'],
- url,
- method,
- data,
- info['status'],
- info['msg'],
- info.get('body')
- ))
-
- if info.get('status') != 200:
- self.fail_json(msg="URL %s, method %s with data %s. Returned %s, with body: %s %s" % (
- url,
- method,
- data,
- info['status'],
- info['msg'],
- info.get('body')
- ))
-
- res = response.read()
- if not res:
- return {}
-
- try:
- return self.module.from_json(to_native(res)) or {}
- except ValueError as e:
- self.module.fail_json(msg="Could not process response into json: %s" % e)
-
- def query_resource_by_key(self, key, value, resource='regions', query_by='list', params=None, use_cache=False, id_key=None, optional=False):
- if not value:
- return {}
-
- r_list = None
- if use_cache:
- r_list = self.api_cache.get(resource)
-
- if not r_list:
- r_list = self.api_query(path="/v1/%s/%s" % (resource, query_by), data=params)
- if use_cache:
- self.api_cache.update({
- resource: r_list
- })
-
- if not r_list:
- return {}
-
- elif isinstance(r_list, list):
- for r_data in r_list:
- if str(r_data[key]) == str(value):
- return r_data
- if id_key is not None and to_text(r_data[id_key]) == to_text(value):
- return r_data
- elif isinstance(r_list, dict):
- for r_id, r_data in r_list.items():
- if str(r_data[key]) == str(value):
- return r_data
- if id_key is not None and to_text(r_data[id_key]) == to_text(value):
- return r_data
- if not optional:
- if id_key:
- msg = "Could not find %s with ID or %s: %s" % (resource, key, value)
- else:
- msg = "Could not find %s with %s: %s" % (resource, key, value)
- self.module.fail_json(msg=msg)
- return {}
-
- @staticmethod
- def normalize_result(resource, schema, remove_missing_keys=True):
- if remove_missing_keys:
- fields_to_remove = set(resource.keys()) - set(schema.keys())
- for field in fields_to_remove:
- resource.pop(field)
-
- for search_key, config in schema.items():
- if search_key in resource:
- if 'convert_to' in config:
- if config['convert_to'] == 'int':
- resource[search_key] = int(resource[search_key])
- elif config['convert_to'] == 'float':
- resource[search_key] = float(resource[search_key])
- elif config['convert_to'] == 'bool':
- resource[search_key] = True if resource[search_key] == 'yes' else False
-
- if 'transform' in config:
- resource[search_key] = config['transform'](resource[search_key])
-
- if 'key' in config:
- resource[config['key']] = resource[search_key]
- del resource[search_key]
-
- return resource
-
- def get_result(self, resource):
- if resource:
- if isinstance(resource, list):
- self.result[self.namespace] = [Vultr.normalize_result(item, self.returns) for item in resource]
- else:
- self.result[self.namespace] = Vultr.normalize_result(resource, self.returns)
-
- return self.result
-
- def get_plan(self, plan=None, key='name', optional=False):
- value = plan or self.module.params.get('plan')
-
- return self.query_resource_by_key(
- key=key,
- value=value,
- resource='plans',
- use_cache=True,
- id_key='VPSPLANID',
- optional=optional,
- )
-
- def get_firewallgroup(self, firewallgroup=None, key='description'):
- value = firewallgroup or self.module.params.get('firewallgroup')
-
- return self.query_resource_by_key(
- key=key,
- value=value,
- resource='firewall',
- query_by='group_list',
- use_cache=True
- )
-
- def get_application(self, application=None, key='name'):
- value = application or self.module.params.get('application')
-
- return self.query_resource_by_key(
- key=key,
- value=value,
- resource='app',
- use_cache=True
- )
-
- def get_region(self, region=None, key='name'):
- value = region or self.module.params.get('region')
-
- return self.query_resource_by_key(
- key=key,
- value=value,
- resource='regions',
- use_cache=True
- )
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/__init__.py b/ansible_collections/ngine_io/vultr/plugins/modules/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/__init__.py
+++ /dev/null
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_account_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_account_info.py
deleted file mode 100644
index 1718ff664..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_account_info.py
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2019, René Moser <mail@renemoser.net>
-# 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 = r'''
----
-module: vultr_account_info
-short_description: Get information about the Vultr account.
-description:
- - Get infos about account balance, charges and payments.
-version_added: "0.1.0"
-author: "René Moser (@resmo)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Get Vultr account infos
- ngine_io.vultr.vultr_account_info:
- register: result
-
-- name: Print the infos
- debug:
- var: result.vultr_account_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_account_info:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- balance:
- description: Your account balance.
- returned: success
- type: float
- sample: -214.69
- pending_charges:
- description: Charges pending.
- returned: success
- type: float
- sample: 57.03
- last_payment_date:
- description: Date of the last payment.
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
- last_payment_amount:
- description: The amount of the last payment transaction.
- returned: success
- type: float
- sample: -250.0
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrAccountInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrAccountInfo, self).__init__(module, "vultr_account_info")
-
- self.returns = {
- 'balance': dict(convert_to='float'),
- 'pending_charges': dict(convert_to='float'),
- 'last_payment_date': dict(),
- 'last_payment_amount': dict(convert_to='float'),
- }
-
- def get_account_info(self):
- return self.api_query(path="/v1/account/info")
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- account_info = AnsibleVultrAccountInfo(module)
- result = account_info.get_result(account_info.get_account_info())
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_block_storage.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_block_storage.py
deleted file mode 100644
index 5cda1cd1a..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_block_storage.py
+++ /dev/null
@@ -1,382 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# 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: vultr_block_storage
-short_description: Manages block storage volumes on Vultr.
-description:
- - Manage block storage volumes on Vultr.
-author: "Yanis Guenane (@Spredzy)"
-version_added: "0.1.0"
-options:
- name:
- description:
- - Name of the block storage volume.
- required: true
- aliases: [ description, label ]
- type: str
- size:
- description:
- - Size of the block storage volume in GB.
- - Required if I(state) is present.
- - If it's larger than the volume's current size, the volume will be resized.
- type: int
- region:
- description:
- - Region the block storage volume is deployed into.
- - Required if I(state) is present.
- type: str
- state:
- description:
- - State of the block storage volume.
- default: present
- choices: [ present, absent, attached, detached ]
- type: str
- attached_to_SUBID:
- description:
- - The ID of the server the volume is attached to.
- - Required if I(state) is attached.
- aliases: [ attached_to_id ]
- type: int
- live_attachment:
- description:
- - Whether the volume should be attached/detached, even if the server not stopped.
- type: bool
- default: True
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = '''
-- name: Ensure a block storage volume is present
- ngine_io.vultr.vultr_block_storage:
- name: myvolume
- size: 10
- region: Amsterdam
-
-- name: Ensure a block storage volume is absent
- ngine_io.vultr.vultr_block_storage:
- name: myvolume
- state: absent
-
-- name: Ensure a block storage volume exists and is attached to server 114
- ngine_io.vultr.vultr_block_storage:
- name: myvolume
- state: attached
- attached_to_id: 114
- size: 10
-
-- name: Ensure a block storage volume exists and is not attached to any server
- ngine_io.vultr.vultr_block_storage:
- name: myvolume
- state: detached
- size: 10
-'''
-
-RETURN = '''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_block_storage:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- attached_to_id:
- description: The ID of the server the volume is attached to
- returned: success
- type: str
- sample: "10194376"
- cost_per_month:
- description: Cost per month for the volume
- returned: success
- type: float
- sample: 1.00
- date_created:
- description: Date when the volume was created
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
- id:
- description: ID of the block storage volume
- returned: success
- type: str
- sample: "1234abcd"
- name:
- description: Name of the volume
- returned: success
- type: str
- sample: "ansible-test-volume"
- region:
- description: Region the volume was deployed into
- returned: success
- type: str
- sample: "New Jersey"
- size:
- description: Information about the volume size in GB
- returned: success
- type: int
- sample: 10
- status:
- description: Status about the deployment of the volume
- returned: success
- type: str
- sample: "active"
-
-'''
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrBlockStorage(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrBlockStorage, self).__init__(module, "vultr_block_storage")
-
- self.returns = {
- 'SUBID': dict(key='id'),
- 'label': dict(key='name'),
- 'DCID': dict(key='region', transform=self._get_region_name),
- 'attached_to_SUBID': dict(key='attached_to_id'),
- 'cost_per_month': dict(convert_to='float'),
- 'date_created': dict(),
- 'size_gb': dict(key='size', convert_to='int'),
- 'status': dict()
- }
-
- def _get_region_name(self, region):
- return self.get_region(region, 'DCID').get('name')
-
- def get_block_storage_volumes(self):
- volumes = self.api_query(path="/v1/block/list")
- if volumes:
- for volume in volumes:
- if volume.get('label') == self.module.params.get('name'):
- return volume
- return {}
-
- def present_block_storage_volume(self):
- volume = self.get_block_storage_volumes()
- if not volume:
- volume = self._create_block_storage_volume(volume)
- return volume
-
- def _create_block_storage_volume(self, volume):
- self.result['changed'] = True
- data = {
- 'label': self.module.params.get('name'),
- 'DCID': self.get_region().get('DCID'),
- 'size_gb': self.module.params.get('size')
- }
- self.result['diff']['before'] = {}
- self.result['diff']['after'] = data
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/block/create",
- method="POST",
- data=data
- )
- volume = self.get_block_storage_volumes()
- return volume
-
- def absent_block_storage_volume(self):
- volume = self.get_block_storage_volumes()
- if volume:
- self.result['changed'] = True
-
- data = {
- 'SUBID': volume['SUBID'],
- }
-
- self.result['diff']['before'] = volume
- self.result['diff']['after'] = {}
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/block/delete",
- method="POST",
- data=data
- )
- return volume
-
- def detached_block_storage_volume(self):
- volume = self.present_block_storage_volume()
- if volume.get('attached_to_SUBID') is None:
- return volume
-
- self.result['changed'] = True
-
- if not self.module.check_mode:
- data = {
- 'SUBID': volume['SUBID'],
- 'live': self.get_yes_or_no('live_attachment')
- }
- self.api_query(
- path='/v1/block/detach',
- method='POST',
- data=data
- )
-
- volume = self.get_block_storage_volumes()
- else:
- volume['attached_to_SUBID'] = None
-
- self.result['diff']['after'] = volume
-
- return volume
-
- def attached_block_storage_volume(self):
- expected_server = self.module.params.get('attached_to_SUBID')
- volume = self.present_block_storage_volume()
- server = volume.get('attached_to_SUBID')
- if server == expected_server:
- return volume
-
- if server is not None:
- self.module.fail_json(
- msg='Volume already attached to server %s' % server
- )
-
- self.result['changed'] = True
-
- if not self.module.check_mode:
- data = {
- 'SUBID': volume['SUBID'],
- # This API call expects a param called attach_to_SUBID,
- # but all the BlockStorage API response payloads call
- # this parameter attached_to_SUBID. So we'll standardize
- # to the latter and attached_to_id, but we'll pass the
- # expected attach_to_SUBID to this API call.
- 'attach_to_SUBID': expected_server,
- 'live': self.get_yes_or_no('live_attachment'),
- }
- self.api_query(
- path='/v1/block/attach',
- method='POST',
- data=data
- )
- volume = self.get_block_storage_volumes()
- else:
- volume['attached_to_SUBID'] = expected_server
-
- self.result['diff']['after'] = volume
-
- return volume
-
- def ensure_volume_size(self, volume, expected_size):
- curr_size = volume.get('size_gb')
- # When creating, attaching, or detaching a volume in check_mode,
- # sadly, size_gb doesn't exist, because those methods return the
- # result of get_block_storage_volumes, which is {} on check_mode.
- if curr_size is None or curr_size >= expected_size:
- # we only resize volumes that are smaller than
- # expected. There's no shrinking operation.
- return volume
-
- self.result['changed'] = True
-
- volume['size_gb'] = expected_size
- self.result['diff']['after'] = volume
-
- if not self.module.check_mode:
- data = {'SUBID': volume['SUBID'], 'size_gb': expected_size}
- self.api_query(
- path='/v1/block/resize',
- method='POST',
- data=data,
- )
-
- return volume
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- name=dict(type='str', required=True, aliases=['description', 'label']),
- size=dict(type='int'),
- region=dict(type='str'),
- state=dict(
- type='str',
- choices=['present', 'absent', 'attached', 'detached'],
- default='present'
- ),
- attached_to_SUBID=dict(type='int', aliases=['attached_to_id']),
- live_attachment=dict(type='bool', default=True)
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- required_if=[
- ['state', 'present', ['size', 'region']],
- ['state', 'detached', ['size', 'region']],
- ['state', 'attached', ['size', 'region', 'attached_to_SUBID']],
- ]
- )
-
- vultr_block_storage = AnsibleVultrBlockStorage(module)
-
- desired_state = module.params.get('state')
- if desired_state == "absent":
- volume = vultr_block_storage.absent_block_storage_volume()
- elif desired_state == 'attached':
- volume = vultr_block_storage.attached_block_storage_volume()
- elif desired_state == 'detached':
- volume = vultr_block_storage.detached_block_storage_volume()
- else:
- volume = vultr_block_storage.present_block_storage_volume()
-
- expected_size = module.params.get('size')
- if expected_size and desired_state != 'absent':
- volume = vultr_block_storage.ensure_volume_size(
- volume,
- expected_size
- )
-
- result = vultr_block_storage.get_result(volume)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_block_storage_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_block_storage_info.py
deleted file mode 100644
index 46bdbecb3..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_block_storage_info.py
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# Copyright (c) 2019, René Moser <mail@renemoser.net>
-# 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 = r'''
----
-module: vultr_block_storage_info
-short_description: Get information about the Vultr block storage volumes available.
-description:
- - Get infos about block storage volumes available in Vultr.
-version_added: "0.1.0"
-author:
- - "Yanis Guenane (@Spredzy)"
- - "René Moser (@resmo)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Get Vultr block storage infos
- ngine_io.vultr.vultr_block_storage_info:
- register: result
-
-- name: Print the infos
- debug:
- var: result.vultr_block_storage_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_block_storage_info:
- description: Response from Vultr API as list
- returned: success
- type: complex
- contains:
- id:
- description: ID of the block storage.
- returned: success
- type: int
- sample: 17332323
- size:
- description: Size in GB of the block storage.
- returned: success
- type: int
- sample: 10
- region:
- description: Region the block storage is located in.
- returned: success
- type: str
- sample: New Jersey
- name:
- description: Name of the block storage.
- returned: success
- type: str
- sample: my volume
- cost_per_month:
- description: Cost per month of the block storage.
- returned: success
- type: float
- sample: 1.0
- date_created:
- description: Date created of the block storage.
- returned: success
- type: str
- sample: "2018-07-24 12:59:59"
- status:
- description: Status of the block storage.
- returned: success
- type: str
- sample: active
- attached_to_id:
- description: Block storage is attached to this server ID.
- returned: success
- type: str
- sample: null
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrBlockStorageFacts(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrBlockStorageFacts, self).__init__(module, "vultr_block_storage_info")
-
- self.returns = {
- 'attached_to_SUBID': dict(key='attached_to_id'),
- 'cost_per_month': dict(convert_to='float'),
- 'date_created': dict(),
- 'SUBID': dict(key='id'),
- 'label': dict(key='name'),
- 'DCID': dict(key='region', transform=self._get_region_name),
- 'size_gb': dict(key='size', convert_to='int'),
- 'status': dict()
- }
-
- def _get_region_name(self, region):
- return self.get_region(region, 'DCID').get('name')
-
- def get_block_storage_volumes(self):
- return self.api_query(path="/v1/block/list")
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- volume_info = AnsibleVultrBlockStorageFacts(module)
- result = volume_info.get_result(volume_info.get_block_storage_volumes())
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_domain.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_domain.py
deleted file mode 100644
index bb83d3733..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_domain.py
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2017, René Moser <mail@renemoser.net>
-# 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 = r'''
----
-module: vultr_dns_domain
-short_description: Manages DNS domains on Vultr.
-description:
- - Create and remove DNS domains.
-version_added: "0.1.0"
-author: "René Moser (@resmo)"
-options:
- name:
- description:
- - The domain name.
- required: true
- aliases: [ domain ]
- type: str
- server_ip:
- description:
- - The default server IP.
- - Use M(ngine_io.vultr.vultr_dns_record) to change it once the domain is created.
- - Required if C(state=present).
- type: str
- state:
- description:
- - State of the DNS domain.
- default: present
- choices: [ present, absent ]
- type: str
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Ensure a domain exists
- ngine_io.vultr.vultr_dns_domain:
- name: example.com
- server_ip: 10.10.10.10
-
-- name: Ensure a domain is absent
- ngine_io.vultr.vultr_dns_domain:
- name: example.com
- state: absent
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_dns_domain:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- name:
- description: Name of the DNS Domain.
- returned: success
- type: str
- sample: example.com
- date_created:
- description: Date the DNS domain was created.
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-
-from ..module_utils.vultr import Vultr, vultr_argument_spec
-
-
-class AnsibleVultrDnsDomain(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrDnsDomain, self).__init__(module, "vultr_dns_domain")
-
- self.returns = {
- 'domain': dict(key='name'),
- 'date_created': dict(),
- }
-
- def get_domain(self):
- domains = self.api_query(path="/v1/dns/list")
- name = self.module.params.get('name').lower()
- if domains:
- for domain in domains:
- if domain.get('domain').lower() == name:
- return domain
- return {}
-
- def present_domain(self):
- domain = self.get_domain()
- if not domain:
- domain = self._create_domain(domain)
- return domain
-
- def _create_domain(self, domain):
- self.result['changed'] = True
- data = {
- 'domain': self.module.params.get('name'),
- 'serverip': self.module.params.get('server_ip'),
- }
- self.result['diff']['before'] = {}
- self.result['diff']['after'] = data
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/dns/create_domain",
- method="POST",
- data=data
- )
- domain = self.get_domain()
- return domain
-
- def absent_domain(self):
- domain = self.get_domain()
- if domain:
- self.result['changed'] = True
-
- data = {
- 'domain': domain['domain'],
- }
-
- self.result['diff']['before'] = domain
- self.result['diff']['after'] = {}
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/dns/delete_domain",
- method="POST",
- data=data
- )
- return domain
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- name=dict(type='str', required=True, aliases=['domain']),
- server_ip=dict(type='str',),
- state=dict(type='str', choices=['present', 'absent'], default='present'),
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- required_if=[
- ('state', 'present', ['server_ip']),
- ],
- supports_check_mode=True,
- )
-
- vultr_domain = AnsibleVultrDnsDomain(module)
- if module.params.get('state') == "absent":
- domain = vultr_domain.absent_domain()
- else:
- domain = vultr_domain.present_domain()
-
- result = vultr_domain.get_result(domain)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_domain_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_domain_info.py
deleted file mode 100644
index 35a47d701..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_domain_info.py
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# 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 = r'''
----
-module: vultr_dns_domain_info
-short_description: Gather information about the Vultr DNS domains available.
-description:
- - Gather information about DNS domains available in Vultr.
-version_added: "0.1.0"
-author: "Yanis Guenane (@Spredzy)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Gather Vultr DNS domains information
- ngine_io.vultr.vultr_dns_domains_info:
- register: result
-
-- name: Print the gathered information
- debug:
- var: result.vultr_dns_domain_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_dns_domain_info:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- domain:
- description: Name of the DNS Domain.
- returned: success
- type: str
- sample: example.com
- date_created:
- description: Date the DNS domain was created.
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrDnsDomainInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrDnsDomainInfo, self).__init__(module, "vultr_dns_domain_info")
-
- self.returns = {
- "date_created": dict(),
- "domain": dict(),
- }
-
- def get_domains(self):
- return self.api_query(path="/v1/dns/list")
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- domain_info = AnsibleVultrDnsDomainInfo(module)
- result = domain_info.get_result(domain_info.get_domains())
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_record.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_record.py
deleted file mode 100644
index bab11c4c0..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_dns_record.py
+++ /dev/null
@@ -1,376 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2017, René Moser <mail@renemoser.net>
-# 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: vultr_dns_record
-short_description: Manages DNS records on Vultr.
-description:
- - Create, update and remove DNS records.
-version_added: "0.1.0"
-author: "René Moser (@resmo)"
-options:
- name:
- description:
- - The record name (subrecord).
- default: ""
- aliases: [ subrecord ]
- type: str
- domain:
- description:
- - The domain the record is related to.
- type: str
- required: true
- record_type:
- description:
- - Type of the record.
- default: A
- choices:
- - A
- - AAAA
- - CNAME
- - MX
- - SRV
- - CAA
- - TXT
- - NS
- - SSHFP
- aliases: [ type ]
- type: str
- data:
- description:
- - Data of the record.
- - Required if C(state=present) or C(multiple=yes).
- type: str
- ttl:
- description:
- - TTL of the record.
- default: 300
- type: int
- multiple:
- description:
- - Whether to use more than one record with similar C(name) including no name and C(record_type).
- - Only allowed for a few record types, e.g. C(record_type=A), C(record_type=NS) or C(record_type=MX).
- - C(data) will not be updated, instead it is used as a key to find existing records.
- default: no
- type: bool
- priority:
- description:
- - Priority of the record.
- default: 0
- type: int
- state:
- description:
- - State of the DNS record.
- default: present
- choices: [ present, absent ]
- type: str
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = '''
-- name: Ensure an A record exists
- ngine_io.vultr.vultr_dns_record:
- name: www
- domain: example.com
- data: 10.10.10.10
- ttl: 3600
-
-- name: Ensure a second A record exists for round robin LB
- ngine_io.vultr.vultr_dns_record:
- name: www
- domain: example.com
- data: 10.10.10.11
- ttl: 60
- multiple: yes
-
-- name: Ensure a CNAME record exists
- ngine_io.vultr.vultr_dns_record:
- name: web
- record_type: CNAME
- domain: example.com
- data: www.example.com
-
-- name: Ensure MX record exists
- ngine_io.vultr.vultr_dns_record:
- record_type: MX
- domain: example.com
- data: "{{ item.data }}"
- priority: "{{ item.priority }}"
- multiple: yes
- with_items:
- - { data: mx1.example.com, priority: 10 }
- - { data: mx2.example.com, priority: 10 }
- - { data: mx3.example.com, priority: 20 }
-
-- name: Ensure a record is absent
- ngine_io.vultr.vultr_dns_record:
- name: www
- domain: example.com
- state: absent
-
-- name: Ensure MX record is absent in case multiple exists
- ngine_io.vultr.vultr_dns_record:
- record_type: MX
- domain: example.com
- data: mx1.example.com
- multiple: yes
- state: absent
-'''
-
-RETURN = '''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_dns_record:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- id:
- description: The ID of the DNS record.
- returned: success
- type: int
- sample: 1265277
- name:
- description: The name of the DNS record.
- returned: success
- type: str
- sample: web
- record_type:
- description: The name of the DNS record.
- returned: success
- type: str
- sample: web
- data:
- description: Data of the DNS record.
- returned: success
- type: str
- sample: 10.10.10.10
- domain:
- description: Domain the DNS record is related to.
- returned: success
- type: str
- sample: example.com
- priority:
- description: Priority of the DNS record.
- returned: success
- type: int
- sample: 10
- ttl:
- description: Time to live of the DNS record.
- returned: success
- type: int
- sample: 300
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-RECORD_TYPES = [
- 'A',
- 'AAAA',
- 'CNAME',
- 'MX',
- 'TXT',
- 'NS',
- 'SRV',
- 'CAA',
- 'SSHFP'
-]
-
-
-class AnsibleVultrDnsRecord(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrDnsRecord, self).__init__(module, "vultr_dns_record")
-
- self.returns = {
- 'RECORDID': dict(key='id'),
- 'name': dict(),
- 'record': dict(),
- 'priority': dict(),
- 'data': dict(),
- 'type': dict(key='record_type'),
- 'ttl': dict(),
- }
-
- def get_record(self):
- records = self.api_query(path="/v1/dns/records?domain=%s" % self.module.params.get('domain'))
-
- multiple = self.module.params.get('multiple')
- data = self.module.params.get('data')
- name = self.module.params.get('name')
- record_type = self.module.params.get('record_type')
-
- result = {}
- for record in records or []:
- if record.get('type') != record_type:
- continue
-
- if record.get('name') == name:
- if not multiple:
- if result:
- self.module.fail_json(msg="More than one record with record_type=%s and name=%s params. "
- "Use multiple=yes for more than one record." % (record_type, name))
- else:
- result = record
- elif record.get('data') == data:
- return record
-
- return result
-
- def present_record(self):
- record = self.get_record()
- if not record:
- record = self._create_record(record)
- else:
- record = self._update_record(record)
- return record
-
- def _create_record(self, record):
- self.result['changed'] = True
- data = {
- 'name': self.module.params.get('name'),
- 'domain': self.module.params.get('domain'),
- 'data': self.module.params.get('data'),
- 'type': self.module.params.get('record_type'),
- 'priority': self.module.params.get('priority'),
- 'ttl': self.module.params.get('ttl'),
- }
- self.result['diff']['before'] = {}
- self.result['diff']['after'] = data
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/dns/create_record",
- method="POST",
- data=data
- )
- record = self.get_record()
- return record
-
- def _update_record(self, record):
- data = {
- 'RECORDID': record['RECORDID'],
- 'name': self.module.params.get('name'),
- 'domain': self.module.params.get('domain'),
- 'data': self.module.params.get('data'),
- 'type': self.module.params.get('record_type'),
- 'priority': self.module.params.get('priority'),
- 'ttl': self.module.params.get('ttl'),
- }
- has_changed = [k for k in data if k in record and data[k] != record[k]]
- if has_changed:
- self.result['changed'] = True
-
- self.result['diff']['before'] = record
- self.result['diff']['after'] = record.copy()
- self.result['diff']['after'].update(data)
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/dns/update_record",
- method="POST",
- data=data
- )
- record = self.get_record()
- return record
-
- def absent_record(self):
- record = self.get_record()
- if record:
- self.result['changed'] = True
-
- data = {
- 'RECORDID': record['RECORDID'],
- 'domain': self.module.params.get('domain'),
- }
-
- self.result['diff']['before'] = record
- self.result['diff']['after'] = {}
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/dns/delete_record",
- method="POST",
- data=data
- )
- return record
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- domain=dict(type='str', required=True),
- name=dict(type='str', default="", aliases=['subrecord']),
- state=dict(type='str', choices=['present', 'absent'], default='present'),
- ttl=dict(type='int', default=300),
- record_type=dict(type='str', choices=RECORD_TYPES, default='A', aliases=['type']),
- multiple=dict(type='bool', default=False),
- priority=dict(type='int', default=0),
- data=dict(type='str',)
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- required_if=[
- ('state', 'present', ['data']),
- ('multiple', True, ['data']),
- ],
-
- supports_check_mode=True,
- )
-
- vultr_record = AnsibleVultrDnsRecord(module)
- if module.params.get('state') == "absent":
- record = vultr_record.absent_record()
- else:
- record = vultr_record.present_record()
-
- result = vultr_record.get_result(record)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_group.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_group.py
deleted file mode 100644
index 36ef3b435..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_group.py
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2017, René Moser <mail@renemoser.net>
-# 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: vultr_firewall_group
-short_description: Manages firewall groups on Vultr.
-description:
- - Create and remove firewall groups.
-version_added: "0.1.0"
-author: "René Moser (@resmo)"
-options:
- name:
- description:
- - Name of the firewall group.
- required: true
- aliases: [ description ]
- type: str
- state:
- description:
- - State of the firewall group.
- default: present
- choices: [ present, absent ]
- type: str
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = '''
-- name: ensure a firewall group is present
- ngine_io.vultr.vultr_firewall_group:
- name: my http firewall
-
-- name: ensure a firewall group is absent
- ngine_io.vultr.vultr_firewall_group:
- name: my http firewall
- state: absent
-'''
-
-RETURN = '''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_firewall_group:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- id:
- description: ID of the firewall group
- returned: success
- type: str
- sample: 1234abcd
- name:
- description: Name of the firewall group
- returned: success
- type: str
- sample: my firewall group
- date_created:
- description: Date the firewall group was created
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
- date_modified:
- description: Date the firewall group was modified
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrFirewallGroup(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrFirewallGroup, self).__init__(module, "vultr_firewall_group")
-
- self.returns = {
- 'FIREWALLGROUPID': dict(key='id'),
- 'description': dict(key='name'),
- 'date_created': dict(),
- 'date_modified': dict(),
- }
-
- def get_firewall_group(self):
- firewall_groups = self.api_query(path="/v1/firewall/group_list")
- if firewall_groups:
- for firewall_group_id, firewall_group_data in firewall_groups.items():
- if firewall_group_data.get('description') == self.module.params.get('name'):
- return firewall_group_data
- return {}
-
- def present_firewall_group(self):
- firewall_group = self.get_firewall_group()
- if not firewall_group:
- firewall_group = self._create_firewall_group(firewall_group)
- return firewall_group
-
- def _create_firewall_group(self, firewall_group):
- self.result['changed'] = True
- data = {
- 'description': self.module.params.get('name'),
- }
- self.result['diff']['before'] = {}
- self.result['diff']['after'] = data
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/firewall/group_create",
- method="POST",
- data=data
- )
- firewall_group = self.get_firewall_group()
- return firewall_group
-
- def absent_firewall_group(self):
- firewall_group = self.get_firewall_group()
- if firewall_group:
- self.result['changed'] = True
-
- data = {
- 'FIREWALLGROUPID': firewall_group['FIREWALLGROUPID'],
- }
-
- self.result['diff']['before'] = firewall_group
- self.result['diff']['after'] = {}
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/firewall/group_delete",
- method="POST",
- data=data
- )
- return firewall_group
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- name=dict(type='str', required=True, aliases=['description']),
- state=dict(type='str', choices=['present', 'absent'], default='present'),
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- vultr_firewall_group = AnsibleVultrFirewallGroup(module)
- if module.params.get('state') == "absent":
- firewall_group = vultr_firewall_group.absent_firewall_group()
- else:
- firewall_group = vultr_firewall_group.present_firewall_group()
-
- result = vultr_firewall_group.get_result(firewall_group)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_group_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_group_info.py
deleted file mode 100644
index 52b3eb0ae..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_group_info.py
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# 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 = r'''
----
-module: vultr_firewall_group_info
-short_description: Gather information about the Vultr firewall groups available.
-description:
- - Gather information about firewall groups available in Vultr.
-version_added: "0.1.0"
-author: "Yanis Guenane (@Spredzy)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Gather Vultr firewall groups information
- ngine_io.vultr.vultr_firewall_group_info:
- register: result
-
-- name: Print the gathered information
- debug:
- var: result.vultr_firewall_group_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_firewall_group_info:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- id:
- description: ID of the firewall group
- returned: success
- type: str
- sample: 1234abcd
- description:
- description: Name of the firewall group
- returned: success
- type: str
- sample: my firewall group
- date_created:
- description: Date the firewall group was created
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
- date_modified:
- description: Date the firewall group was modified
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrFirewallGroupInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrFirewallGroupInfo, self).__init__(module, "vultr_firewall_group_info")
-
- self.returns = {
- "FIREWALLGROUPID": dict(key='id'),
- "date_created": dict(),
- "date_modified": dict(),
- "description": dict(),
- "instance_count": dict(convert_to='int'),
- "max_rule_count": dict(convert_to='int'),
- "rule_count": dict(convert_to='int')
- }
-
- def get_firewall_group(self):
- return self.api_query(path="/v1/firewall/group_list")
-
-
-def parse_fw_group_list(fwgroups_list):
- if not fwgroups_list:
- return []
-
- return [group for id, group in fwgroups_list.items()]
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- fw_group_info = AnsibleVultrFirewallGroupInfo(module)
- result = fw_group_info.get_result(parse_fw_group_list(fw_group_info.get_firewall_group()))
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_rule.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_rule.py
deleted file mode 100644
index f9a59b2b0..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_firewall_rule.py
+++ /dev/null
@@ -1,384 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2017, René Moser <mail@renemoser.net>
-# 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: vultr_firewall_rule
-short_description: Manages firewall rules on Vultr.
-description:
- - Create and remove firewall rules.
-version_added: "0.1.0"
-author: "René Moser (@resmo)"
-options:
- group:
- description:
- - Name of the firewall group.
- required: true
- type: str
- ip_version:
- description:
- - IP address version
- choices: [ v4, v6 ]
- default: v4
- aliases: [ ip_type ]
- type: str
- protocol:
- description:
- - Protocol of the firewall rule.
- choices: [ icmp, tcp, udp, gre ]
- default: tcp
- type: str
- cidr:
- description:
- - Network in CIDR format
- - The CIDR format must match with the C(ip_version) value.
- - Required if C(state=present).
- - Defaulted to 0.0.0.0/0 or ::/0 depending on C(ip_version).
- type: str
- start_port:
- description:
- - Start port for the firewall rule.
- - Required if C(protocol) is tcp or udp and I(state=present).
- aliases: [ port ]
- type: int
- end_port:
- description:
- - End port for the firewall rule.
- - Only considered if C(protocol) is tcp or udp and I(state=present).
- type: int
- state:
- description:
- - State of the firewall rule.
- default: present
- choices: [ present, absent ]
- type: str
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = '''
-- name: ensure a firewall rule is present
- ngine_io.vultr.vultr_firewall_rule:
- group: application
- protocol: tcp
- start_port: 8000
- end_port: 9000
- cidr: 17.17.17.0/24
-
-- name: open DNS port for all ipv4 and ipv6
- ngine_io.vultr.vultr_firewall_rule:
- group: dns
- protocol: udp
- port: 53
- ip_version: "{{ item }}"
- with_items: [ v4, v6 ]
-
-- name: allow ping
- ngine_io.vultr.vultr_firewall_rule:
- group: web
- protocol: icmp
-
-- name: ensure a firewall rule is absent
- ngine_io.vultr.vultr_firewall_rule:
- group: application
- protocol: tcp
- start_port: 8000
- end_port: 9000
- cidr: 17.17.17.0/24
- state: absent
-'''
-
-RETURN = '''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_firewall_rule:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- rule_number:
- description: Rule number of the firewall rule
- returned: success
- type: int
- sample: 2
- action:
- description: Action of the firewall rule
- returned: success
- type: str
- sample: accept
- protocol:
- description: Protocol of the firewall rule
- returned: success
- type: str
- sample: tcp
- start_port:
- description: Start port of the firewall rule
- returned: success and protocol is tcp or udp
- type: int
- sample: 80
- end_port:
- description: End port of the firewall rule
- returned: success and when port range and protocol is tcp or udp
- type: int
- sample: 8080
- cidr:
- description: CIDR of the firewall rule (IPv4 or IPv6)
- returned: success and when port range
- type: str
- sample: 0.0.0.0/0
- group:
- description: Firewall group the rule is into.
- returned: success
- type: str
- sample: web
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrFirewallRule(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrFirewallRule, self).__init__(module, "vultr_firewall_rule")
-
- self.returns = {
- 'rulenumber': dict(key='rule_number'),
- 'action': dict(),
- 'protocol': dict(),
- 'start_port': dict(convert_to='int'),
- 'end_port': dict(convert_to='int'),
- 'cidr': dict(),
- 'group': dict(),
- }
- self.firewall_group = None
-
- def get_firewall_group(self):
- if self.firewall_group is not None:
- return self.firewall_group
-
- firewall_groups = self.api_query(path="/v1/firewall/group_list")
- if firewall_groups:
- for firewall_group_id, firewall_group_data in firewall_groups.items():
- if firewall_group_data.get('description') == self.module.params.get('group'):
- self.firewall_group = firewall_group_data
- return self.firewall_group
- self.fail_json(msg="Firewall group not found: %s" % self.module.params.get('group'))
-
- def _transform_cidr(self):
- cidr = self.module.params.get('cidr')
- ip_version = self.module.params.get('ip_version')
- if cidr is None:
- if ip_version == "v6":
- cidr = "::/0"
- else:
- cidr = "0.0.0.0/0"
- elif cidr.count('/') != 1:
- self.fail_json(msg="CIDR has an invalid format: %s" % cidr)
-
- return cidr.split('/')
-
- def get_firewall_rule(self):
- ip_version = self.module.params.get('ip_version')
- firewall_group_id = self.get_firewall_group()['FIREWALLGROUPID']
-
- firewall_rules = self.api_query(
- path="/v1/firewall/rule_list"
- "?FIREWALLGROUPID=%s"
- "&direction=in"
- "&ip_type=%s"
- % (firewall_group_id, ip_version))
-
- if firewall_rules:
- subnet, subnet_size = self._transform_cidr()
-
- for firewall_rule_id, firewall_rule_data in firewall_rules.items():
- if firewall_rule_data.get('protocol') != self.module.params.get('protocol'):
- continue
-
- if ip_version == 'v4' and (firewall_rule_data.get('subnet') or "0.0.0.0") != subnet:
- continue
-
- if ip_version == 'v6' and (firewall_rule_data.get('subnet') or "::") != subnet:
- continue
-
- if int(firewall_rule_data.get('subnet_size')) != int(subnet_size):
- continue
-
- if firewall_rule_data.get('protocol') in ['tcp', 'udp']:
- rule_port = firewall_rule_data.get('port')
-
- end_port = self.module.params.get('end_port')
- start_port = self.module.params.get('start_port')
-
- # Port range "8000 - 8080" from the API
- if ' - ' in rule_port:
- if end_port is None:
- continue
-
- port_range = "%s - %s" % (start_port, end_port)
- if rule_port == port_range:
- return firewall_rule_data
-
- # Single port
- elif int(rule_port) == start_port:
- return firewall_rule_data
-
- else:
- return firewall_rule_data
-
- return {}
-
- def present_firewall_rule(self):
- firewall_rule = self.get_firewall_rule()
- if not firewall_rule:
- firewall_rule = self._create_firewall_rule(firewall_rule)
- return firewall_rule
-
- def _create_firewall_rule(self, firewall_rule):
- protocol = self.module.params.get('protocol')
- if protocol in ['tcp', 'udp']:
- start_port = self.module.params.get('start_port')
-
- if start_port is None:
- self.module.fail_on_missing_params(['start_port'])
-
- end_port = self.module.params.get('end_port')
- if end_port is not None:
-
- if start_port >= end_port:
- self.module.fail_json(msg="end_port must be higher than start_port")
-
- port_range = "%s:%s" % (start_port, end_port)
- else:
- port_range = start_port
- else:
- port_range = None
-
- self.result['changed'] = True
-
- subnet, subnet_size = self._transform_cidr()
-
- data = {
- 'FIREWALLGROUPID': self.get_firewall_group()['FIREWALLGROUPID'],
- 'direction': 'in', # currently the only option
- 'ip_type': self.module.params.get('ip_version'),
- 'protocol': protocol,
- 'subnet': subnet,
- 'subnet_size': subnet_size,
- 'port': port_range
- }
-
- self.result['diff']['after'] = data
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/firewall/rule_create",
- method="POST",
- data=data
- )
- firewall_rule = self.get_firewall_rule()
- return firewall_rule
-
- def absent_firewall_rule(self):
- firewall_rule = self.get_firewall_rule()
- if firewall_rule:
- self.result['changed'] = True
-
- data = {
- 'FIREWALLGROUPID': self.get_firewall_group()['FIREWALLGROUPID'],
- 'rulenumber': firewall_rule['rulenumber']
- }
-
- self.result['diff']['before'] = firewall_rule
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/firewall/rule_delete",
- method="POST",
- data=data
- )
- return firewall_rule
-
- def get_result(self, resource):
- if resource:
- if 'port' in resource and resource['protocol'] in ['tcp', 'udp']:
- if ' - ' in resource['port']:
- resource['start_port'], resource['end_port'] = resource['port'].split(' - ')
- else:
- resource['start_port'] = resource['port']
- if 'subnet' in resource:
- resource['cidr'] = "%s/%s" % (resource['subnet'], resource['subnet_size'])
- resource['group'] = self.get_firewall_group()['description']
- return super(AnsibleVultrFirewallRule, self).get_result(resource)
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- group=dict(type='str', required=True),
- start_port=dict(type='int', aliases=['port']),
- end_port=dict(type='int'),
- protocol=dict(type='str', choices=['tcp', 'udp', 'gre', 'icmp'], default='tcp'),
- cidr=dict(type='str',),
- ip_version=dict(type='str', choices=['v4', 'v6'], default='v4', aliases=['ip_type']),
- state=dict(type='str', choices=['present', 'absent'], default='present'),
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- vultr_firewall_rule = AnsibleVultrFirewallRule(module)
- if module.params.get('state') == "absent":
- firewall_rule = vultr_firewall_rule.absent_firewall_rule()
- else:
- firewall_rule = vultr_firewall_rule.present_firewall_rule()
-
- result = vultr_firewall_rule.get_result(firewall_rule)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_network.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_network.py
deleted file mode 100644
index 3992e3d1e..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_network.py
+++ /dev/null
@@ -1,232 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# 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: vultr_network
-short_description: Manages networks on Vultr.
-description:
- - Manage networks on Vultr. A network cannot be updated. It needs to be deleted and re-created.
-version_added: "0.1.0"
-author: "Yanis Guenane (@Spredzy)"
-options:
- name:
- description:
- - Name of the network.
- required: true
- aliases: [ description, label ]
- type: str
- cidr:
- description:
- - The CIDR IPv4 network block to be used when attaching servers to this network. Required if I(state=present).
- type: str
- region:
- description:
- - Region the network is deployed into. Required if I(state=present).
- type: str
- state:
- description:
- - State of the network.
- default: present
- choices: [ present, absent ]
- type: str
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = '''
-- name: Ensure a network is present
- ngine_io.vultr.vultr_network:
- name: mynet
- cidr: 192.168.42.0/24
- region: Amsterdam
-
-- name: Ensure a network is absent
- ngine_io.vultr.vultr_network:
- name: mynet
- state: absent
-'''
-
-RETURN = '''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_network:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- id:
- description: ID of the network
- returned: success
- type: str
- sample: "net5b62c6dc63ef5"
- name:
- description: Name (label) of the network
- returned: success
- type: str
- sample: "mynetwork"
- date_created:
- description: Date when the network was created
- returned: success
- type: str
- sample: "2018-08-02 08:54:52"
- region:
- description: Region the network was deployed into
- returned: success
- type: str
- sample: "Amsterdam"
- v4_subnet:
- description: IPv4 Network address
- returned: success
- type: str
- sample: "192.168.42.0"
- v4_subnet_mask:
- description: Ipv4 Network mask
- returned: success
- type: int
- sample: 24
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrNetwork(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrNetwork, self).__init__(module, "vultr_network")
-
- self.returns = {
- 'NETWORKID': dict(key='id'),
- 'DCID': dict(key='region', transform=self._get_region_name),
- 'date_created': dict(),
- 'description': dict(key='name'),
- 'v4_subnet': dict(),
- 'v4_subnet_mask': dict(convert_to='int'),
- }
-
- def _get_region_name(self, region_id=None):
- return self.get_region().get('name')
-
- def get_network(self):
- networks = self.api_query(path="/v1/network/list")
- if networks:
- for id, network in networks.items():
- if network.get('description') == self.module.params.get('name'):
- return network
- return {}
-
- def present_network(self):
- network = self.get_network()
- if not network:
- network = self._create_network(network)
- return network
-
- def _create_network(self, network):
- self.result['changed'] = True
- data = {
- 'description': self.module.params.get('name'),
- 'DCID': self.get_region()['DCID'],
- 'v4_subnet': self.module.params.get('cidr').split('/')[0],
- 'v4_subnet_mask': self.module.params.get('cidr').split('/')[1]
- }
- self.result['diff']['before'] = {}
- self.result['diff']['after'] = data
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/network/create",
- method="POST",
- data=data
- )
- network = self.get_network()
- return network
-
- def absent_network(self):
- network = self.get_network()
- if network:
- self.result['changed'] = True
-
- data = {
- 'NETWORKID': network['NETWORKID'],
- }
-
- self.result['diff']['before'] = network
- self.result['diff']['after'] = {}
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/network/destroy",
- method="POST",
- data=data
- )
- return network
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- name=dict(type='str', required=True, aliases=['description', 'label']),
- cidr=dict(type='str',),
- region=dict(type='str',),
- state=dict(choices=['present', 'absent'], default='present'),
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- required_if=[['state', 'present', ['cidr', 'region']]]
- )
-
- vultr_network = AnsibleVultrNetwork(module)
- if module.params.get('state') == "absent":
- network = vultr_network.absent_network()
- else:
- network = vultr_network.present_network()
-
- result = vultr_network.get_result(network)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_network_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_network_info.py
deleted file mode 100644
index 85f6471ab..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_network_info.py
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# 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 = r'''
----
-module: vultr_network_info
-short_description: Gather information about the Vultr networks available.
-description:
- - Gather information about networks available in Vultr.
-version_added: "0.1.0"
-author: "Yanis Guenane (@Spredzy)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Gather Vultr networks information
- ngine_io.vultr.vultr_network_info:
- register: result
-
-- name: Print the gathered information
- debug:
- var: result.vultr_network_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_network_info:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- id:
- description: ID of the network
- returned: success
- type: str
- sample: "net5b62c6dc63ef5"
- name:
- description: Name (label) of the network
- returned: success
- type: str
- sample: "mynetwork"
- date_created:
- description: Date when the network was created
- returned: success
- type: str
- sample: "2018-08-02 08:54:52"
- region:
- description: Region the network was deployed into
- returned: success
- type: str
- sample: "Amsterdam"
- v4_subnet:
- description: IPv4 Network address
- returned: success
- type: str
- sample: "192.168.42.0"
- v4_subnet_mask:
- description: Ipv4 Network mask
- returned: success
- type: int
- sample: 24
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrNetworkInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrNetworkInfo, self).__init__(module, "vultr_network_info")
-
- self.returns = {
- 'DCID': dict(key='region', transform=self._get_region_name),
- 'NETWORKID': dict(key='id'),
- 'date_created': dict(),
- 'description': dict(key='name'),
- 'v4_subnet': dict(),
- 'v4_subnet_mask': dict(convert_to='int'),
- }
-
- def _get_region_name(self, region):
- return self.query_resource_by_key(
- key='DCID',
- value=region,
- resource='regions',
- use_cache=True
- )['name']
-
- def get_networks(self):
- return self.api_query(path="/v1/network/list")
-
-
-def parse_network_list(network_list):
- if isinstance(network_list, list):
- return []
-
- return [network for id, network in network_list.items()]
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- network_info = AnsibleVultrNetworkInfo(module)
- result = network_info.get_result(parse_network_list(network_info.get_networks()))
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_os_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_os_info.py
deleted file mode 100644
index 258b50d52..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_os_info.py
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# Copyright (c) 2019, René Moser <mail@renemoser.net>
-# 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 = r'''
----
-module: vultr_os_info
-short_description: Get information about the Vultr OSes available.
-description:
- - Get infos about OSes available to boot servers.
-version_added: "0.1.0"
-author:
- - "Yanis Guenane (@Spredzy)"
- - "René Moser (@resmo)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Get Vultr OSes infos
- ngine_io.vultr.vultr_os_info:
- register: results
-
-- name: Print the gathered infos
- debug:
- var: results.vultr_os_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_os_info:
- description: Response from Vultr API as list
- returned: available
- type: complex
- contains:
- arch:
- description: OS Architecture
- returned: success
- type: str
- sample: x64
- family:
- description: OS family
- returned: success
- type: str
- sample: openbsd
- name:
- description: OS name
- returned: success
- type: str
- sample: OpenBSD 6 x64
- windows:
- description: OS is a MS Windows
- returned: success
- type: bool
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrOSInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrOSInfo, self).__init__(module, "vultr_os_info")
-
- self.returns = {
- "OSID": dict(key='id', convert_to='int'),
- "arch": dict(),
- "family": dict(),
- "name": dict(),
- "windows": dict(convert_to='bool')
- }
-
- def get_oses(self):
- return self.api_query(path="/v1/os/list")
-
-
-def parse_oses_list(oses_list):
- return [os for id, os in oses_list.items()]
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- os_info = AnsibleVultrOSInfo(module)
- result = os_info.get_result(parse_oses_list(os_info.get_oses()))
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_plan_baremetal_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_plan_baremetal_info.py
deleted file mode 100644
index 040ca2d94..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_plan_baremetal_info.py
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# (c) 2020, Simon Baerlocher <s.baerlocher@sbaerlocher.ch>
-# 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 = r'''
----
-module: vultr_plan_baremetal_info
-short_description: Gather information about the Vultr Bare Metal plans available.
-description:
- - Gather information about Bare Metal plans available to boot servers.
-version_added: "0.3.0"
-author: "Simon Baerlocher (@sbaerlocher)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-'''
-
-EXAMPLES = r'''
-- name: Gather Vultr Bare Metal plans information
- ngine_io.vultr.vultr_baremetal_plan_info:
- register: result
-
-- name: Print the gathered information
- debug:
- var: result.vultr_baremetal_plan_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_plan_baremetal_info:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- plan:
- description: List of the Bare Metal plans available.
- returned: success
- type: list
- sample: [{
- "available_locations": [
- 1
- ],
- "bandwidth": 40.0,
- "bandwidth_gb": 40960,
- "disk": 110,
- "id": 118,
- "name": "32768 MB RAM,110 GB SSD,40.00 TB BW",
- "plan_type": "DEDICATED",
- "price_per_month": 240.0,
- "ram": 32768,
- "vcpu_count": 8,
- "windows": false
- }]
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrPlanInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrPlanInfo, self).__init__(module, "vultr_plan_baremetal_info")
-
- self.returns = {
- "METALPLANID": dict(key='id', convert_to='int'),
- "available_locations": dict(),
- "bandwidth_tb": dict(convert_to='int'),
- "disk": dict(),
- "name": dict(),
- "plan_type": dict(),
- "price_per_month": dict(convert_to='float'),
- "ram": dict(convert_to='int'),
- "windows": dict(convert_to='bool'),
- "cpu_count": dict(convert_to='int'),
- "cpu_model": dict(),
- "cpu_thread_count": dict(convert_to='int'),
- }
-
- def get_plans_baremetal(self):
- return self.api_query(path="/v1/plans/list_baremetal")
-
-
-def parse_plans_baremetal_list(plans_baremetal_list):
- return [plan_baremetal for id, plan_baremetal in plans_baremetal_list.items()]
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- plan_baremetal_info = AnsibleVultrPlanInfo(module)
- result = plan_baremetal_info.get_result(parse_plans_baremetal_list(plan_baremetal_info.get_plans_baremetal()))
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_plan_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_plan_info.py
deleted file mode 100644
index 3783ab8b0..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_plan_info.py
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# 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 = r'''
----
-module: vultr_plan_info
-short_description: Gather information about the Vultr plans available.
-description:
- - Gather information about plans available to boot servers.
-version_added: "0.1.0"
-author: "Yanis Guenane (@Spredzy)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-'''
-
-EXAMPLES = r'''
-- name: Gather Vultr plans information
- ngine_io.vultr.vultr_plan_info:
- register: result
-
-- name: Print the gathered information
- debug:
- var: result.vultr_plan_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_plan_info:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- plan:
- description: List of the plans available.
- returned: success
- type: list
- sample: [{
- "available_locations": [
- 1
- ],
- "bandwidth": 40.0,
- "bandwidth_gb": 40960,
- "disk": 110,
- "id": 118,
- "name": "32768 MB RAM,110 GB SSD,40.00 TB BW",
- "plan_type": "DEDICATED",
- "price_per_month": 240.0,
- "ram": 32768,
- "vcpu_count": 8,
- "windows": false
- }]
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrPlanInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrPlanInfo, self).__init__(module, "vultr_plan_info")
-
- self.returns = {
- "VPSPLANID": dict(key='id', convert_to='int'),
- "available_locations": dict(),
- "bandwidth": dict(convert_to='float'),
- "bandwidth_gb": dict(convert_to='int'),
- "disk": dict(convert_to='int'),
- "name": dict(),
- "plan_type": dict(),
- "price_per_month": dict(convert_to='float'),
- "ram": dict(convert_to='int'),
- "vcpu_count": dict(convert_to='int'),
- "windows": dict(convert_to='bool')
- }
-
- def get_plans(self):
- return self.api_query(path="/v1/plans/list")
-
-
-def parse_plans_list(plans_list):
- return [plan for id, plan in plans_list.items()]
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- plan_info = AnsibleVultrPlanInfo(module)
- result = plan_info.get_result(parse_plans_list(plan_info.get_plans()))
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_region_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_region_info.py
deleted file mode 100644
index 2080d2d58..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_region_info.py
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# 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 = r'''
----
-module: vultr_region_info
-short_description: Gather information about the Vultr regions available.
-description:
- - Gather information about regions available to boot servers.
-version_added: "0.1.0"
-author: "Yanis Guenane (@Spredzy)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Gather Vultr regions information
- ngine_io.vultr.vultr_region_info:
- register: result
-
-- name: Print the gathered information
- debug:
- var: result.vultr_region_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_region_info:
- description: Response from Vultr API
- returned: success
- type: list
- sample: [
- {
- "block_storage": false,
- "continent": "Europe",
- "country": "GB",
- "ddos_protection": true,
- "id": 8,
- "name": "London",
- "regioncode": "LHR",
- "state": ""
- }
- ]
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrRegionInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrRegionInfo, self).__init__(module, "vultr_region_info")
-
- self.returns = {
- "DCID": dict(key='id', convert_to='int'),
- "block_storage": dict(convert_to='bool'),
- "continent": dict(),
- "country": dict(),
- "ddos_protection": dict(convert_to='bool'),
- "name": dict(),
- "regioncode": dict(),
- "state": dict()
- }
-
- def get_regions(self):
- return self.api_query(path="/v1/regions/list")
-
-
-def parse_regions_list(regions_list):
- return [region for id, region in regions_list.items()]
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- region_info = AnsibleVultrRegionInfo(module)
- result = region_info.get_result(parse_regions_list(region_info.get_regions()))
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_server.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_server.py
deleted file mode 100644
index b423766e2..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_server.py
+++ /dev/null
@@ -1,933 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2017, René Moser <mail@renemoser.net>
-# 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: vultr_server
-short_description: Manages virtual servers on Vultr.
-description:
- - Deploy, start, stop, update, restart, reinstall servers.
-version_added: "0.1.0"
-author: "René Moser (@resmo)"
-options:
- name:
- description:
- - Name of the server.
- required: true
- aliases: [ label ]
- type: str
- hostname:
- description:
- - The hostname to assign to this server.
- type: str
- os:
- description:
- - The operating system name or ID.
- - Required if the server does not yet exist and is not restoring from a snapshot.
- type: str
- snapshot:
- description:
- - Name or ID of the snapshot to restore the server from.
- type: str
- firewall_group:
- description:
- - The firewall group description or ID to assign this server to.
- type: str
- plan:
- description:
- - Plan name or ID to use for the server.
- - Required if the server does not yet exist.
- type: str
- force:
- description:
- - Force stop/start the server if required to apply changes
- - Otherwise a running server will not be changed.
- type: bool
- default: no
- notify_activate:
- description:
- - Whether to send an activation email when the server is ready or not.
- - Only considered on creation.
- type: bool
- default: false
- private_network_enabled:
- description:
- - Whether to enable private networking or not.
- type: bool
- auto_backup_enabled:
- description:
- - Whether to enable automatic backups or not.
- type: bool
- ipv6_enabled:
- description:
- - Whether to enable IPv6 or not.
- type: bool
- tag:
- description:
- - Tag for the server.
- type: str
- user_data:
- description:
- - User data to be passed to the server.
- type: str
- startup_script:
- description:
- - Name or ID of the startup script to execute on boot.
- - Only considered while creating the server.
- type: str
- ssh_keys:
- description:
- - List of SSH key names or IDs passed to the server on creation.
- aliases: [ ssh_key ]
- type: list
- elements: str
- reserved_ip_v4:
- description:
- - IP address of the floating IP to use as the main IP of this server.
- - Only considered on creation.
- type: str
- region:
- description:
- - Region name or ID the server is deployed into.
- - Required if the server does not yet exist.
- type: str
- state:
- description:
- - State of the server.
- default: present
- choices: [ present, absent, restarted, reinstalled, started, stopped ]
- type: str
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = '''
-- name: create server
- ngine_io.vultr.vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 7 x64
- plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
- ssh_keys:
- - my_key
- - your_key
- region: Amsterdam
- state: present
-
-- name: ensure a server is present and started
- ngine_io.vultr.vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 7 x64
- plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
- firewall_group: my_group
- ssh_key: my_key
- region: Amsterdam
- state: started
-
-- name: ensure a server is present and stopped provisioned using IDs
- ngine_io.vultr.vultr_server:
- name: "{{ vultr_server_name }}"
- os: "167"
- plan: "201"
- region: "7"
- state: stopped
-
-- name: ensure an existing server is stopped
- ngine_io.vultr.vultr_server:
- name: "{{ vultr_server_name }}"
- state: stopped
-
-- name: ensure an existing server is started
- ngine_io.vultr.vultr_server:
- name: "{{ vultr_server_name }}"
- state: started
-
-- name: ensure a server is absent
- ngine_io.vultr.vultr_server:
- name: "{{ vultr_server_name }}"
- state: absent
-'''
-
-RETURN = '''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_server:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- id:
- description: ID of the server
- returned: success
- type: str
- sample: 10194376
- name:
- description: Name (label) of the server
- returned: success
- type: str
- sample: "ansible-test-vm"
- plan:
- description: Plan used for the server
- returned: success
- type: str
- sample: "1024 MB RAM,25 GB SSD,1.00 TB BW"
- allowed_bandwidth_gb:
- description: Allowed bandwidth to use in GB
- returned: success
- type: float
- sample: 1000.5
- auto_backup_enabled:
- description: Whether automatic backups are enabled
- returned: success
- type: bool
- sample: false
- cost_per_month:
- description: Cost per month for the server
- returned: success
- type: float
- sample: 5.00
- current_bandwidth_gb:
- description: Current bandwidth used for the server
- returned: success
- type: int
- sample: 0
- date_created:
- description: Date when the server was created
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
- default_password:
- description: Password to login as root into the server
- returned: success
- type: str
- sample: "!p3EWYJm$qDWYaFr"
- disk:
- description: Information about the disk
- returned: success
- type: str
- sample: "Virtual 25 GB"
- v4_gateway:
- description: IPv4 gateway
- returned: success
- type: str
- sample: "45.32.232.1"
- internal_ip:
- description: Internal IP
- returned: success
- type: str
- sample: ""
- kvm_url:
- description: URL to the VNC
- returned: success
- type: str
- sample: "https://my.vultr.com/subs/vps/novnc/api.php?data=xyz"
- region:
- description: Region the server was deployed into
- returned: success
- type: str
- sample: "Amsterdam"
- v4_main_ip:
- description: Main IPv4
- returned: success
- type: str
- sample: "45.32.233.154"
- v4_netmask:
- description: Netmask IPv4
- returned: success
- type: str
- sample: "255.255.254.0"
- os:
- description: Operating system used for the server
- returned: success
- type: str
- sample: "CentOS 6 x64"
- firewall_group:
- description: Firewall group the server is assigned to
- returned: success and available
- type: str
- sample: "CentOS 6 x64"
- pending_charges:
- description: Pending charges
- returned: success
- type: float
- sample: 0.01
- power_status:
- description: Power status of the server
- returned: success
- type: str
- sample: "running"
- ram:
- description: Information about the RAM size
- returned: success
- type: str
- sample: "1024 MB"
- server_state:
- description: State about the server
- returned: success
- type: str
- sample: "ok"
- status:
- description: Status about the deployment of the server
- returned: success
- type: str
- sample: "active"
- tag:
- description: TBD
- returned: success
- type: str
- sample: ""
- v6_main_ip:
- description: Main IPv6
- returned: success
- type: str
- sample: ""
- v6_network:
- description: Network IPv6
- returned: success
- type: str
- sample: ""
- v6_network_size:
- description: Network size IPv6
- returned: success
- type: str
- sample: ""
- v6_networks:
- description: Networks IPv6
- returned: success
- type: list
- sample: []
- vcpu_count:
- description: Virtual CPU count
- returned: success
- type: int
- sample: 1
-'''
-
-import time
-import base64
-from ansible.module_utils.basic import AnsibleModule
-from ansible.module_utils._text import to_text, to_bytes
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrServer(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrServer, self).__init__(module, "vultr_server")
-
- self.server = None
- self.returns = {
- 'SUBID': dict(key='id'),
- 'label': dict(key='name'),
- 'date_created': dict(),
- 'allowed_bandwidth_gb': dict(convert_to='float'),
- 'auto_backups': dict(key='auto_backup_enabled', convert_to='bool'),
- 'current_bandwidth_gb': dict(),
- 'kvm_url': dict(),
- 'default_password': dict(),
- 'internal_ip': dict(),
- 'disk': dict(),
- 'cost_per_month': dict(convert_to='float'),
- 'location': dict(key='region'),
- 'main_ip': dict(key='v4_main_ip'),
- 'network_v4': dict(key='v4_network'),
- 'gateway_v4': dict(key='v4_gateway'),
- 'os': dict(),
- 'pending_charges': dict(convert_to='float'),
- 'power_status': dict(),
- 'ram': dict(),
- 'plan': dict(),
- 'server_state': dict(),
- 'status': dict(),
- 'firewall_group': dict(),
- 'tag': dict(),
- 'v6_main_ip': dict(),
- 'v6_network': dict(),
- 'v6_network_size': dict(),
- 'v6_networks': dict(),
- 'vcpu_count': dict(convert_to='int'),
- }
- self.server_power_state = None
-
- def get_startup_script(self):
- return self.query_resource_by_key(
- key='name',
- value=self.module.params.get('startup_script'),
- resource='startupscript',
- )
-
- def get_os(self):
- if self.module.params.get('snapshot'):
- os_name = 'Snapshot'
- else:
- os_name = self.module.params.get('os')
-
- return self.query_resource_by_key(
- key='name',
- value=os_name,
- resource='os',
- use_cache=True,
- id_key='OSID',
- )
-
- def get_snapshot(self):
- return self.query_resource_by_key(
- key='description',
- value=self.module.params.get('snapshot'),
- resource='snapshot',
- id_key='SNAPSHOTID',
- )
-
- def get_ssh_keys(self):
- ssh_key_names = self.module.params.get('ssh_keys')
- if not ssh_key_names:
- return []
-
- ssh_keys = []
- for ssh_key_name in ssh_key_names:
- ssh_key = self.query_resource_by_key(
- key='name',
- value=ssh_key_name,
- resource='sshkey',
- use_cache=True,
- id_key='SSHKEYID',
- )
- if ssh_key:
- ssh_keys.append(ssh_key)
- return ssh_keys
-
- def get_region(self):
- return self.query_resource_by_key(
- key='name',
- value=self.module.params.get('region'),
- resource='regions',
- use_cache=True,
- id_key='DCID',
- )
-
- def get_firewall_group(self):
- return self.query_resource_by_key(
- key='description',
- value=self.module.params.get('firewall_group'),
- resource='firewall',
- query_by='group_list',
- id_key='FIREWALLGROUPID'
- )
-
- def get_user_data(self):
- user_data = self.module.params.get('user_data')
- if user_data is not None:
- user_data = to_text(base64.b64encode(to_bytes(user_data)))
- return user_data
-
- def get_server_user_data(self, server):
- if not server or not server.get('SUBID'):
- return None
-
- user_data = self.api_query(path="/v1/server/get_user_data?SUBID=%s" % server.get('SUBID'))
- return user_data.get('userdata')
-
- def get_server(self, refresh=False):
- if self.server is None or refresh:
- self.server = None
- server_list = self.api_query(path="/v1/server/list")
- if server_list:
- for server_id, server_data in server_list.items():
- if server_data.get('label') == self.module.params.get('name'):
- self.server = server_data
-
- plan = self.query_resource_by_key(
- key='VPSPLANID',
- value=server_data['VPSPLANID'],
- resource='plans',
- use_cache=True
- )
- self.server['plan'] = plan.get('name')
-
- os = self.query_resource_by_key(
- key='OSID',
- value=int(server_data['OSID']),
- resource='os',
- use_cache=True
- )
- self.server['os'] = os.get('name')
-
- fwg_id = server_data.get('FIREWALLGROUPID')
- fw = self.query_resource_by_key(
- key='FIREWALLGROUPID',
- value=server_data.get('FIREWALLGROUPID') if fwg_id and fwg_id != "0" else None,
- resource='firewall',
- query_by='group_list',
- use_cache=True
- )
- self.server['firewall_group'] = fw.get('description')
- return self.server
-
- def present_server(self, start_server=True):
- server = self.get_server()
- if not server:
- server = self._create_server(server=server)
- else:
- server = self._update_server(server=server, start_server=start_server)
- return server
-
- def _create_server(self, server=None):
- required_params = [
- 'os',
- 'plan',
- 'region',
- ]
-
- snapshot_restore = self.module.params.get('snapshot') is not None
- if snapshot_restore:
- required_params.remove('os')
-
- self.module.fail_on_missing_params(required_params=required_params)
-
- self.result['changed'] = True
- if not self.module.check_mode:
- data = {
- 'DCID': self.get_region().get('DCID'),
- 'VPSPLANID': self.get_plan().get('VPSPLANID'),
- 'FIREWALLGROUPID': self.get_firewall_group().get('FIREWALLGROUPID'),
- 'OSID': self.get_os().get('OSID'),
- 'SNAPSHOTID': self.get_snapshot().get('SNAPSHOTID'),
- 'label': self.module.params.get('name'),
- 'hostname': self.module.params.get('hostname'),
- 'SSHKEYID': ','.join([ssh_key['SSHKEYID'] for ssh_key in self.get_ssh_keys()]),
- 'enable_ipv6': self.get_yes_or_no('ipv6_enabled'),
- 'enable_private_network': self.get_yes_or_no('private_network_enabled'),
- 'auto_backups': self.get_yes_or_no('auto_backup_enabled'),
- 'notify_activate': self.get_yes_or_no('notify_activate'),
- 'tag': self.module.params.get('tag'),
- 'reserved_ip_v4': self.module.params.get('reserved_ip_v4'),
- 'userdata': self.get_user_data(),
- 'SCRIPTID': self.get_startup_script().get('SCRIPTID'),
- }
- self.api_query(
- path="/v1/server/create",
- method="POST",
- data=data
- )
- server = self._wait_for_state(key='status', state='active')
- server = self._wait_for_state(state='running', timeout=3600 if snapshot_restore else 60)
- return server
-
- def _update_auto_backups_setting(self, server, start_server):
- auto_backup_enabled_changed = self.switch_enable_disable(server, 'auto_backup_enabled', 'auto_backups')
-
- if auto_backup_enabled_changed:
- if auto_backup_enabled_changed == "enable" and server['auto_backups'] == 'disable':
- self.module.warn("Backups are disabled. Once disabled, backups can only be enabled again by customer support")
- else:
- server, warned = self._handle_power_status_for_update(server, start_server)
- if not warned:
- self.result['changed'] = True
- self.result['diff']['before']['auto_backup_enabled'] = server.get('auto_backups')
- self.result['diff']['after']['auto_backup_enabled'] = self.get_yes_or_no('auto_backup_enabled')
-
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID']
- }
- self.api_query(
- path="/v1/server/backup_%s" % auto_backup_enabled_changed,
- method="POST",
- data=data
- )
- return server
-
- def _update_ipv6_setting(self, server, start_server):
- ipv6_enabled_changed = self.switch_enable_disable(server, 'ipv6_enabled', 'v6_main_ip')
-
- if ipv6_enabled_changed:
- if ipv6_enabled_changed == "disable":
- self.module.warn("The Vultr API does not allow to disable IPv6")
- else:
- server, warned = self._handle_power_status_for_update(server, start_server)
- if not warned:
- self.result['changed'] = True
- self.result['diff']['before']['ipv6_enabled'] = False
- self.result['diff']['after']['ipv6_enabled'] = True
-
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID']
- }
- self.api_query(
- path="/v1/server/ipv6_%s" % ipv6_enabled_changed,
- method="POST",
- data=data
- )
- server = self._wait_for_state(key='v6_main_ip')
- return server
-
- def _update_private_network_setting(self, server, start_server):
- private_network_enabled_changed = self.switch_enable_disable(server, 'private_network_enabled', 'internal_ip')
- if private_network_enabled_changed:
- if private_network_enabled_changed == "disable":
- self.module.warn("The Vultr API does not allow to disable private network")
- else:
- server, warned = self._handle_power_status_for_update(server, start_server)
- if not warned:
- self.result['changed'] = True
- self.result['diff']['before']['private_network_enabled'] = False
- self.result['diff']['after']['private_network_enabled'] = True
-
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID']
- }
- self.api_query(
- path="/v1/server/private_network_%s" % private_network_enabled_changed,
- method="POST",
- data=data
- )
- return server
-
- def _update_plan_setting(self, server, start_server):
- # Verify the exising plan is not discontined by Vultr and therefore won't be found by the API
- server_plan = self.get_plan(plan=server.get('VPSPLANID'), optional=True)
- if not server_plan:
- plan = self.get_plan(optional=True)
- if not plan:
- self.module.warn("The plan used to create the server is not longer available as well as the desired plan. Assuming same plan, keeping as is.")
- return server
- else:
- plan = self.get_plan()
-
- plan_changed = True if plan and plan['VPSPLANID'] != server.get('VPSPLANID') else False
- if plan_changed:
- server, warned = self._handle_power_status_for_update(server, start_server)
- if not warned:
- self.result['changed'] = True
- self.result['diff']['before']['plan'] = server.get('plan')
- self.result['diff']['after']['plan'] = plan['name']
-
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID'],
- 'VPSPLANID': plan['VPSPLANID'],
- }
- self.api_query(
- path="/v1/server/upgrade_plan",
- method="POST",
- data=data
- )
- return server
-
- def _handle_power_status_for_update(self, server, start_server):
- # Remember the power state before we handle any action
- if self.server_power_state is None:
- self.server_power_state = server['power_status']
-
- # A stopped server can be updated
- if self.server_power_state == "stopped":
- return server, False
-
- # A running server must be forced to update unless the wanted state is stopped
- elif self.module.params.get('force') or not start_server:
- warned = False
- if not self.module.check_mode:
- # Some update APIs would restart the VM, we handle the restart manually
- # by stopping the server and start it at the end of the changes
- server = self.stop_server(skip_results=True)
-
- # Warn the user that a running server won't get changed
- else:
- warned = True
- self.module.warn("Some changes won't be applied to running instances. " +
- "Use force=true to allow the instance %s to be stopped/started." % server['label'])
-
- return server, warned
-
- def _update_server(self, server=None, start_server=True):
- # Wait for server to unlock if restoring
- if server.get('os').strip() == 'Snapshot':
- server = self._wait_for_state(key='server_status', state='ok', timeout=3600)
-
- # Update auto backups settings, stops server
- server = self._update_auto_backups_setting(server=server, start_server=start_server)
-
- # Update IPv6 settings, stops server
- server = self._update_ipv6_setting(server=server, start_server=start_server)
-
- # Update private network settings, stops server
- server = self._update_private_network_setting(server=server, start_server=start_server)
-
- # Update plan settings, stops server
- server = self._update_plan_setting(server=server, start_server=start_server)
-
- # User data
- user_data = self.get_user_data()
- server_user_data = self.get_server_user_data(server=server)
- if user_data is not None and user_data != server_user_data:
- self.result['changed'] = True
- self.result['diff']['before']['user_data'] = server_user_data
- self.result['diff']['after']['user_data'] = user_data
-
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID'],
- 'userdata': user_data,
- }
- self.api_query(
- path="/v1/server/set_user_data",
- method="POST",
- data=data
- )
-
- # Tags
- tag = self.module.params.get('tag')
- if tag is not None and tag != server.get('tag'):
- self.result['changed'] = True
- self.result['diff']['before']['tag'] = server.get('tag')
- self.result['diff']['after']['tag'] = tag
-
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID'],
- 'tag': tag,
- }
- self.api_query(
- path="/v1/server/tag_set",
- method="POST",
- data=data
- )
-
- # Firewall group
- firewall_group = self.get_firewall_group()
- if firewall_group and firewall_group.get('description') != server.get('firewall_group'):
- self.result['changed'] = True
- self.result['diff']['before']['firewall_group'] = server.get('firewall_group')
- self.result['diff']['after']['firewall_group'] = firewall_group.get('description')
-
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID'],
- 'FIREWALLGROUPID': firewall_group.get('FIREWALLGROUPID'),
- }
- self.api_query(
- path="/v1/server/firewall_group_set",
- method="POST",
- data=data
- )
- # Start server again if it was running before the changes
- if not self.module.check_mode:
- if self.server_power_state in ['starting', 'running'] and start_server:
- server = self.start_server(skip_results=True)
-
- server = self._wait_for_state(key='status', state='active')
- return server
-
- def absent_server(self):
- server = self.get_server()
- if server:
- self.result['changed'] = True
- self.result['diff']['before']['id'] = server['SUBID']
- self.result['diff']['after']['id'] = ""
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID']
- }
- self.api_query(
- path="/v1/server/destroy",
- method="POST",
- data=data
- )
- for s in range(0, 60):
- if server is not None:
- break
- time.sleep(2)
- server = self.get_server(refresh=True)
- else:
- self.fail_json(msg="Wait for server '%s' to get deleted timed out" % server['label'])
- return server
-
- def restart_server(self):
- self.result['changed'] = True
- server = self.get_server()
- if server:
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID']
- }
- self.api_query(
- path="/v1/server/reboot",
- method="POST",
- data=data
- )
- server = self._wait_for_state(state='running')
- return server
-
- def reinstall_server(self):
- self.result['changed'] = True
- server = self.get_server()
- if server:
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID']
- }
- self.api_query(
- path="/v1/server/reinstall",
- method="POST",
- data=data
- )
- server = self._wait_for_state(state='running')
- return server
-
- def _wait_for_state(self, key='power_status', state=None, timeout=60):
- time.sleep(1)
- server = self.get_server(refresh=True)
- for s in range(0, timeout):
- # Check for Truely if wanted state is None
- if state is None and server.get(key):
- break
- elif server.get(key) == state:
- break
- time.sleep(2)
- server = self.get_server(refresh=True)
-
- # Timed out
- else:
- if state is None:
- msg = "Wait for '%s' timed out" % key
- else:
- msg = "Wait for '%s' to get into state '%s' timed out" % (key, state)
- self.fail_json(msg=msg)
- return server
-
- def start_server(self, skip_results=False):
- server = self.get_server()
- if server:
- if server['power_status'] == 'starting':
- server = self._wait_for_state(state='running')
-
- elif server['power_status'] != 'running':
- if not skip_results:
- self.result['changed'] = True
- self.result['diff']['before']['power_status'] = server['power_status']
- self.result['diff']['after']['power_status'] = "running"
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID']
- }
- self.api_query(
- path="/v1/server/start",
- method="POST",
- data=data
- )
- server = self._wait_for_state(state='running')
- return server
-
- def stop_server(self, skip_results=False):
- server = self.get_server()
- if server and server['power_status'] != "stopped":
- if not skip_results:
- self.result['changed'] = True
- self.result['diff']['before']['power_status'] = server['power_status']
- self.result['diff']['after']['power_status'] = "stopped"
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID'],
- }
- self.api_query(
- path="/v1/server/halt",
- method="POST",
- data=data
- )
- server = self._wait_for_state(state='stopped')
- return server
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- name=dict(required=True, aliases=['label']),
- hostname=dict(type='str'),
- os=dict(type='str'),
- snapshot=dict(type='str'),
- plan=dict(type='str'),
- force=dict(type='bool', default=False),
- notify_activate=dict(type='bool', default=False),
- private_network_enabled=dict(type='bool'),
- auto_backup_enabled=dict(type='bool'),
- ipv6_enabled=dict(type='bool'),
- tag=dict(type='str'),
- reserved_ip_v4=dict(type='str'),
- firewall_group=dict(type='str'),
- startup_script=dict(type='str'),
- user_data=dict(type='str'),
- ssh_keys=dict(type='list', elements='str', aliases=['ssh_key'], no_log=False),
- region=dict(type='str'),
- state=dict(choices=['present', 'absent', 'restarted', 'reinstalled', 'started', 'stopped'], default='present'),
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- vultr_server = AnsibleVultrServer(module)
- if module.params.get('state') == "absent":
- server = vultr_server.absent_server()
- else:
- if module.params.get('state') == "started":
- server = vultr_server.present_server()
- server = vultr_server.start_server()
- elif module.params.get('state') == "stopped":
- server = vultr_server.present_server(start_server=False)
- server = vultr_server.stop_server()
- elif module.params.get('state') == "restarted":
- server = vultr_server.present_server()
- server = vultr_server.restart_server()
- elif module.params.get('state') == "reinstalled":
- server = vultr_server.reinstall_server()
- else:
- server = vultr_server.present_server()
-
- result = vultr_server.get_result(server)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_server_baremetal.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_server_baremetal.py
deleted file mode 100644
index 279f3d14b..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_server_baremetal.py
+++ /dev/null
@@ -1,548 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# (c) 2019, Nate River <vitikc@gmail.com>
-# (c) 2020, Simon Baerlocher <s.baerlocher@sbaerlocher.ch>
-# 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 = r'''
----
-module: vultr_server_baremetal
-short_description: Manages baremetal servers on Vultr.
-description:
- - Deploy and destroy servers.
-version_added: "0.3.0"
-author:
- - "Nate River (@vitikc)"
- - "Simon Baerlocher (@sbaerlocher)"
-options:
- name:
- description:
- - Name of the server.
- required: true
- aliases: [ label ]
- type: str
- hostname:
- description:
- - The hostname to assign to this server.
- type: str
- os:
- description:
- - The operating system name or ID.
- - Required if the server does not yet exist and is not restoring from a snapshot.
- type: str
- plan:
- description:
- - Plan name or ID to use for the server.
- - Required if the server does not yet exist.
- type: str
- notify_activate:
- description:
- - Whether to send an activation email when the server is ready or not.
- - Only considered on creation.
- type: bool
- default: false
- ipv6_enabled:
- description:
- - Whether to enable IPv6 or not.
- type: bool
- tag:
- description:
- - Tag for the server.
- type: str
- user_data:
- description:
- - User data to be passed to the server.
- type: str
- startup_script:
- description:
- - Name or ID of the startup script to execute on boot.
- - Only considered while creating the server.
- type: str
- ssh_keys:
- description:
- - List of SSH key names or IDs passed to the server on creation.
- aliases: [ ssh_key ]
- type: list
- elements: str
- reserved_ip_v4:
- description:
- - IP address of the floating IP to use as the main IP of this server.
- - Only considered on creation.
- type: str
- region:
- description:
- - Region name or ID the server is deployed into.
- - Required if the server does not yet exist.
- type: str
- state:
- description:
- - State of the server.
- default: present
- choices: [ present, absent ]
- type: str
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-'''
-
-EXAMPLES = r'''
-- name: create server
- ngine_io.vultr.vultr_server_baremetal:
- name: "{{ vultr_server_baremetal_name }}"
- os: Debian 9 x64 (stretch)
- plan: 32768 MB RAM,2x 240 GB SSD,5.00 TB BW
- region: Amsterdam
-
-- name: ensure a server is absent
- ngine_io.vultr.vultr_server_baremetal:
- name: "{{ vultr_server_baremetal_name }}"
- state: absent
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_server_baremetal:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- id:
- description: ID of the server
- returned: success
- type: str
- sample: 900000
- name:
- description: Name (label) of the server
- returned: success
- type: str
- sample: "ansible-test-baremetal"
- plan:
- description: Plan used for the server
- returned: success
- type: str
- sample: "32768 MB RAM,2x 240 GB SSD,5.00 TB BW"
- allowed_bandwidth_gb:
- description: Allowed bandwidth to use in GB
- returned: success
- type: float
- sample: 1000.5
- cost_per_month:
- description: Cost per month for the server
- returned: success
- type: float
- sample: 120.00
- current_bandwidth_gb:
- description: Current bandwidth used for the server
- returned: success
- type: int
- sample: 0
- date_created:
- description: Date when the server was created
- returned: success
- type: str
- sample: "2017-04-12 18:45:41"
- default_password:
- description: Password to login as root into the server
- returned: success
- type: str
- sample: "ab81u!ryranq"
- disk:
- description: Information about the disk
- returned: success
- type: str
- sample: "SSD 250 GB"
- v4_gateway:
- description: IPv4 gateway
- returned: success
- type: str
- sample: "203.0.113.1"
- internal_ip:
- description: Internal IP
- returned: success
- type: str
- sample: ""
- region:
- description: Region the server was deployed into
- returned: success
- type: str
- sample: "Amsterdam"
- v4_main_ip:
- description: Main IPv4
- returned: success
- type: str
- sample: "203.0.113.10"
- v4_netmask:
- description: Netmask IPv4
- returned: success
- type: str
- sample: "255.255.255.0"
- os:
- description: Operating system used for the server
- returned: success
- type: str
- sample: "Debian 9 x64"
- pending_charges:
- description: Pending charges
- returned: success
- type: float
- sample: 0.18
- ram:
- description: Information about the RAM size
- returned: success
- type: str
- sample: "32768 MB"
- status:
- description: Status about the deployment of the server
- returned: success
- type: str
- sample: "active"
- tag:
- description: Server tag
- returned: success
- type: str
- sample: "my tag"
- v6_main_ip:
- description: Main IPv6
- returned: success
- type: str
- sample: "2001:DB8:9000::100"
- v6_network:
- description: Network IPv6
- returned: success
- type: str
- sample: "2001:DB8:9000::"
- v6_network_size:
- description: Network size IPv6
- returned: success
- type: int
- sample: 64
- v6_networks:
- description: Networks IPv6
- returned: success
- type: list
- sample: []
-'''
-
-import time
-import base64
-from ansible.module_utils.basic import AnsibleModule
-from ansible.module_utils._text import to_text, to_bytes
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrServerBareMetal(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrServerBareMetal, self).__init__(module, "vultr_server_baremetal")
-
- self.server = None
- self.returns = {
- 'SUBID': dict(key='id'),
- 'label': dict(key='name'),
- 'date_created': dict(),
- 'allowed_bandwidth_gb': dict(convert_to='float'),
- 'current_bandwidth_gb': dict(),
- 'default_password': dict(),
- 'internal_ip': dict(),
- 'disk': dict(),
- 'cost_per_month': dict(convert_to='float'),
- 'location': dict(key='region'),
- 'main_ip': dict(key='v4_main_ip'),
- 'network_v4': dict(key='v4_network'),
- 'gateway_v4': dict(key='v4_gateway'),
- 'os': dict(),
- 'pending_charges': dict(convert_to='float'),
- 'ram': dict(),
- 'plan': dict(),
- 'status': dict(),
- 'tag': dict(),
- 'v6_main_ip': dict(),
- 'v6_network': dict(),
- 'v6_network_size': dict(),
- 'v6_networks': dict(),
- }
- self.server_power_state = None
-
- def get_startup_script(self):
- return self.query_resource_by_key(
- key='name',
- value=self.module.params.get('startup_script'),
- resource='startupscript',
- )
-
- def get_os(self):
- return self.query_resource_by_key(
- key='name',
- value=self.module.params.get('os'),
- resource='os',
- use_cache=True
- )
-
- def get_ssh_keys(self):
- ssh_key_names = self.module.params.get('ssh_keys')
- if not ssh_key_names:
- return []
-
- ssh_keys = []
- for ssh_key_name in ssh_key_names:
- ssh_key = self.query_resource_by_key(
- key='name',
- value=ssh_key_name,
- resource='sshkey',
- use_cache=True
- )
- if ssh_key:
- ssh_keys.append(ssh_key)
- return ssh_keys
-
- def get_region(self):
- return self.query_resource_by_key(
- key='name',
- value=self.module.params.get('region'),
- resource='regions',
- use_cache=True
- )
-
- def get_plan(self):
- return self.query_resource_by_key(
- key='name',
- value=self.module.params.get('plan'),
- resource='plans',
- query_by='list_baremetal',
- use_cache=True
- )
-
- def get_user_data(self):
- user_data = self.module.params.get('user_data')
- if user_data is not None:
- user_data = to_text(base64.b64encode(to_bytes(user_data)))
- return user_data
-
- def get_server_user_data(self, server):
- if not server or not server.get('SUBID'):
- return None
-
- user_data = self.api_query(path="/v1/baremetal/get_user_data?SUBID=%s" % server.get('SUBID'))
- return user_data.get('userdata')
-
- def get_server(self, refresh=False):
- if self.server is None or refresh:
- self.server = None
- server_list = self.api_query(path="/v1/baremetal/list")
- if server_list:
- for server_id, server_data in server_list.items():
- if server_data.get('label') == self.module.params.get('name'):
- self.server = server_data
-
- plan = self.query_resource_by_key(
- key='METALPLANID',
- value=server_data['METALPLANID'],
- resource='plans',
- query_by='list_baremetal',
- use_cache=True
- )
- self.server['plan'] = plan.get('name')
-
- os = self.query_resource_by_key(
- key='OSID',
- value=int(server_data['OSID']),
- resource='os',
- use_cache=True
- )
- self.server['os'] = os.get('name')
- return self.server
-
- def _wait_for_state(self, key='status', state=None):
- time.sleep(1)
- server = self.get_server(refresh=True)
- for s in range(0, 500):
- if state is None and server.get(key):
- break
- elif server.get(key) == state:
- break
- time.sleep(2)
- server = self.get_server(refresh=True)
-
- # Timed out
- else:
- if state is None:
- msg = "Wait for '%s' timed out" % key
- else:
- msg = "Wait for '%s' to get into state '%s' timed out" % (key, state)
- self.fail_json(msg=msg)
- return server
-
- def present_server(self, start_server=True):
- server = self.get_server()
- if not server:
- server = self._create_server(server=server)
- else:
- server = self._update_server(server=server, start_server=start_server)
- return server
-
- def _create_server(self, server=None):
- required_params = [
- 'os',
- 'plan',
- 'region',
- ]
- self.module.fail_on_missing_params(required_params=required_params)
-
- self.result['changed'] = True
- if not self.module.check_mode:
- data = {
- 'DCID': self.get_region().get('DCID'),
- 'METALPLANID': self.get_plan().get('METALPLANID'),
- 'OSID': self.get_os().get('OSID'),
- 'label': self.module.params.get('name'),
- 'hostname': self.module.params.get('hostname'),
- 'SSHKEYID': ','.join([ssh_key['SSHKEYID'] for ssh_key in self.get_ssh_keys()]),
- 'enable_ipv6': self.get_yes_or_no('ipv6_enabled'),
- 'notify_activate': self.get_yes_or_no('notify_activate'),
- 'tag': self.module.params.get('tag'),
- 'reserved_ip_v4': self.module.params.get('reserved_ip_v4'),
- 'user_data': self.get_user_data(),
- 'SCRIPTID': self.get_startup_script().get('SCRIPTID'),
- }
- self.api_query(
- path="/v1/baremetal/create",
- method="POST",
- data=data
- )
- server = self._wait_for_state(key='status', state='active')
- return server
-
- def _update_server(self, server=None, start_server=True):
-
- # Update plan settings
- # server = self._update_plan_setting(server=server, start_server=start_server)
-
- # User data
- user_data = self.get_user_data()
- server_user_data = self.get_server_user_data(server=server)
- if user_data is not None and user_data != server_user_data:
- self.result['changed'] = True
- self.result['diff']['before']['user_data'] = server_user_data
- self.result['diff']['after']['user_data'] = user_data
-
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID'],
- 'userdata': user_data,
- }
- self.api_query(
- path="/v1/baremetal/set_user_data",
- method="POST",
- data=data
- )
-
- # Tags
- tag = self.module.params.get('tag')
- if tag is not None and tag != server.get('tag'):
- self.result['changed'] = True
- self.result['diff']['before']['tag'] = server.get('tag')
- self.result['diff']['after']['tag'] = tag
-
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID'],
- 'tag': tag,
- }
- self.api_query(
- path="/v1/baremetal/tag_set",
- method="POST",
- data=data
- )
- return server
-
- def absent_server(self):
- server = self.get_server()
- if server:
- self.result['changed'] = True
- self.result['diff']['before']['id'] = server['SUBID']
- self.result['diff']['after']['id'] = ""
- if not self.module.check_mode:
- data = {
- 'SUBID': server['SUBID']
- }
- self.api_query(
- path="/v1/baremetal/destroy",
- method="POST",
- data=data
- )
- for s in range(0, 60):
- if server is not None:
- break
- time.sleep(2)
- server = self.get_server(refresh=True)
- else:
- self.fail_json(msg="Wait for server '%s' to get deleted timed out" % server['label'])
- return server
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- name=dict(required=True, aliases=['label']),
- hostname=dict(type='str',),
- os=dict(type='str',),
- plan=dict(type='str',),
- notify_activate=dict(type='bool', default=False),
- ipv6_enabled=dict(type='bool'),
- tag=dict(type='str',),
- reserved_ip_v4=dict(type='str',),
- startup_script=dict(type='str',),
- user_data=dict(type='str',),
- ssh_keys=dict(type='list', elements='str', aliases=['ssh_key'], no_log=False),
- region=dict(type='str',),
- state=dict(type='str', choices=['present', 'absent'], default='present'),
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- vultr_server_baremetal = AnsibleVultrServerBareMetal(module)
- if module.params.get('state') == "absent":
- server = vultr_server_baremetal.absent_server()
- else:
- server = vultr_server_baremetal.present_server()
-
- result = vultr_server_baremetal.get_result(server)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_server_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_server_info.py
deleted file mode 100644
index a2608ac14..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_server_info.py
+++ /dev/null
@@ -1,300 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# 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 = r'''
----
-module: vultr_server_info
-short_description: Gather information about the Vultr servers available.
-description:
- - Gather information about servers available.
-version_added: "0.1.0"
-author: "Yanis Guenane (@Spredzy)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Gather Vultr servers information
- ngine_io.vultr.vultr_server_info:
- register: result
-
-- name: Print the gathered information
- debug:
- var: result.vultr_server_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_server_info:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- id:
- description: ID of the server
- returned: success
- type: str
- sample: 10194376
- name:
- description: Name (label) of the server
- returned: success
- type: str
- sample: "ansible-test-vm"
- plan:
- description: Plan used for the server
- returned: success
- type: str
- sample: "1024 MB RAM,25 GB SSD,1.00 TB BW"
- allowed_bandwidth_gb:
- description: Allowed bandwidth to use in GB
- returned: success
- type: float
- sample: 1000.5
- auto_backup_enabled:
- description: Whether automatic backups are enabled
- returned: success
- type: bool
- sample: false
- cost_per_month:
- description: Cost per month for the server
- returned: success
- type: float
- sample: 5.00
- current_bandwidth_gb:
- description: Current bandwidth used for the server
- returned: success
- type: int
- sample: 0
- date_created:
- description: Date when the server was created
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
- default_password:
- description: Password to login as root into the server
- returned: success
- type: str
- sample: "!p3EWYJm$qDWYaFr"
- disk:
- description: Information about the disk
- returned: success
- type: str
- sample: "Virtual 25 GB"
- v4_gateway:
- description: IPv4 gateway
- returned: success
- type: str
- sample: "45.32.232.1"
- internal_ip:
- description: Internal IP
- returned: success
- type: str
- sample: ""
- kvm_url:
- description: URL to the VNC
- returned: success
- type: str
- sample: "https://my.vultr.com/subs/vps/novnc/api.php?data=xyz"
- region:
- description: Region the server was deployed into
- returned: success
- type: str
- sample: "Amsterdam"
- v4_main_ip:
- description: Main IPv4
- returned: success
- type: str
- sample: "45.32.233.154"
- v4_netmask:
- description: Netmask IPv4
- returned: success
- type: str
- sample: "255.255.254.0"
- os:
- description: Operating system used for the server
- returned: success
- type: str
- sample: "CentOS 6 x64"
- firewall_group:
- description: Firewall group the server is assigned to
- returned: success and available
- type: str
- sample: "CentOS 6 x64"
- pending_charges:
- description: Pending charges
- returned: success
- type: float
- sample: 0.01
- power_status:
- description: Power status of the server
- returned: success
- type: str
- sample: "running"
- ram:
- description: Information about the RAM size
- returned: success
- type: str
- sample: "1024 MB"
- server_state:
- description: State about the server
- returned: success
- type: str
- sample: "ok"
- status:
- description: Status about the deployment of the server
- returned: success
- type: str
- sample: "active"
- tag:
- description: TBD
- returned: success
- type: str
- sample: ""
- v6_main_ip:
- description: Main IPv6
- returned: success
- type: str
- sample: ""
- v6_network:
- description: Network IPv6
- returned: success
- type: str
- sample: ""
- v6_network_size:
- description: Network size IPv6
- returned: success
- type: str
- sample: ""
- v6_networks:
- description: Networks IPv6
- returned: success
- type: list
- sample: []
- vcpu_count:
- description: Virtual CPU count
- returned: success
- type: int
- sample: 1
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrServerInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrServerInfo, self).__init__(module, "vultr_server_info")
-
- self.returns = {
- "APPID": dict(key='application', convert_to='int', transform=self._get_application_name),
- "FIREWALLGROUPID": dict(key='firewallgroup', transform=self._get_firewallgroup_name),
- "SUBID": dict(key='id', convert_to='int'),
- "VPSPLANID": dict(key='plan', convert_to='int', transform=self._get_plan_name),
- "allowed_bandwidth_gb": dict(convert_to='float'),
- 'auto_backups': dict(key='auto_backup_enabled', convert_to='bool'),
- "cost_per_month": dict(convert_to='float'),
- "current_bandwidth_gb": dict(convert_to='float'),
- "date_created": dict(),
- "default_password": dict(),
- "disk": dict(),
- "gateway_v4": dict(key='v4_gateway'),
- "internal_ip": dict(),
- "kvm_url": dict(),
- "label": dict(key='name'),
- "location": dict(key='region'),
- "main_ip": dict(key='v4_main_ip'),
- "netmask_v4": dict(key='v4_netmask'),
- "os": dict(),
- "pending_charges": dict(convert_to='float'),
- "power_status": dict(),
- "ram": dict(),
- "server_state": dict(),
- "status": dict(),
- "tag": dict(),
- "v6_main_ip": dict(),
- "v6_network": dict(),
- "v6_network_size": dict(),
- "v6_networks": dict(),
- "vcpu_count": dict(convert_to='int'),
- }
-
- def _get_application_name(self, application):
- if application == 0:
- return None
-
- return self.get_application(application, 'APPID').get('name')
-
- def _get_firewallgroup_name(self, firewallgroup):
- if firewallgroup == 0:
- return None
-
- return self.get_firewallgroup(firewallgroup, 'FIREWALLGROUPID').get('description')
-
- def _get_plan_name(self, plan):
- return self.get_plan(plan, 'VPSPLANID', optional=True).get('name') or 'N/A'
-
- def get_servers(self):
- return self.api_query(path="/v1/server/list")
-
-
-def parse_servers_list(servers_list):
- return [server for id, server in servers_list.items()]
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- server_info = AnsibleVultrServerInfo(module)
- result = server_info.get_result(parse_servers_list(server_info.get_servers()))
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_ssh_key.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_ssh_key.py
deleted file mode 100644
index 11e648ce6..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_ssh_key.py
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2017, René Moser <mail@renemoser.net>
-# 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: vultr_ssh_key
-short_description: Manages ssh keys on Vultr.
-description:
- - Create, update and remove ssh keys.
-version_added: "0.1.0"
-author: "René Moser (@resmo)"
-options:
- name:
- description:
- - Name of the ssh key.
- required: true
- type: str
- ssh_key:
- description:
- - SSH public key.
- - Required if C(state=present).
- type: str
- state:
- description:
- - State of the ssh key.
- default: present
- choices: [ present, absent ]
- type: str
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = '''
-- name: ensure an SSH key is present
- ngine_io.vultr.vultr_ssh_key:
- name: my ssh key
- ssh_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
-
-- name: ensure an SSH key is absent
- ngine_io.vultr.vultr_ssh_key:
- name: my ssh key
- state: absent
-'''
-
-RETURN = '''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_ssh_key:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- id:
- description: ID of the ssh key
- returned: success
- type: str
- sample: 5904bc6ed9234
- name:
- description: Name of the ssh key
- returned: success
- type: str
- sample: my ssh key
- date_created:
- description: Date the ssh key was created
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
- ssh_key:
- description: SSH public key
- returned: success
- type: str
- sample: "ssh-rsa AA... someother@example.com"
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrSshKey(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrSshKey, self).__init__(module, "vultr_ssh_key")
-
- self.returns = {
- 'SSHKEYID': dict(key='id'),
- 'name': dict(),
- 'ssh_key': dict(),
- 'date_created': dict(),
- }
-
- def get_ssh_key(self):
- ssh_keys = self.api_query(path="/v1/sshkey/list")
- if ssh_keys:
- for ssh_key_id, ssh_key_data in ssh_keys.items():
- if ssh_key_data.get('name') == self.module.params.get('name'):
- return ssh_key_data
- return {}
-
- def present_ssh_key(self):
- ssh_key = self.get_ssh_key()
- if not ssh_key:
- ssh_key = self._create_ssh_key(ssh_key)
- else:
- ssh_key = self._update_ssh_key(ssh_key)
- return ssh_key
-
- def _create_ssh_key(self, ssh_key):
- self.result['changed'] = True
- data = {
- 'name': self.module.params.get('name'),
- 'ssh_key': self.module.params.get('ssh_key'),
- }
- self.result['diff']['before'] = {}
- self.result['diff']['after'] = data
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/sshkey/create",
- method="POST",
- data=data
- )
- ssh_key = self.get_ssh_key()
- return ssh_key
-
- def _update_ssh_key(self, ssh_key):
- param_ssh_key = self.module.params.get('ssh_key')
- if param_ssh_key != ssh_key['ssh_key']:
- self.result['changed'] = True
-
- data = {
- 'SSHKEYID': ssh_key['SSHKEYID'],
- 'ssh_key': param_ssh_key,
- }
-
- self.result['diff']['before'] = ssh_key
- self.result['diff']['after'] = data
- self.result['diff']['after'].update({'date_created': ssh_key['date_created']})
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/sshkey/update",
- method="POST",
- data=data
- )
- ssh_key = self.get_ssh_key()
- return ssh_key
-
- def absent_ssh_key(self):
- ssh_key = self.get_ssh_key()
- if ssh_key:
- self.result['changed'] = True
-
- data = {
- 'SSHKEYID': ssh_key['SSHKEYID'],
- }
-
- self.result['diff']['before'] = ssh_key
- self.result['diff']['after'] = {}
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/sshkey/destroy",
- method="POST",
- data=data
- )
- return ssh_key
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- name=dict(type='str', required=True),
- ssh_key=dict(type='str', no_log=False),
- state=dict(type='str', choices=['present', 'absent'], default='present'),
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- required_if=[
- ('state', 'present', ['ssh_key']),
- ],
- supports_check_mode=True,
- )
-
- vultr_ssh_key = AnsibleVultrSshKey(module)
- if module.params.get('state') == "absent":
- ssh_key = vultr_ssh_key.absent_ssh_key()
- else:
- ssh_key = vultr_ssh_key.present_ssh_key()
-
- result = vultr_ssh_key.get_result(ssh_key)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_ssh_key_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_ssh_key_info.py
deleted file mode 100644
index 51b2960bb..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_ssh_key_info.py
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# Copyright (c) 2019, René Moser <mail@renemoser.net>
-
-# 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 = r'''
----
-module: vultr_ssh_key_info
-short_description: Get information about the Vultr SSH keys available.
-description:
- - Get infos about SSH keys available.
-version_added: "0.1.0"
-author:
- - "Yanis Guenane (@Spredzy)"
- - "René Moser (@resmo)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Get Vultr SSH keys infos
- ngine_io.vultr.vultr_ssh_key_info:
- register: result
-
-- name: Print the infos
- debug:
- var: result.vultr_ssh_key_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_ssh_key_info:
- description: Response from Vultr API as list
- returned: success
- type: complex
- contains:
- id:
- description: ID of the ssh key
- returned: success
- type: str
- sample: 5904bc6ed9234
- name:
- description: Name of the ssh key
- returned: success
- type: str
- sample: my ssh key
- date_created:
- description: Date the ssh key was created
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
- ssh_key:
- description: SSH public key
- returned: success
- type: str
- sample: "ssh-rsa AA... someother@example.com"
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrSSHKeyInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrSSHKeyInfo, self).__init__(module, "vultr_ssh_key_info")
-
- self.returns = {
- 'SSHKEYID': dict(key='id'),
- 'name': dict(),
- 'ssh_key': dict(),
- 'date_created': dict(),
- }
-
- def get_sshkeys(self):
- return self.api_query(path="/v1/sshkey/list")
-
-
-def parse_keys_list(keys_list):
- if not keys_list:
- return []
-
- return [key for id, key in keys_list.items()]
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- sshkey_info = AnsibleVultrSSHKeyInfo(module)
- result = sshkey_info.get_result(parse_keys_list(sshkey_info.get_sshkeys()))
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_startup_script.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_startup_script.py
deleted file mode 100644
index dfa58af77..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_startup_script.py
+++ /dev/null
@@ -1,265 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# 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 = r'''
----
-module: vultr_startup_script
-short_description: Manages startup scripts on Vultr.
-description:
- - Create, update and remove startup scripts.
-version_added: "0.1.0"
-author: "René Moser (@resmo)"
-options:
- name:
- description:
- - The script name.
- required: true
- type: str
- script_type:
- description:
- - The script type, can not be changed once created.
- default: boot
- choices: [ boot, pxe ]
- aliases: [ type ]
- type: str
- script:
- description:
- - The script source code.
- - Required if I(state=present).
- type: str
- state:
- description:
- - State of the script.
- default: present
- choices: [ present, absent ]
- type: str
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: ensure a pxe script exists, source from a file
- ngine_io.vultr.vultr_startup_script:
- name: my_web_script
- script_type: pxe
- script: "{{ lookup('file', 'path/to/script') }}"
-
-- name: ensure a boot script exists
- ngine_io.vultr.vultr_startup_script:
- name: vultr_startup_script
- script: "#!/bin/bash\necho Hello World > /root/hello"
-
-- name: ensure a script is absent
- ngine_io.vultr.vultr_startup_script:
- name: my_web_script
- state: absent
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_startup_script:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- id:
- description: ID of the startup script.
- returned: success
- type: str
- sample: 249395
- name:
- description: Name of the startup script.
- returned: success
- type: str
- sample: my startup script
- script:
- description: The source code of the startup script.
- returned: success
- type: str
- sample: "#!/bin/bash\necho Hello World > /root/hello"
- script_type:
- description: The type of the startup script.
- returned: success
- type: str
- sample: pxe
- date_created:
- description: Date the startup script was created.
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
- date_modified:
- description: Date the startup script was modified.
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrStartupScript(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrStartupScript, self).__init__(module, "vultr_startup_script")
-
- self.returns = {
- 'SCRIPTID': dict(key='id'),
- 'type': dict(key='script_type'),
- 'name': dict(),
- 'script': dict(),
- 'date_created': dict(),
- 'date_modified': dict(),
- }
-
- def get_script(self):
- scripts = self.api_query(path="/v1/startupscript/list")
- name = self.module.params.get('name')
- if scripts:
- for script_id, script_data in scripts.items():
- if script_data.get('name') == name:
- return script_data
- return {}
-
- def present_script(self):
- script = self.get_script()
- if not script:
- script = self._create_script(script)
- else:
- script = self._update_script(script)
- return script
-
- def _create_script(self, script):
- self.result['changed'] = True
-
- data = {
- 'name': self.module.params.get('name'),
- 'script': self.module.params.get('script'),
- 'type': self.module.params.get('script_type'),
- }
-
- self.result['diff']['before'] = {}
- self.result['diff']['after'] = data
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/startupscript/create",
- method="POST",
- data=data
- )
- script = self.get_script()
- return script
-
- def _update_script(self, script):
- if script['script'] != self.module.params.get('script'):
- self.result['changed'] = True
-
- data = {
- 'SCRIPTID': script['SCRIPTID'],
- 'script': self.module.params.get('script'),
- }
-
- self.result['diff']['before'] = script
- self.result['diff']['after'] = script.copy()
- self.result['diff']['after'].update(data)
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/startupscript/update",
- method="POST",
- data=data
- )
- script = self.get_script()
- return script
-
- def absent_script(self):
- script = self.get_script()
- if script:
- self.result['changed'] = True
-
- data = {
- 'SCRIPTID': script['SCRIPTID'],
- }
-
- self.result['diff']['before'] = script
- self.result['diff']['after'] = {}
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/startupscript/destroy",
- method="POST",
- data=data
- )
- return script
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- name=dict(type='str', required=True),
- script=dict(type='str',),
- script_type=dict(type='str', default='boot', choices=['boot', 'pxe'], aliases=['type']),
- state=dict(type='str', choices=['present', 'absent'], default='present'),
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- required_if=[
- ('state', 'present', ['script']),
- ],
- supports_check_mode=True,
- )
-
- vultr_script = AnsibleVultrStartupScript(module)
- if module.params.get('state') == "absent":
- script = vultr_script.absent_script()
- else:
- script = vultr_script.present_script()
-
- result = vultr_script.get_result(script)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_startup_script_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_startup_script_info.py
deleted file mode 100644
index 262954ad3..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_startup_script_info.py
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# 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 = r'''
----
-module: vultr_startup_script_info
-short_description: Gather information about the Vultr startup scripts available.
-description:
- - Gather information about vultr_startup_scripts available.
-version_added: "0.1.0"
-author: "Yanis Guenane (@Spredzy)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Gather Vultr startup scripts information
- ngine_io.vultr.vultr_startup_script_info:
- register: result
-
-- name: Print the gathered information
- debug:
- var: result.vultr_startup_script_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_startup_script_info:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- id:
- description: ID of the startup script.
- returned: success
- type: str
- sample: 249395
- name:
- description: Name of the startup script.
- returned: success
- type: str
- sample: my startup script
- script:
- description: The source code of the startup script.
- returned: success
- type: str
- sample: "#!/bin/bash\necho Hello World > /root/hello"
- type:
- description: The type of the startup script.
- returned: success
- type: str
- sample: pxe
- date_created:
- description: Date the startup script was created.
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
- date_modified:
- description: Date the startup script was modified.
- returned: success
- type: str
- sample: "2017-08-26 12:47:48"
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrStartupScriptInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrStartupScriptInfo, self).__init__(module, "vultr_startup_script_info")
-
- self.returns = {
- "SCRIPTID": dict(key='id', convert_to='int'),
- "date_created": dict(),
- "date_modified": dict(),
- "name": dict(),
- "script": dict(),
- "type": dict(),
- }
-
- def get_startupscripts(self):
- return self.api_query(path="/v1/startupscript/list")
-
-
-def parse_startupscript_list(startupscipts_list):
- if not startupscipts_list:
- return []
-
- return [startupscript for id, startupscript in startupscipts_list.items()]
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- startupscript_info = AnsibleVultrStartupScriptInfo(module)
- result = startupscript_info.get_result(parse_startupscript_list(startupscript_info.get_startupscripts()))
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_user.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_user.py
deleted file mode 100644
index 53ebfeacc..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_user.py
+++ /dev/null
@@ -1,326 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2017, René Moser <mail@renemoser.net>
-# 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 = r'''
----
-module: vultr_user
-short_description: Manages users on Vultr.
-description:
- - Create, update and remove users.
-version_added: "0.1.0"
-author: "René Moser (@resmo)"
-options:
- name:
- description:
- - Name of the user
- required: true
- type: str
- email:
- description:
- - Email of the user.
- - Required if C(state=present).
- type: str
- password:
- description:
- - Password of the user.
- - Only considered while creating a user or when C(force=yes).
- type: str
- force:
- description:
- - Password will only be changed with enforcement.
- default: no
- type: bool
- api_enabled:
- description:
- - Whether the API is enabled or not.
- default: yes
- type: bool
- acls:
- description:
- - List of ACLs this users should have, see U(https://www.vultr.com/api/#user_user_list).
- - Required if C(state=present).
- - One or more of the choices list, some depend on each other.
- choices:
- - manage_users
- - subscriptions
- - provisioning
- - billing
- - support
- - abuse
- - dns
- - upgrade
- aliases: [ acl ]
- type: list
- elements: str
- state:
- description:
- - State of the user.
- default: present
- choices: [ present, absent ]
- type: str
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Ensure a user exists
- ngine_io.vultr.vultr_user:
- name: john
- email: john.doe@example.com
- password: s3cr3t
- acls:
- - upgrade
- - dns
- - manage_users
- - subscriptions
- - upgrade
-
-- name: Remove a user
- ngine_io.vultr.vultr_user:
- name: john
- state: absent
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_user:
- description: Response from Vultr API
- returned: success
- type: complex
- contains:
- id:
- description: ID of the user.
- returned: success
- type: str
- sample: 5904bc6ed9234
- api_key:
- description: API key of the user.
- returned: only after resource was created
- type: str
- sample: 567E6K567E6K567E6K567E6K567E6K
- name:
- description: Name of the user.
- returned: success
- type: str
- sample: john
- email:
- description: Email of the user.
- returned: success
- type: str
- sample: "john@example.com"
- api_enabled:
- description: Whether the API is enabled or not.
- returned: success
- type: bool
- sample: true
- acls:
- description: List of ACLs of the user.
- returned: success
- type: list
- sample: [manage_users, support, upgrade]
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-ACLS = [
- 'manage_users',
- 'subscriptions',
- 'provisioning',
- 'billing',
- 'support',
- 'abuse',
- 'dns',
- 'upgrade',
-]
-
-
-class AnsibleVultrUser(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrUser, self).__init__(module, "vultr_user")
-
- self.returns = {
- 'USERID': dict(key='id'),
- 'name': dict(),
- 'email': dict(),
- 'api_enabled': dict(convert_to='bool'),
- 'acls': dict(),
- 'api_key': dict()
- }
-
- def _common_args(self):
- return {
- 'name': self.module.params.get('name'),
- 'email': self.module.params.get('email'),
- 'acls': self.module.params.get('acls'),
- 'password': self.module.params.get('password'),
- 'api_enabled': self.get_yes_or_no('api_enabled'),
- }
-
- def get_user(self):
- users = self.api_query(path="/v1/user/list")
- for user in users or []:
- if user.get('name') == self.module.params.get('name'):
- return user
- return {}
-
- def present_user(self):
- user = self.get_user()
- if not user:
- user = self._create_user(user)
- else:
- user = self._update_user(user)
- return user
-
- def _has_changed(self, user, data):
- for k, v in data.items():
- if k not in user:
- continue
- elif isinstance(v, list):
- for i in v:
- if i not in user[k]:
- return True
- elif data[k] != user[k]:
- return True
- return False
-
- def _create_user(self, user):
- self.module.fail_on_missing_params(required_params=['password'])
-
- self.result['changed'] = True
-
- data = self._common_args()
- self.result['diff']['before'] = {}
- self.result['diff']['after'] = data
-
- if not self.module.check_mode:
- user = self.api_query(
- path="/v1/user/create",
- method="POST",
- data=data
- )
- user.update(self.get_user())
- return user
-
- def _update_user(self, user):
- data = self._common_args()
- data.update({
- 'USERID': user['USERID'],
- })
-
- force = self.module.params.get('force')
- if not force:
- del data['password']
-
- if force or self._has_changed(user=user, data=data):
- self.result['changed'] = True
-
- self.result['diff']['before'] = user
- self.result['diff']['after'] = user.copy()
- self.result['diff']['after'].update(data)
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/user/update",
- method="POST",
- data=data
- )
- user = self.get_user()
- return user
-
- def absent_user(self):
- user = self.get_user()
- if user:
- self.result['changed'] = True
-
- data = {
- 'USERID': user['USERID'],
- }
-
- self.result['diff']['before'] = user
- self.result['diff']['after'] = {}
-
- if not self.module.check_mode:
- self.api_query(
- path="/v1/user/delete",
- method="POST",
- data=data
- )
- return user
-
-
-def main():
- argument_spec = vultr_argument_spec()
- argument_spec.update(dict(
- name=dict(type='str', required=True),
- email=dict(type='str',),
- password=dict(type='str', no_log=True),
- force=dict(type='bool', default=False),
- api_enabled=dict(type='bool', default=True),
- acls=dict(type='list', elements='str', choices=ACLS, aliases=['acl']),
- state=dict(type='str', choices=['present', 'absent'], default='present'),
- ))
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- required_if=[
- ('state', 'present', ['email', 'acls']),
- ],
- supports_check_mode=True,
- )
-
- vultr_user = AnsibleVultrUser(module)
- if module.params.get('state') == "absent":
- user = vultr_user.absent_user()
- else:
- user = vultr_user.present_user()
-
- result = vultr_user.get_result(user)
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_user_info.py b/ansible_collections/ngine_io/vultr/plugins/modules/vultr_user_info.py
deleted file mode 100644
index f07d0efff..000000000
--- a/ansible_collections/ngine_io/vultr/plugins/modules/vultr_user_info.py
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# Copyright (c) 2019, René Moser <mail@renemoser.net>
-# 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 = r'''
----
-module: vultr_user_info
-short_description: Get information about the Vultr user available.
-version_added: "0.1.0"
-description:
- - Get infos about users available in Vultr.
-author:
- - "Yanis Guenane (@Spredzy)"
- - "René Moser (@resmo)"
-extends_documentation_fragment:
-- ngine_io.vultr.vultr
-
-'''
-
-EXAMPLES = r'''
-- name: Get Vultr user infos
- ngine_io.vultr.vultr_user_info:
- register: result
-
-- name: Print the infos
- debug:
- var: result.vultr_user_info
-'''
-
-RETURN = r'''
----
-vultr_api:
- description: Response from Vultr API with a few additions/modification
- returned: success
- type: complex
- contains:
- api_account:
- description: Account used in the ini file to select the key
- returned: success
- type: str
- sample: default
- api_timeout:
- description: Timeout used for the API requests
- returned: success
- type: int
- sample: 60
- api_retries:
- description: Amount of max retries for the API requests
- returned: success
- type: int
- sample: 5
- api_retry_max_delay:
- description: Exponential backoff delay in seconds between retries up to this max delay value.
- returned: success
- type: int
- sample: 12
- api_endpoint:
- description: Endpoint used for the API requests
- returned: success
- type: str
- sample: "https://api.vultr.com"
-vultr_user_info:
- description: Response from Vultr API as list
- returned: available
- type: complex
- contains:
- id:
- description: ID of the user.
- returned: success
- type: str
- sample: 5904bc6ed9234
- api_key:
- description: API key of the user.
- returned: only after resource was created
- type: str
- sample: 567E6K567E6K567E6K567E6K567E6K
- name:
- description: Name of the user.
- returned: success
- type: str
- sample: john
- email:
- description: Email of the user.
- returned: success
- type: str
- sample: "john@example.com"
- api_enabled:
- description: Whether the API is enabled or not.
- returned: success
- type: bool
- sample: true
- acls:
- description: List of ACLs of the user.
- returned: success
- type: list
- sample: [ manage_users, support, upgrade ]
-'''
-
-from ansible.module_utils.basic import AnsibleModule
-from ..module_utils.vultr import (
- Vultr,
- vultr_argument_spec,
-)
-
-
-class AnsibleVultrUserInfo(Vultr):
-
- def __init__(self, module):
- super(AnsibleVultrUserInfo, self).__init__(module, "vultr_user_info")
-
- self.returns = {
- "USERID": dict(key='id'),
- "acls": dict(),
- "api_enabled": dict(),
- "email": dict(),
- "name": dict()
- }
-
- def get_regions(self):
- return self.api_query(path="/v1/user/list")
-
-
-def main():
- argument_spec = vultr_argument_spec()
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- )
-
- user_info = AnsibleVultrUserInfo(module)
- result = user_info.get_result(user_info.get_regions())
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_account_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_account_info/aliases
deleted file mode 100644
index 1e9555644..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_account_info/aliases
+++ /dev/null
@@ -1,2 +0,0 @@
-cloud/vultr
-smoke/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_account_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_account_info/tasks/main.yml
deleted file mode 100644
index 1dfa8c44f..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_account_info/tasks/main.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test get vultr account infos in check mode
- vultr_account_info:
- check_mode: yes
- register: result
-
-- name: verify test get vultr account infos in check mode
- assert:
- that:
- - result.vultr_account_info.balance is defined
- - result.vultr_account_info.last_payment_amount is defined
- - result.vultr_account_info.last_payment_date is defined
- - result.vultr_account_info.last_payment_amount is defined
-
-- name: test get vultr account fact
- vultr_account_info:
- register: result
-
-- name: verify test get vultr account infos
- assert:
- that:
- - result.vultr_account_info.balance is defined
- - result.vultr_account_info.last_payment_amount is defined
- - result.vultr_account_info.last_payment_date is defined
- - result.vultr_account_info.last_payment_amount is defined
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/defaults/main.yml
deleted file mode 100644
index b2c0ebe39..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/defaults/main.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_block_storage_name: "{{ vultr_resource_prefix }}-volume"
-vultr_block_storage_size: 10
-vultr_block_storage_size_2: 12
-vultr_block_storage_size_3: 14
-vultr_block_storage_region: New Jersey
-
-vultr_server_name: "{{ vultr_resource_prefix }}_vm_for_attachment"
-vultr_server_ssh_keys:
-- name: key1
- key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAyWYItY+3w5b8PdGRoz0oY5mufqydW96naE+VM3JSvJFAUS08rAjQQpQ03ymoALeHQy6JVZbcgecxn6p0pAOINQdqufn4udPtOPCtMjNiPGpkSM9ah/6X5+kvyWMNrvlf+Ld4OOoszP5sAkgQzIbrFQAm41XknBUha0zkewZwfrVhain4pnDjV7wCcChId/Q/Gbi4xMtXkisznWcAJcueBs3EEZDKhJ5q0VeWSJEhYJDLFN1sOxF0AIUnMrOhfKQ/LjgREXPB6uCl899INUTXRNNjRpeMXyJ2wMMmOAbua2qEd1r13Bu1n+6A823Hzb33fyMXuqWnJwBJ4DCvMlGuEsfuOK+xk7DaBfLHbcM6fsPk0/4psTE6YLgC41remr6+u5ZWsY/faMtSnNPie8Z8Ov0DIYGdhbJjUXk1HomxRV9+ZfZ2Ob8iCwlaAQAyEUM6fs3Kxt8pBD8dx1HOkhsfBWPvuDr5y+kqE7H8/MuPDTc0QgH2pjUMpmw/XBwNDHshVEjrZvtICOjOLUJxcowLO1ivNYwPwowQxfisMy56LfYdjsOslBiqsrkAqvNGm1zu8wKHeqVN9w5l3yUELpvubfm9NKIvYcl6yWF36T0c5vE+g0DU/Jy4XpTj0hZG9QV2mRQcLJnd2pxQtJT7cPFtrn/+tgRxzjEtbDXummDV4sE= mail@renemoser.net"
-
-vultr_server_plan_1: 1024 MB RAM,25 GB SSD,1.00 TB BW
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/tasks/main.yml
deleted file mode 100644
index 3b802acea..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage/tasks/main.yml
+++ /dev/null
@@ -1,315 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- state: absent
- register: result
-- name: verify setup
- assert:
- that:
- - result is success
-
-- name: setup create ssh keys
- vultr_ssh_key:
- name: "{{ item.name }}"
- ssh_key: "{{ item.key }}"
- loop: "{{ vultr_server_ssh_keys }}"
-
-- name: Setup create server for attachment
- # We'll use this server to test block storage attachment, later
- # in this test suite.
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 8 x64
- plan: "{{ vultr_server_plan_1 }}"
- ssh_keys:
- - key1
- region: "{{ vultr_block_storage_region }}"
- state: started
- register: result_server_setup
-- name: verify setup create server
- assert:
- that:
- - result_server_setup is changed
-
-- name: test fail if missing name
- vultr_block_storage:
- register: result
- ignore_errors: yes
-- name: verify test fail if missing name
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: name"'
-
-- name: test fail if missing params for state=present
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- register: result
- ignore_errors: yes
-- name: verify fail if missing params for state=present
- assert:
- that:
- - result is failed
- - 'result.msg == "state is present but all of the following are missing: size, region"'
-
-- name: test create block storage volume in check mode
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- register: result
- check_mode: yes
-- name: verify test create server in check mode
- assert:
- that:
- - result is changed
-
-- name: test create block storage volume
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- register: result
-- name: verify test create block storage volume
- assert:
- that:
- - result is changed
- - result.vultr_block_storage.name == "{{ vultr_block_storage_name }}"
- - result.vultr_block_storage.region == "{{ vultr_block_storage_region }}"
- - result.vultr_block_storage.size == 10
-
-- name: test create block storage volume idempotence
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- register: result
-- name: verify test block storage volume idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_block_storage.name == "{{ vultr_block_storage_name }}"
- - result.vultr_block_storage.region == "{{ vultr_block_storage_region }}"
- - result.vultr_block_storage.size == 10
-
-# volumes size can only be modified every 60s
-- name: wait about 60s before resizing volume
- wait_for:
- timeout: 65
-
-- name: test resize block storage volume
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size_2 }}"
- region: "{{ vultr_block_storage_region }}"
- register: result
-- name: verify resize block storage volume
- assert:
- that:
- - result is changed
- - 'result.vultr_block_storage.size == {{ vultr_block_storage_size_2 | int }}'
-
-# volume size can only be modified every 60s
-- name: wait about 60s before resizing volume
- wait_for:
- timeout: 65
-
-- name: test resize block storage volume idempotency
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size_2 }}"
- region: "{{ vultr_block_storage_region }}"
- register: result
-- name: verify resize block storage volume idempotency
- assert:
- that:
- - not result.changed
- - 'result.vultr_block_storage.size == {{ vultr_block_storage_size_2 | int }}'
-
-- name: test attaching fails if server id not provided
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- state: attached
- register: result
- ignore_errors: yes
-- name: verify attaching fails if server id not provided
- assert:
- that:
- - result is failed
- - 'result.msg == "state is attached but all of the following are missing: attached_to_SUBID"'
-
-- name: test attach block volume in check mode
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- state: attached
- attached_to_id: 1337 # dummy server id
- register: result
- check_mode: yes
-- name: verify attach block volume in check mode
- assert:
- that:
- - result is changed
- - result.vultr_block_storage.attached_to_id == 1337
-
-- name: test attach block volume
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- state: attached
- attached_to_SUBID: "{{ result_server_setup.vultr_server.id | int}}"
- register: result
-- name: verify attach block volume
- assert:
- that:
- - result.changed
- - 'result.vultr_block_storage.attached_to_id == {{ result_server_setup.vultr_server.id | int }}'
-
-- name: test attach block volume idempotency
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- state: attached
- attached_to_SUBID: "{{ result_server_setup.vultr_server.id | int }}"
- register: result
-- name: verify attach block volume idempotency
- assert:
- that:
- - not result.changed
- - 'result.vultr_block_storage.attached_to_id == {{ result_server_setup.vultr_server.id | int }}'
-
-# volume size can only be modified every 60s
-- name: wait about 60s before resizing volume
- wait_for:
- timeout: 65
-
-- name: test resize block storage volume while attaching
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size_3 }}"
- region: "{{ vultr_block_storage_region }}"
- state: attached
- attached_to_SUBID: "{{ result_server_setup.vultr_server.id | int }}"
- register: result
-- name: verify resize block storage volume
- assert:
- that:
- - result is changed
- - 'result.vultr_block_storage.size == {{ vultr_block_storage_size_3 | int }}'
-
-- name: test attach block volume fails if attached somewhere else
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- state: attached
- attached_to_SUBID: 1337 # some other server
- register: result
- ignore_errors: true
-- name: verify attach block volume fails if attached somewhere else
- assert:
- that:
- - result is failed
- - 'result.msg == "Volume already attached to server {{ result_server_setup.vultr_server.id | int }}"'
-
-- name: test detach block volume in check mode
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- state: detached
- register: result
- check_mode: yes
-- name: verify detach block volume
- assert:
- that:
- - result is changed
- - not result.vultr_block_storage.attached_to_id
-
-- name: test detach block volume
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- state: detached
- register: result
-- name: verify detach block volume
- assert:
- that:
- - result is changed
- - not result.vultr_block_storage.attached_to_id
-
-- name: test detach block volume idempotency
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- size: "{{ vultr_block_storage_size }}"
- region: "{{ vultr_block_storage_region }}"
- state: detached
- register: result
-- name: verify detach block volume idempotency
- assert:
- that:
- - result is not changed
- - not result.vultr_block_storage.attached_to_id
-
-- name: test destroy block storage volume in check mode
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- state: absent
- register: result
- check_mode: yes
-- name: verify test destroy block storage volume in check mode
- assert:
- that:
- - result is changed
- - result.vultr_block_storage.name == "{{ vultr_block_storage_name }}"
-
-- name: test destroy block storage volume
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- state: absent
- register: result
-- name: verify test destroy an existing block storage volume
- assert:
- that:
- - result is changed
- - result.vultr_block_storage.name == "{{ vultr_block_storage_name }}"
-
-- name: test destroy an existing block storage volume idempotence
- vultr_block_storage:
- name: "{{ vultr_block_storage_name }}"
- state: absent
- register: result
-- name: verify test destroy an existing block storage volume idempotence
- assert:
- that:
- - result is not changed
-
-# Servers can only be destroyed 5 min after creation
-- name: wait for 5 min before destroying server
- wait_for:
-
-- name: cleanup server
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: absent
- register: result
-- name: verify test absent server
- assert:
- that:
- - result is changed
-
-- name: cleanup ssh keys
- vultr_ssh_key:
- name: "{{ item.name }}"
- ssh_key: "{{ item.key }}"
- state: absent
- loop: "{{ vultr_server_ssh_keys }}"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/defaults/main.yml
deleted file mode 100644
index 17be33cb0..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/defaults/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_block_storage_name: "{{ vultr_resource_prefix }}-volume"
-vultr_block_storage_size: 10
-vultr_block_storage_region: New Jersey
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/tasks/main.yml
deleted file mode 100644
index 1777c25e3..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_block_storage_info/tasks/main.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test gather vultr block storage volume info - empty resource
- vultr_block_storage_info:
-
-- name: Create the block storage volume
- vultr_block_storage:
- name: '{{ vultr_block_storage_name }}'
- size: '{{ vultr_block_storage_size }}'
- region: '{{ vultr_block_storage_region }}'
-
-- name: test gather vultr block storage volume info in check mode
- vultr_block_storage_info:
- check_mode: yes
- register: result
-
-- name: verify test gather vultr block storage volume info in check mode
- assert:
- that:
- - result.vultr_block_storage_info|selectattr('name','equalto','{{ vultr_block_storage_name }}') | list | count == 1
-
-- name: test gather vultr block storage volume info
- vultr_block_storage_info:
- register: result
-
-- name: verify test gather vultr block storage volume info
- assert:
- that:
- - result.vultr_block_storage_info|selectattr('name','equalto','{{ vultr_block_storage_name }}') | list | count == 1
-
-- name: Delete the block storage volume
- vultr_block_storage:
- name: '{{ vultr_block_storage_name }}'
- state: absent
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/defaults/main.yml
deleted file mode 100644
index 45cbf7287..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/defaults/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_dns_domain_name: "{{ vultr_resource_prefix }}-example-ansible.com"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/tasks/main.yml
deleted file mode 100644
index 706783978..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain/tasks/main.yml
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup
- vultr_dns_domain:
- name: "{{ vultr_dns_domain_name }}"
- state: absent
- register: result
-- name: verify setup
- assert:
- that:
- - result is success
-
-- name: test fail if missing name
- vultr_dns_domain:
- register: result
- ignore_errors: yes
-- name: verify test fail if missing name
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: name"'
-
-- name: test fail if missing params for state=present
- vultr_dns_domain:
- name: "{{ vultr_dns_domain_name }}"
- register: result
- ignore_errors: yes
-- name: verify fail if missing params for state=present
- assert:
- that:
- - result is failed
- - 'result.msg == "state is present but all of the following are missing: server_ip"'
-
-- name: test create dns domain in check mode
- vultr_dns_domain:
- name: "{{ vultr_dns_domain_name }}"
- server_ip: 10.10.10.10
- register: result
- check_mode: yes
-- name: verify test create dns domain in check mode
- assert:
- that:
- - result is changed
-
-- name: test create dns domain
- vultr_dns_domain:
- name: "{{ vultr_dns_domain_name }}"
- server_ip: 10.10.10.10
- register: result
-- name: verify test create dns domain
- assert:
- that:
- - result is changed
- - result.vultr_dns_domain.name == '{{ vultr_dns_domain_name }}'
-
-- name: test create dns domain idempotence
- vultr_dns_domain:
- name: "{{ vultr_dns_domain_name }}"
- server_ip: 10.10.10.10
- register: result
-- name: verify test create dns domain idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_dns_domain.name == '{{ vultr_dns_domain_name }}'
-
-- name: test absent dns domain in check mode
- vultr_dns_domain:
- name: "{{ vultr_dns_domain_name }}"
- state: absent
- register: result
- check_mode: yes
-- name: verify test absent dns domain in check mode
- assert:
- that:
- - result is changed
- - result.vultr_dns_domain.name == '{{ vultr_dns_domain_name }}'
-
-- name: test absent dns domain
- vultr_dns_domain:
- name: "{{ vultr_dns_domain_name }}"
- state: absent
- register: result
-- name: verify test absent dns domain
- assert:
- that:
- - result is changed
- - result.vultr_dns_domain.name == '{{ vultr_dns_domain_name }}'
-
-- name: test absent dns domain idempotence
- vultr_dns_domain:
- name: "{{ vultr_dns_domain_name }}"
- state: absent
- register: result
-- name: verify test absent dns domain idempotence
- assert:
- that:
- - result is not changed
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/defaults/main.yml
deleted file mode 100644
index a452ee128..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/defaults/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-vultr_resource_prefix: "vultr-test-prefix"
-dns_domain_name: "{{ vultr_resource_prefix }}-example-ansible.com"
-dns_domain_server_ip: 104.24.16.59
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/tasks/main.yml
deleted file mode 100644
index d58aa1085..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_domain_info/tasks/main.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: Create the record
- vultr_dns_domain:
- name: '{{ dns_domain_name }}'
- server_ip: '{{ dns_domain_server_ip }}'
-
-- name: test gather vultr dns domain info in check mode
- vultr_dns_domain_info:
- check_mode: yes
- register: result
-
-- name: verify test gather vultr dns domain info in check mode
- assert:
- that:
- - result.vultr_dns_domain_info|selectattr('domain','equalto','{{ dns_domain_name }}') | list | count == 1
-
-- name: test gather vultr dns domain info
- vultr_dns_domain_info:
- register: result
-
-- name: verify test gather vultr dns domain info
- assert:
- that:
- - result.vultr_dns_domain_info|selectattr('domain','equalto','{{ dns_domain_name }}') | list | count == 1
-
-- name: Delete the record
- vultr_dns_domain:
- name: '{{ dns_domain_name }}'
- server_ip: '{{ dns_domain_server_ip }}'
- state: absent
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/defaults/main.yml
deleted file mode 100644
index fb52cfd95..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/defaults/main.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_dns_domain_name: "{{ vultr_resource_prefix }}-example-ansible.com"
-vultr_dns_record_items:
-# Single A record
-- name: test-www
- data: 10.10.10.10
- ttl: 400
- update_data: 10.10.10.11
- update_ttl: 200
-
-# Multiple A records
-- name: test-www-multiple
- data: 10.10.11.10
- update_data: 10.10.11.11
- multiple: true
- update_ttl: 600
-
-# CNAME
-- name: test-cname
- data: www.ansible.com
- update_data: www.ansible.ch
- record_type: CNAME
-
-# Single Multiple MX record
-- data: mx1.example-ansible.com
- priority: 10
- update_priority: 20
- record_type: MX
-
-# Multiple MX records
-- data: mx2.example-ansible.com
- priority: 10
- update_data: mx1.example-ansible.com
- update_priority: 20
- record_type: MX
- multiple: true
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/create_record.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/create_record.yml
deleted file mode 100644
index 5f33eb140..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/create_record.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test setup dns record
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- record_type: "{{ item.record_type | default(omit) }}"
- state: absent
- register: result
-- name: verify test setup dns record
- assert:
- that:
- - result is successful
-
-- name: test create a dns record in check mode
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.data }}"
- ttl: "{{ item.ttl | default(omit) }}"
- record_type: "{{ item.record_type | default(omit) }}"
- priority: "{{ item.priority | default(omit) }}"
- check_mode: yes
- register: result
-- name: verify test create a dns record in check mode
- assert:
- that:
- - result is changed
-
-- name: test create a dns record
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.data }}"
- ttl: "{{ item.ttl | default(omit) }}"
- record_type: "{{ item.record_type | default(omit) }}"
- priority: "{{ item.priority | default(omit) }}"
- register: result
-- name: verify test create a dns record
- assert:
- that:
- - result is changed
- - result.vultr_dns_record.data == "{{ item.data }}"
- - result.vultr_dns_record.name == "{{ item.name | default("") }}"
- - result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
- - result.vultr_dns_record.ttl == {{ item.ttl | default(300) }}
- - result.vultr_dns_record.priority == {{ item.priority | default(0) }}
-
-- name: test create a dns record idempotence
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.data }}"
- ttl: "{{ item.ttl | default(omit) }}"
- record_type: "{{ item.record_type | default(omit) }}"
- priority: "{{ item.priority | default(omit) }}"
- register: result
-- name: verify test create a dns record idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_dns_record.data == "{{ item.data }}"
- - result.vultr_dns_record.name == "{{ item.name | default("") }}"
- - result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
- - result.vultr_dns_record.ttl == {{ item.ttl | default(300) }}
- - result.vultr_dns_record.priority == {{ item.priority | default(0) }}
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/main.yml
deleted file mode 100644
index 19419efcb..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/main.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup dns domain
- vultr_dns_domain:
- name: "{{ vultr_dns_domain_name }}"
- server_ip: 10.10.10.10
- register: result
-- name: verify setup dns domain
- assert:
- that:
- - result is successful
-
-- include_tasks: test_fail_multiple.yml
-
-- include_tasks: record.yml
- with_items: "{{ vultr_dns_record_items }}"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/record.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/record.yml
deleted file mode 100644
index c8c3926dc..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/record.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- include_tasks: create_record.yml
-- include_tasks: update_record.yml
-- include_tasks: remove_record.yml
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/remove_record.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/remove_record.yml
deleted file mode 100644
index e776a492e..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/remove_record.yml
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test remove a dns record in check mode
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.update_data | default(item.data) }}"
- record_type: "{{ item.record_type | default(omit) }}"
- multiple: "{{ item.multiple | default(omit) }}"
- state: absent
- check_mode: yes
- register: result
-- name: verify test remove a dns record in check mode
- assert:
- that:
- - result is changed
- - result.vultr_dns_record.data == "{{ item.update_data | default(item.data) }}"
- - result.vultr_dns_record.name == "{{ item.name | default("") }}"
- - result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
- - result.vultr_dns_record.ttl == {{ item.update_ttl | default(300) }}
- - result.vultr_dns_record.priority == {{ item.update_priority | default(item.priority | default(0)) }}
-
-- name: test remove second dns record in check mode
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.data | default(item.data) }}"
- record_type: "{{ item.record_type | default(omit) }}"
- multiple: "{{ item.multiple | default(omit) }}"
- state: absent
- check_mode: yes
- register: result
- when: item.multiple is defined and item.multiple == true
-- name: verify test remove a dns record in check mode
- assert:
- that:
- - result is changed
- - result.vultr_dns_record.data == "{{ item.data | default(item.data) }}"
- - result.vultr_dns_record.name == "{{ item.name | default("") }}"
- - result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
- - result.vultr_dns_record.ttl == {{ item.ttl | default(300) }}
- - result.vultr_dns_record.priority == {{ item.priority | default(0) }}
- when: item.multiple is defined and item.multiple == true
-
-- name: test remove a dns record
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.update_data | default(item.data) }}"
- record_type: "{{ item.record_type | default(omit) }}"
- multiple: "{{ item.multiple | default(omit) }}"
- state: absent
- register: result
-- name: verify test remove a dns record
- assert:
- that:
- - result is changed
- - result.vultr_dns_record.data == "{{ item.update_data | default(item.data) }}"
- - result.vultr_dns_record.name == "{{ item.name | default("") }}"
- - result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
- - result.vultr_dns_record.ttl == {{ item.update_ttl | default(300) }}
- - result.vultr_dns_record.priority == {{ item.update_priority | default(item.priority | default(0)) }}
-
-- name: test remove second dns record
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.data }}"
- record_type: "{{ item.record_type | default(omit) }}"
- multiple: "{{ item.multiple | default(omit) }}"
- state: absent
- register: result
- when: item.multiple is defined and item.multiple == true
-- name: verify test remove a dns record
- assert:
- that:
- - result is changed
- - result.vultr_dns_record.data == "{{ item.data }}"
- - result.vultr_dns_record.name == "{{ item.name | default("") }}"
- - result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
- - result.vultr_dns_record.ttl == {{ item.ttl | default(300) }}
- - result.vultr_dns_record.priority == {{ item.priority | default(0) }}
- when: item.multiple is defined and item.multiple == true
-
-- name: test remove a dns record idempotence
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.update_data | default(item.data) }}"
- record_type: "{{ item.record_type | default(omit) }}"
- multiple: "{{ item.multiple | default(omit) }}"
- state: absent
- register: result
-- name: verify test remove a dns record idempotence
- assert:
- that:
- - result is not changed
-
-- name: test remove second dns record idempotence
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.data }}"
- record_type: "{{ item.record_type | default(omit) }}"
- multiple: "{{ item.multiple | default(omit) }}"
- state: absent
- register: result
- when: item.multiple is defined and item.multiple == true
-- name: verify test remove a dns record idempotence
- assert:
- that:
- - result is not changed
- when: item.multiple is defined and item.multiple == true
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/test_fail_multiple.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/test_fail_multiple.yml
deleted file mode 100644
index a41d9db57..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/test_fail_multiple.yml
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup first dns record
- vultr_dns_record:
- name: test-multiple
- domain: "{{ vultr_dns_domain_name }}"
- data: 1.2.3.4
- multiple: yes
- register: result
-- name: verify setup a dns record
- assert:
- that:
- - result is successful
-
-- name: setup second dns record
- vultr_dns_record:
- name: test-multiple
- domain: "{{ vultr_dns_domain_name }}"
- data: 1.2.3.5
- multiple: yes
- register: result
-- name: verify setup second dns record
- assert:
- that:
- - result is successful
-
-- name: test-multiple fail multiple identical records found
- vultr_dns_record:
- name: test-multiple
- domain: "{{ vultr_dns_domain_name }}"
- state: absent
- register: result
- ignore_errors: yes
-- name: verify test fail multiple identical records found
- assert:
- that:
- - result is failed
-
-- name: test-multiple fail absent multiple identical records but not data
- vultr_dns_record:
- name: test-multiple
- domain: "{{ vultr_dns_domain_name }}"
- state: absent
- multiple: yes
- register: result
- ignore_errors: yes
-- name: verify test-multiple success absent multiple identical records found
- assert:
- that:
- - result is failed
- - "result.msg == 'multiple is True but all of the following are missing: data'"
-
-- name: test-multiple success absent multiple identical records second found
- vultr_dns_record:
- name: test-multiple
- domain: "{{ vultr_dns_domain_name }}"
- data: 1.2.3.5
- state: absent
- multiple: yes
- register: result
-- name: verify test-multiple success absent multiple identical records second found
- assert:
- that:
- - result is changed
-
-- name: test-multiple success absent multiple identical records first found
- vultr_dns_record:
- name: test-multiple
- domain: "{{ vultr_dns_domain_name }}"
- data: 1.2.3.4
- state: absent
- multiple: yes
- register: result
-- name: verify test-multiple success absent multiple identical records firstfound
- assert:
- that:
- - result is changed
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/update_record.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/update_record.yml
deleted file mode 100644
index 204ebda49..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_dns_record/tasks/update_record.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test update or add another dns record in check mode
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.update_data | default(item.data) }}"
- ttl: "{{ item.update_ttl | default(omit) }}"
- record_type: "{{ item.record_type | default(omit) }}"
- priority: "{{ item.update_priority | default(omit) }}"
- multiple: "{{ item.multiple | default(omit) }}"
- check_mode: yes
- register: result
-- name: verify test updatein check mode
- assert:
- that:
- - result is changed
- - result.vultr_dns_record.data == "{{ item.data }}"
- - result.vultr_dns_record.name == "{{ item.name | default("") }}"
- - result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
- - result.vultr_dns_record.ttl == {{ item.ttl | default(300) }}
- - result.vultr_dns_record.priority == {{ item.priority | default(0) }}
- when: item.multiple is undefined or item.multiple == false
-- name: verify test add another dns record in check mode
- assert:
- that:
- - result is changed
- - not result.vultr_dns_record
- when: item.multiple is defined and item.multiple == true
-
-- name: test update or add another dns record
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.update_data | default(item.data) }}"
- ttl: "{{ item.update_ttl | default(omit) }}"
- record_type: "{{ item.record_type | default(omit) }}"
- priority: "{{ item.update_priority | default(omit) }}"
- multiple: "{{ item.multiple | default(omit) }}"
- register: result
-- name: verify test update a dns record
- assert:
- that:
- - result is changed
- - result.vultr_dns_record.data == "{{ item.update_data | default(item.data) }}"
- - result.vultr_dns_record.name == "{{ item.name | default("") }}"
- - result.vultr_dns_record.ttl == {{ item.update_ttl | default(300) }}
- - result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
- - result.vultr_dns_record.priority == {{ item.update_priority | default(0) }}
-
-- name: test update or add another dns record idempotence
- vultr_dns_record:
- name: "{{ item.name | default(omit) }}"
- domain: "{{ vultr_dns_domain_name }}"
- data: "{{ item.update_data | default(item.data) }}"
- ttl: "{{ item.update_ttl | default(omit) }}"
- record_type: "{{ item.record_type | default(omit) }}"
- priority: "{{ item.update_priority | default(omit) }}"
- multiple: "{{ item.multiple | default(omit) }}"
- register: result
-- name: verify test update a dns record idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_dns_record.data == "{{ item.update_data | default(item.data) }}"
- - result.vultr_dns_record.name == "{{ item.name | default("") }}"
- - result.vultr_dns_record.ttl == {{ item.update_ttl | default(300) }}
- - result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
- - result.vultr_dns_record.priority == {{ item.update_priority | default(0) }}
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/defaults/main.yml
deleted file mode 100644
index 7057b4667..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/defaults/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_firewall_group_name: "{{ vultr_resource_prefix }}_firewall-group"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/tasks/main.yml
deleted file mode 100644
index 577457c2d..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group/tasks/main.yml
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup
- vultr_firewall_group:
- name: "{{ vultr_firewall_group_name }}"
- state: absent
- register: result
-- name: verify setup
- assert:
- that:
- - result is success
-
-- name: test fail if missing name
- vultr_firewall_group:
- register: result
- ignore_errors: yes
-- name: verify test fail if missing name
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: name"'
-
-- name: test create firewall group in check mode
- vultr_firewall_group:
- name: "{{ vultr_firewall_group_name }}"
- register: result
- check_mode: yes
-- name: verify test create firewall group in check mode
- assert:
- that:
- - result is changed
-
-- name: test create firewall group
- vultr_firewall_group:
- name: "{{ vultr_firewall_group_name }}"
- register: result
-- name: verify test create firewall group
- assert:
- that:
- - result is changed
- - result.vultr_firewall_group.name == '{{ vultr_firewall_group_name }}'
-
-- name: test create firewall group idempotence
- vultr_firewall_group:
- name: "{{ vultr_firewall_group_name }}"
-
- register: result
-- name: verify test create firewall group idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_firewall_group.name == '{{ vultr_firewall_group_name }}'
-
-- name: test absent firewall group in check mode
- vultr_firewall_group:
- name: "{{ vultr_firewall_group_name }}"
- state: absent
- register: result
- check_mode: yes
-- name: verify test absent firewall group in check mode
- assert:
- that:
- - result is changed
- - result.vultr_firewall_group.name == '{{ vultr_firewall_group_name }}'
-
-- name: test absent firewall group
- vultr_firewall_group:
- name: "{{ vultr_firewall_group_name }}"
- state: absent
- register: result
-- name: verify test absent firewall group
- assert:
- that:
- - result is changed
- - result.vultr_firewall_group.name == '{{ vultr_firewall_group_name }}'
-
-- name: test absent firewall group idempotence
- vultr_firewall_group:
- name: "{{ vultr_firewall_group_name }}"
- state: absent
- register: result
-- name: verify test absent firewall group idempotence
- assert:
- that:
- - result is not changed
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/defaults/main.yml
deleted file mode 100644
index e545fe42e..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/defaults/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-vultr_resource_prefix: "vultr-test-prefix"
-firewall_group_name: "{{ vultr_resource_prefix }}_firewall-group"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/tasks/main.yml
deleted file mode 100644
index e813afd9a..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_group_info/tasks/main.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test gather vultr firewall group info - empty resources
- vultr_firewall_group_info:
-
-- name: Create the firewall group
- vultr_firewall_group:
- name: '{{ firewall_group_name }}'
-
-- name: test gather vultr firewall group info in check mode
- vultr_firewall_group_info:
- check_mode: yes
- register: result
-
-- name: verify test gather vultr firewall group info in check mode
- assert:
- that:
- - result.vultr_firewall_group_info|selectattr('description','equalto','{{ firewall_group_name }}') | list | count == 1
-
-- name: test gather vultr firewall group info
- vultr_firewall_group_info:
- register: result
-
-- name: verify test gather vultr firewall group info
- assert:
- that:
- - result.vultr_firewall_group_info|selectattr('description','equalto','{{ firewall_group_name }}') | list | count == 1
-
-- name: Delete the firewall group
- vultr_firewall_group:
- name: '{{ firewall_group_name }}'
- state: absent
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/defaults/main.yml
deleted file mode 100644
index 7057b4667..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/defaults/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_firewall_group_name: "{{ vultr_resource_prefix }}_firewall-group"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/tasks/main.yml
deleted file mode 100644
index 44097434b..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_firewall_rule/tasks/main.yml
+++ /dev/null
@@ -1,475 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup firewall group
- vultr_firewall_group:
- name: "{{ vultr_firewall_group_name }}"
- register: result
-- name: verify setup firewall group
- assert:
- that:
- - result is success
-
-- name: setup firewall rule tcp
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- state: absent
- register: result
-- name: verify setup firewal rule
- assert:
- that:
- - result is success
-
-- name: setup firewall rule udp
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- state: absent
- register: result
-- name: verify setup firewal rule udp
- assert:
- that:
- - result is success
-
-- name: setup firewall rule udp v6
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- ip_version: v6
- state: absent
- register: result
-- name: verify setup firewal rule udp v6
- assert:
- that:
- - result is success
-
-- name: setup firewall rule port range
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- start_port: 8000
- end_port: 8080
- protocol: tcp
- cidr: 10.100.12.0/24
- state: absent
- register: result
- tags: tmp
-- name: verify setup firewal rule port range
- assert:
- that:
- - result is success
-
-- name: setup firewall rule icmp
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- protocol: icmp
- state: absent
- register: result
-- name: verify setup firewal rule
- assert:
- that:
- - result is success
-
-- name: test fail if missing group
- vultr_firewall_rule:
- register: result
- ignore_errors: yes
-- name: verify test fail if missing group
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: group"'
-
-- name: test create firewall rule tcp in check mode
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- register: result
- check_mode: true
-- name: verify test create firewall rule tcp in check mode
- assert:
- that:
- - result is changed
-
-- name: test create firewall rule tcp
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- register: result
-- name: verify test create firewall rule tcp
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "tcp"
- - result.vultr_firewall_rule.start_port == 53
- - result.vultr_firewall_rule.cidr == "0.0.0.0/0"
-
-- name: test create firewall rule tcp idempotence
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- register: result
-- name: verify test create firewall rule tcp idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "tcp"
- - result.vultr_firewall_rule.start_port == 53
- - result.vultr_firewall_rule.cidr == "0.0.0.0/0"
-
-- name: test create firewall rule udp in check mode
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- register: result
- check_mode: true
-- name: verify test create firewall rule udp in check mode
- assert:
- that:
- - result is changed
-
-- name: test create firewall rule udp
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- register: result
-- name: verify test create firewall rule udp
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "udp"
- - result.vultr_firewall_rule.start_port == 53
- - result.vultr_firewall_rule.cidr == "0.0.0.0/0"
-
-- name: test create firewall rule udp idempotence
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- register: result
-- name: verify test create firewall rule udp idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "udp"
- - result.vultr_firewall_rule.start_port == 53
- - result.vultr_firewall_rule.cidr == "0.0.0.0/0"
-
-- name: test create firewall rule udp v6 in check mode
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- ip_version: v6
- register: result
- check_mode: true
-- name: verify test create firewall rule udp v6 in check mode
- assert:
- that:
- - result is changed
-
-- name: test create firewall rule udp v6
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- ip_version: v6
- register: result
-- name: verify test create firewall rule udp v6
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "udp"
- - result.vultr_firewall_rule.start_port == 53
- - result.vultr_firewall_rule.cidr == "::/0"
-
-- name: test create firewall rule udp v6 idempotence
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- ip_version: v6
- register: result
-- name: verify test create firewall rule udp v6 idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "udp"
- - result.vultr_firewall_rule.start_port == 53
- - result.vultr_firewall_rule.cidr == "::/0"
-
-- name: test create firewall rule port range in check mode
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- start_port: 8000
- end_port: 8080
- protocol: tcp
- cidr: 10.100.12.0/24
- register: result
- check_mode: true
-- name: verify test create firewall rule port range in check mode
- assert:
- that:
- - result is changed
-
-- name: test create firewall rule port range
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- start_port: 8000
- end_port: 8080
- protocol: tcp
- cidr: 10.100.12.0/24
- register: result
-- name: verify test create firewall rule port range
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "tcp"
- - result.vultr_firewall_rule.start_port == 8000
- - result.vultr_firewall_rule.end_port == 8080
- - result.vultr_firewall_rule.cidr == "10.100.12.0/24"
-
-- name: test create firewall rule port range idempotence
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- start_port: 8000
- end_port: 8080
- protocol: tcp
- cidr: 10.100.12.0/24
- register: result
-- name: test create firewall rule port range idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "tcp"
- - result.vultr_firewall_rule.start_port == 8000
- - result.vultr_firewall_rule.end_port == 8080
- - result.vultr_firewall_rule.cidr == "10.100.12.0/24"
-
-- name: test create firewall rule icmp in check mode
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- protocol: icmp
- register: result
- check_mode: true
-- name: test create firewall rule icmp in check mode
- assert:
- that:
- - result is changed
-
-- name: test create firewall rule icmp
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- protocol: icmp
- register: result
-- name: test create firewall rule icmp
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "icmp"
-
-- name: test create firewall rule icmp idempotence
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- protocol: icmp
- register: result
-- name: test create firewall rule icmp idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "icmp"
-
-- name: test remove firewall rule icmp in check mode
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- protocol: icmp
- state: absent
- register: result
- check_mode: true
-- name: test remove firewall rule icmp in check mode
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "icmp"
-
-- name: test remove firewall rule icmp
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- protocol: icmp
- state: absent
- register: result
-- name: test remove firewall rule icmp
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "icmp"
-
-- name: test remove firewall rule icmp idempotence
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- protocol: icmp
- state: absent
- register: result
-- name: test remove firewall rule icmp idempotence
- assert:
- that:
- - result is not changed
-
-- name: test remove firewall rule tcp in check mode
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- state: absent
- register: result
- check_mode: true
-- name: verify test remove firewall rule tcp in check mode
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "tcp"
- - result.vultr_firewall_rule.start_port == 53
- - result.vultr_firewall_rule.cidr == "0.0.0.0/0"
-
-- name: test remove firewall rule tcp
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- state: absent
- register: result
-- name: verify test remove firewall rule tcp
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "tcp"
- - result.vultr_firewall_rule.start_port == 53
- - result.vultr_firewall_rule.cidr == "0.0.0.0/0"
-
-- name: test remove firewall rule tcp idempotence
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- state: absent
- register: result
-- name: verify test remove firewall rule tcp idempotence
- assert:
- that:
- - result is not changed
-
-- name: test remove firewall rule udp v6 in check mode
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- ip_version: v6
- state: absent
- register: result
- check_mode: true
-- name: verify test remove firewall rule udp v6 in check mode
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "udp"
- - result.vultr_firewall_rule.start_port == 53
- - result.vultr_firewall_rule.cidr == "::/0"
-
-- name: test remove firewall rule udp v6
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- ip_version: v6
- state: absent
- register: result
-- name: verify test remove firewall rule udp v6
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "udp"
- - result.vultr_firewall_rule.start_port == 53
- - result.vultr_firewall_rule.cidr == "::/0"
-
-- name: test remove firewall rule udp v6 idempotence
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- port: 53
- protocol: udp
- ip_version: v6
- state: absent
- register: result
-- name: verify test remove firewall rule udp v6 idempotence
- assert:
- that:
- - result is not changed
-
-- name: test remove firewall rule port range in check mode
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- start_port: 8000
- end_port: 8080
- protocol: tcp
- cidr: 10.100.12.0/24
- state: absent
- register: result
- check_mode: true
-- name: verify test remove firewall rule port range in check mode
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "tcp"
- - result.vultr_firewall_rule.start_port == 8000
- - result.vultr_firewall_rule.end_port == 8080
- - result.vultr_firewall_rule.cidr == "10.100.12.0/24"
-
-- name: test remove firewall rule port range
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- start_port: 8000
- end_port: 8080
- protocol: tcp
- cidr: 10.100.12.0/24
- state: absent
- register: result
-- name: verify test remove firewall rule port range
- assert:
- that:
- - result is changed
- - result.vultr_firewall_rule.action == "accept"
- - result.vultr_firewall_rule.protocol == "tcp"
- - result.vultr_firewall_rule.start_port == 8000
- - result.vultr_firewall_rule.end_port == 8080
- - result.vultr_firewall_rule.cidr == "10.100.12.0/24"
-
-- name: test remove firewall rule port range idempotence
- vultr_firewall_rule:
- group: "{{ vultr_firewall_group_name }}"
- start_port: 8000
- end_port: 8080
- protocol: tcp
- cidr: 10.100.12.0/24
- state: absent
- register: result
-- name: verify test remove firewall rule port range idempotence
- assert:
- that:
- - result is not changed
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/defaults/main.yml
deleted file mode 100644
index a3d9e5926..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/defaults/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_network_name: "{{ vultr_resource_prefix }}_network"
-vultr_network_cidr: 192.168.42.0/24
-vultr_network_region: New Jersey
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/tasks/main.yml
deleted file mode 100644
index 7a7b0b1b2..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network/tasks/main.yml
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup
- vultr_network:
- name: "{{ vultr_network_name }}"
- state: absent
- register: result
-- name: verify setup
- assert:
- that:
- - result is success
-
-- name: test fail if missing name
- vultr_network:
- register: result
- ignore_errors: yes
-- name: verify test fail if missing name
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: name"'
-
-- name: test fail if missing params for state=present
- vultr_network:
- name: "{{ vultr_network_name }}"
- register: result
- ignore_errors: yes
-- name: verify fail if missing params for state=present
- assert:
- that:
- - result is failed
- - 'result.msg == "state is present but all of the following are missing: cidr, region"'
-
-- name: test create network in check mode
- vultr_network:
- name: "{{ vultr_network_name }}"
- cidr: "{{ vultr_network_cidr }}"
- region: "{{ vultr_network_region }}"
- register: result
- check_mode: yes
-- name: verify test create server in check mode
- assert:
- that:
- - result is changed
-
-- name: test create network
- vultr_network:
- name: "{{ vultr_network_name }}"
- cidr: "{{ vultr_network_cidr }}"
- region: "{{ vultr_network_region }}"
- register: result
-
-- name: verify test create network
- assert:
- that:
- - result is changed
- - result.vultr_network.name == "{{ vultr_network_name }}"
- - result.vultr_network.region == "{{ vultr_network_region }}"
- - result.vultr_network.v4_subnet == "{{ vultr_network_cidr.split('/')[0] }}"
- - result.vultr_network.v4_subnet_mask == 24
-
-- name: test create network idempotence
- vultr_network:
- name: "{{ vultr_network_name }}"
- cidr: "{{ vultr_network_cidr }}"
- region: "{{ vultr_network_region }}"
- register: result
-
-- name: verify test network idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_network.name == "{{ vultr_network_name }}"
- - result.vultr_network.region == "{{ vultr_network_region }}"
- - result.vultr_network.v4_subnet == "{{ vultr_network_cidr.split('/')[0] }}"
- - result.vultr_network.v4_subnet_mask == 24
-
-- name: test destroy network in check mode
- vultr_network:
- name: "{{ vultr_network_name }}"
- state: absent
- register: result
- check_mode: yes
-
-- name: verify test destroy network in check mode
- assert:
- that:
- - result is changed
- - result.vultr_network.name == "{{ vultr_network_name }}"
-
-- name: test destroy network volume
- vultr_network:
- name: "{{ vultr_network_name }}"
- state: absent
- register: result
-
-- name: verify test destroy an existing network
- assert:
- that:
- - result is changed
- - result.vultr_network.name == "{{ vultr_network_name }}"
-
-- name: test destroy an existing network idempotence
- vultr_network:
- name: "{{ vultr_network_name }}"
- state: absent
- register: result
-
-- name: verify test destroy an existing network idempotence
- assert:
- that:
- - result is not changed
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/defaults/main.yml
deleted file mode 100644
index 28e3e705b..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/defaults/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-vultr_resource_prefix: "vultr_test_prefix"
-vultr_network_name: "{{ vultr_resource_prefix }}_network"
-vultr_network_cidr: 192.168.42.0/24
-vultr_network_region: New Jersey
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/tasks/main.yml
deleted file mode 100644
index 90d45a08b..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_network_info/tasks/main.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test gather vultr network info - empty resources
- vultr_network_info:
-
-- name: Create the network
- vultr_network:
- name: '{{ vultr_network_name }}'
- cidr: '{{ vultr_network_cidr }}'
- region: '{{ vultr_network_region }}'
-
-- name: test gather vultr network info in check mode
- vultr_network_info:
- check_mode: yes
- register: result
-
-- name: verify test gather vultr network info in check mode
- assert:
- that:
- - result.vultr_network_info|selectattr('name','equalto','{{ vultr_network_name }}') | list | count == 1
-
-- name: test gather vultr network info
- vultr_network_info:
- register: result
-
-- name: verify test gather vultr network info
- assert:
- that:
- - result.vultr_network_info|selectattr('name','equalto','{{ vultr_network_name }}') | list | count == 1
-
-- name: Delete the script
- vultr_network:
- name: '{{ vultr_network_name }}'
- state: absent
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_os_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_os_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_os_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_os_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_os_info/tasks/main.yml
deleted file mode 100644
index a48133e4c..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_os_info/tasks/main.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# Copyright (c) 2019, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test get vultr os infos in check mode
- vultr_os_info:
- check_mode: yes
- register: result
-
-- name: verify test get vultr os infos in check mode
- assert:
- that:
- - result.vultr_os_info|selectattr('name','equalto', 'CentOS 7 x64') | list | count == 1
-
-- name: test get vultr os fact
- vultr_os_info:
- register: result
-
-- name: verify test get vultr os infos
- assert:
- that:
- - result.vultr_os_info|selectattr('name','equalto', 'CentOS 7 x64') | list | count == 1
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_baremetal_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_baremetal_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_baremetal_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_baremetal_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_baremetal_info/tasks/main.yml
deleted file mode 100644
index 372123bbf..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_baremetal_info/tasks/main.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# Copyright (c) 2020, Simon Bärlocher <s.baerlocher@sbaerlocher.ch>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test gather vultr plan baremetal info in check mode
- vultr_plan_baremetal_info:
- check_mode: yes
- register: result
-
-- name: verify test gather vultr plan baremetal info in check mode
- assert:
- that:
- - result.vultr_plan_baremetal_info|selectattr('name','equalto','65536 MB RAM,2x 240 GB SSD,5.00 TB BW') | list | count == 1
-
-- name: test gather vultr plan baremetal info
- vultr_plan_baremetal_info:
- register: result
-
-- name: verify test gather vultr plan baremetal info
- assert:
- that:
- - result.vultr_plan_baremetal_info|selectattr('name','equalto','65536 MB RAM,2x 240 GB SSD,5.00 TB BW') | list | count == 1
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_info/tasks/main.yml
deleted file mode 100644
index 6b3790325..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_plan_info/tasks/main.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test gather vultr plan info in check mode
- vultr_plan_info:
- check_mode: yes
- register: result
-
-- name: verify test gather vultr plan info in check mode
- assert:
- that:
- - result.vultr_plan_info|selectattr('name','equalto','16384 MB RAM,2x110 GB SSD,20.00 TB BW') | list | count == 1
-
-- name: test gather vultr plan info
- vultr_plan_info:
- register: result
-
-- name: verify test gather vultr plan info
- assert:
- that:
- - result.vultr_plan_info|selectattr('name','equalto','16384 MB RAM,2x110 GB SSD,20.00 TB BW') | list | count == 1
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_region_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_region_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_region_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_region_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_region_info/tasks/main.yml
deleted file mode 100644
index adf8a8a46..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_region_info/tasks/main.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test gather vultr region info in check mode
- vultr_region_info:
- check_mode: yes
- register: result
-
-- name: verify test gather vultr region info in check mode
- assert:
- that:
- - result.vultr_region_info|selectattr('name','equalto','Atlanta') | list | count == 1
-
-- name: test gather vultr region info
- vultr_region_info:
- register: result
-
-- name: verify test gather vultr region info
- assert:
- that:
- - result.vultr_region_info|selectattr('name','equalto','Atlanta') | list | count == 1
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/defaults/main.yml
deleted file mode 100644
index 2b6852956..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/defaults/main.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_server_name: "{{ vultr_resource_prefix }}_vm"
-vultr_server_ssh_keys:
-- name: key1
- key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAyWYItY+3w5b8PdGRoz0oY5mufqydW96naE+VM3JSvJFAUS08rAjQQpQ03ymoALeHQy6JVZbcgecxn6p0pAOINQdqufn4udPtOPCtMjNiPGpkSM9ah/6X5+kvyWMNrvlf+Ld4OOoszP5sAkgQzIbrFQAm41XknBUha0zkewZwfrVhain4pnDjV7wCcChId/Q/Gbi4xMtXkisznWcAJcueBs3EEZDKhJ5q0VeWSJEhYJDLFN1sOxF0AIUnMrOhfKQ/LjgREXPB6uCl899INUTXRNNjRpeMXyJ2wMMmOAbua2qEd1r13Bu1n+6A823Hzb33fyMXuqWnJwBJ4DCvMlGuEsfuOK+xk7DaBfLHbcM6fsPk0/4psTE6YLgC41remr6+u5ZWsY/faMtSnNPie8Z8Ov0DIYGdhbJjUXk1HomxRV9+ZfZ2Ob8iCwlaAQAyEUM6fs3Kxt8pBD8dx1HOkhsfBWPvuDr5y+kqE7H8/MuPDTc0QgH2pjUMpmw/XBwNDHshVEjrZvtICOjOLUJxcowLO1ivNYwPwowQxfisMy56LfYdjsOslBiqsrkAqvNGm1zu8wKHeqVN9w5l3yUELpvubfm9NKIvYcl6yWF36T0c5vE+g0DU/Jy4XpTj0hZG9QV2mRQcLJnd2pxQtJT7cPFtrn/+tgRxzjEtbDXummDV4sE= mail@renemoser.net"
-- name: key2
- key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoQ9S7V+CufAgwoehnf2TqsJ9LTsu8pUA3FgpS2mdVwcMcTs++8P5sQcXHLtDmNLpWN4k7NQgxaY1oXy5e25x/4VhXaJXWEt3luSw+Phv/PB2+aGLvqCUirsLTAD2r7ieMhd/pcVf/HlhNUQgnO1mupdbDyqZoGD/uCcJiYav8i/V7nJWJouHA8yq31XS2yqXp9m3VC7UZZHzUsVJA9Us5YqF0hKYeaGruIHR2bwoDF9ZFMss5t6/pzxMljU/ccYwvvRDdI7WX4o4+zLuZ6RWvsU6LGbbb0pQdB72tlV41fSefwFsk4JRdKbyV3Xjf25pV4IXOTcqhy+4JTB/jXxrF torwalds@github.com"
-
-vultr_server_plan_1: 1024 MB RAM,25 GB SSD,1.00 TB BW
-vultr_server_plan_2: 2048 MB RAM,55 GB SSD,2.00 TB BW
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/tasks/main.yml
deleted file mode 100644
index ac6a6f3f4..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server/tasks/main.yml
+++ /dev/null
@@ -1,551 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: absent
- register: result
-- name: verify setup
- assert:
- that:
- - result is success
-
-# Servers can only be destroyed 5 min after creation
-- name: wait for 5 min
- wait_for:
- when: result is changed
-
-- name: test fail if missing name
- vultr_server:
- register: result
- ignore_errors: yes
-- name: verify test fail if missing name
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: name"'
-
-- name: test fail if missing params for state=present
- vultr_server:
- name: "{{ vultr_server_name }}"
- register: result
- ignore_errors: yes
-- name: verify fail if missing params for state=present
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: os, plan, region"'
-
-- name: test fail if plan does not exist
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: does_not_exist
- region: Amsterdam
- register: result
- ignore_errors: yes
-- name: verify test fail if plan does not exist
- assert:
- that:
- - result is failed
- - 'result.msg == "Could not find plans with ID or name: does_not_exist"'
-
-- name: setup create ssh keys
- vultr_ssh_key:
- name: "{{ item.name }}"
- ssh_key: "{{ item.key }}"
- loop: "{{ vultr_server_ssh_keys }}"
-
-- name: test create server in check mode
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_1 }}"
- ssh_keys:
- - key1
- - key2
- region: Amsterdam
- state: started
- register: result
- check_mode: yes
-- name: verify test create server in check mode
- assert:
- that:
- - result is changed
-
-- name: test create server
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_1 }}"
- ssh_keys:
- - key1
- - key2
- region: Amsterdam
- state: started
- register: result
-- name: verify test create server
- assert:
- that:
- - result is changed
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_1
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.power_status == 'running'
-
-- name: test create server idempotence
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_1 }}"
- ssh_keys:
- - key1
- - key2
- region: Amsterdam
- state: started
- register: result
-- name: verify test create server idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_1
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test stop an existing server in check mode
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: stopped
- register: result
- check_mode: yes
-- name: verify test stop server in check mode
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test stop an existing server
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: stopped
- register: result
-- name: verify test stop an existing server
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'stopped'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test stop an existing server idempotence
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: stopped
- register: result
-- name: verify test stop an existing server idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_server.power_status == 'stopped'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test start an existing server in check mode
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: started
- register: result
- check_mode: yes
-- name: verify test start an existing server in check mode
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'stopped'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test start an existing server
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: started
- register: result
-- name: verify test start an existing server
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test start an existing server idempotence
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: started
- register: result
-- name: verify test start an existing server idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test update plan for server in check mode without force
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_2 }}"
- region: Amsterdam
- register: result
- check_mode: yes
-- name: verify test update plan for server in check mode without force
- assert:
- that:
- - result is not changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_1
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test update plan for server without force
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_2 }}"
- region: Amsterdam
- register: result
-- name: verify test update plan for server without force
- assert:
- that:
- - result is not changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_1
- - result.vultr_server.region == 'Amsterdam'
-
-- name: setup firewall group
- vultr_firewall_group:
- name: test_firewall_group
- register: result
-- name: verify test create firewall group
- assert:
- that:
- - result is success
-
-- name: test fail with unknown firewall group
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- region: Amsterdam
- firewall_group: does not exist
- tag: test_tag
- register: result
- ignore_errors: yes
- check_mode: yes
-- name: verify test fail with unknown firewall group
- assert:
- that:
- - result is failed
- - result.msg.startswith('Could not find')
-
-- name: test update tag, firewall group for server in check mode without force
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- region: Amsterdam
- firewall_group: test_firewall_group
- tag: test_tag
- register: result
- check_mode: yes
-- name: verify test update tag, firewall group for server in check mode without force
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_1
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.tag == ''
- - result.vultr_server.firewall_group != 'test_firewall_group'
-
-- name: test update tag, firewall group for server without force
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- region: Amsterdam
- firewall_group: test_firewall_group
- tag: test_tag
- register: result
-- name: verify test update tag, firewall group for server without force
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.tag == 'test_tag'
- - result.vultr_server.firewall_group == 'test_firewall_group'
-
-- name: test update tag, firewall group for server without force idempotence
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- region: Amsterdam
- firewall_group: test_firewall_group
- tag: test_tag
- register: result
-- name: verify test update tag, firewall group for server without force idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.tag == 'test_tag'
- - result.vultr_server.firewall_group == 'test_firewall_group'
-
-- name: test update server in check mode with force
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_2 }}"
- auto_backup_enabled: yes
- private_network_enabled: yes
- region: Amsterdam
- force: yes
- register: result
- check_mode: yes
-- name: verify test update server in check mode with force
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_1
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.auto_backup_enabled == false
- - result.vultr_server.internal_ip == ''
-
-- name: test update server with force
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_2 }}"
- auto_backup_enabled: yes
- private_network_enabled: yes
- region: Amsterdam
- force: yes
- register: result
-- name: verify test update server with force
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_2
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.auto_backup_enabled == true
- - result.vultr_server.internal_ip != ''
-
-- name: test update server idempotence with force
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_2 }}"
- auto_backup_enabled: yes
- private_network_enabled: yes
- region: Amsterdam
- force: yes
- register: result
-- name: verify test update server idempotence with force
- assert:
- that:
- - result is not changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_2
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.auto_backup_enabled == true
- - result.vultr_server.internal_ip != ''
-
-- name: test update server with IDs idempotence with force
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: "127"
- plan: "202"
- auto_backup_enabled: yes
- private_network_enabled: yes
- region: "7"
- force: yes
- register: result
-- name: verify test update server idempotence with force
- assert:
- that:
- - result is not changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_2
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.auto_backup_enabled == true
- - result.vultr_server.internal_ip != ''
-
-- name: test update server to stopped in check mode
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_2 }}"
- ipv6_enabled: yes
- region: Amsterdam
- state: stopped
- register: result
- check_mode: yes
-- name: verify test update server to stopped in check mode
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_2
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.v6_main_ip == ''
-
-- name: test update server to stopped
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_2 }}"
- ipv6_enabled: yes
- region: Amsterdam
- state: stopped
- register: result
-- name: verify test update server to stopped
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'stopped'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_2
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.v6_main_ip != ''
-
-- name: test update server to stopped idempotence
- vultr_server:
- name: "{{ vultr_server_name }}"
- os: CentOS 6 x64
- plan: "{{ vultr_server_plan_2 }}"
- ipv6_enabled: yes
- region: Amsterdam
- state: stopped
- register: result
-- name: verify test update server to stopped idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_server.power_status == 'stopped'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.plan == vultr_server_plan_2
- - result.vultr_server.region == 'Amsterdam'
- - result.vultr_server.v6_main_ip != ''
-
-- name: test restart an existing server in check mode
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: restarted
- register: result
- check_mode: yes
-- name: verify test restart an existing server in check mode
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'stopped'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test restart an existing server
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: restarted
- register: result
-- name: verify test restart an existing server
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test absent server in check mode
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: absent
- register: result
- check_mode: yes
-- name: verify test absent server in check mode
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
-
-# Servers can only be destroyed 5 min after creation
-- name: wait for 5 min
- wait_for:
-
-- name: test absent server
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: absent
- register: result
-- name: verify test absent server
- assert:
- that:
- - result is changed
- - result.vultr_server.power_status == 'running'
- - result.vultr_server.name == vultr_server_name
- - result.vultr_server.os == 'CentOS 6 x64'
- - result.vultr_server.region == 'Amsterdam'
-
-- name: test absent server idempotence
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: absent
- register: result
-- name: verify test absent server idempotence
- assert:
- that:
- - result is not changed
-
-- name: cleanup ssh keys
- vultr_ssh_key:
- name: "{{ item.name }}"
- ssh_key: "{{ item.key }}"
- state: absent
- loop: "{{ vultr_server_ssh_keys }}"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/defaults/main.yml
deleted file mode 100644
index 0be096a51..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/defaults/main.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# Copyright (c) 2020, Simon Bärlocher <s.baerlocher@sbaerlocher.ch>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-vultr_resource_prefix: 'vultr-test-prefix'
-vultr_server_baremetal_name: '{{ vultr_resource_prefix }}_baremetal'
-vultr_server_baremetal_ssh_keys:
- - name: key1
- key: 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAyWYItY+3w5b8PdGRoz0oY5mufqydW96naE+VM3JSvJFAUS08rAjQQpQ03ymoALeHQy6JVZbcgecxn6p0pAOINQdqufn4udPtOPCtMjNiPGpkSM9ah/6X5+kvyWMNrvlf+Ld4OOoszP5sAkgQzIbrFQAm41XknBUha0zkewZwfrVhain4pnDjV7wCcChId/Q/Gbi4xMtXkisznWcAJcueBs3EEZDKhJ5q0VeWSJEhYJDLFN1sOxF0AIUnMrOhfKQ/LjgREXPB6uCl899INUTXRNNjRpeMXyJ2wMMmOAbua2qEd1r13Bu1n+6A823Hzb33fyMXuqWnJwBJ4DCvMlGuEsfuOK+xk7DaBfLHbcM6fsPk0/4psTE6YLgC41remr6+u5ZWsY/faMtSnNPie8Z8Ov0DIYGdhbJjUXk1HomxRV9+ZfZ2Ob8iCwlaAQAyEUM6fs3Kxt8pBD8dx1HOkhsfBWPvuDr5y+kqE7H8/MuPDTc0QgH2pjUMpmw/XBwNDHshVEjrZvtICOjOLUJxcowLO1ivNYwPwowQxfisMy56LfYdjsOslBiqsrkAqvNGm1zu8wKHeqVN9w5l3yUELpvubfm9NKIvYcl6yWF36T0c5vE+g0DU/Jy4XpTj0hZG9QV2mRQcLJnd2pxQtJT7cPFtrn/+tgRxzjEtbDXummDV4sE= mail@renemoser.net'
- - name: key2
- key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoQ9S7V+CufAgwoehnf2TqsJ9LTsu8pUA3FgpS2mdVwcMcTs++8P5sQcXHLtDmNLpWN4k7NQgxaY1oXy5e25x/4VhXaJXWEt3luSw+Phv/PB2+aGLvqCUirsLTAD2r7ieMhd/pcVf/HlhNUQgnO1mupdbDyqZoGD/uCcJiYav8i/V7nJWJouHA8yq31XS2yqXp9m3VC7UZZHzUsVJA9Us5YqF0hKYeaGruIHR2bwoDF9ZFMss5t6/pzxMljU/ccYwvvRDdI7WX4o4+zLuZ6RWvsU6LGbbb0pQdB72tlV41fSefwFsk4JRdKbyV3Xjf25pV4IXOTcqhy+4JTB/jXxrF torwalds@github.com'
-
-vultr_server_baremetal_plan_1: 65536 MB RAM,2x 240 GB SSD,5.00 TB BW
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/tasks/main.yml
deleted file mode 100644
index f4dd752fe..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_baremetal/tasks/main.yml
+++ /dev/null
@@ -1,366 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: absent
- register: result
-- name: verify setup
- assert:
- that:
- - result is success
-
-# Servers can only be destroyed 5 min after creation
-- name: wait for 5 min
- wait_for:
- when: result is changed
-
-- name: test fail if missing name
- vultr_server_baremetal:
- register: result
- ignore_errors: yes
-- name: verify test fail if missing name
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: name"'
-
-- name: test fail if missing params for state=present
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- register: result
- ignore_errors: yes
-- name: verify fail if missing params for state=present
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: os, plan, region"'
-
-- name: test fail if plan does not exist
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- os: CentOS 6 x64
- plan: does_not_exist
- region: Amsterdam
- register: result
- ignore_errors: yes
-- name: verify test fail if plan does not exist
- assert:
- that:
- - result is failed
- - 'result.msg == "Could not find plans with ID or name: does_not_exist"'
-
-- name: setup create ssh keys
- vultr_ssh_key:
- name: '{{ item.name }}'
- ssh_key: '{{ item.key }}'
- loop: '{{ vultr_server_baremetal_ssh_keys }}'
-
-- name: test create server in check mode
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- os: CentOS 6 x64
- plan: '{{ vultr_server_baremetal_plan_1 }}'
- ssh_keys:
- - key1
- - key2
- region: Amsterdam
- state: started
- register: result
- check_mode: yes
-- name: verify test create server in check mode
- assert:
- that:
- - result is changed
-
-- name: test create server
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- os: CentOS 6 x64
- plan: '{{ vultr_server_baremetal_plan_1 }}'
- ssh_keys:
- - key1
- - key2
- region: Amsterdam
- state: started
- register: result
-- name: verify test create server
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.plan == vultr_server_baremetal_plan_1
- - result.vultr_server_baremetal.region == 'Amsterdam'
- - result.vultr_server_baremetal.power_status == 'running'
-
-- name: test create server idempotence
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- os: CentOS 6 x64
- plan: '{{ vultr_server_baremetal_plan_1 }}'
- ssh_keys:
- - key1
- - key2
- region: Amsterdam
- state: started
- register: result
-- name: verify test create server idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_server_baremetal.power_status == 'running'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.plan == vultr_server_baremetal_plan_1
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-- name: test stop an existing server in check mode
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: stopped
- register: result
- check_mode: yes
-- name: verify test stop server in check mode
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.power_status == 'running'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-- name: test stop an existing server
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: stopped
- register: result
-- name: verify test stop an existing server
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.power_status == 'stopped'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-- name: test stop an existing server idempotence
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: stopped
- register: result
-- name: verify test stop an existing server idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_server_baremetal.power_status == 'stopped'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-- name: test start an existing server in check mode
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: started
- register: result
- check_mode: yes
-- name: verify test start an existing server in check mode
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.power_status == 'stopped'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-- name: test start an existing server
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: started
- register: result
-- name: verify test start an existing server
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.power_status == 'running'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-- name: test start an existing server idempotence
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: started
- register: result
-- name: verify test start an existing server idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_server_baremetal.power_status == 'running'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-- name: setup firewall group
- vultr_firewall_group:
- name: test_firewall_group
- register: result
-- name: verify test create firewall group
- assert:
- that:
- - result is success
-
-- name: test fail with unknown firewall group
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- os: CentOS 6 x64
- region: Amsterdam
- firewall_group: does not exist
- tag: test_tag
- register: result
- ignore_errors: yes
- check_mode: yes
-- name: verify test fail with unknown firewall group
- assert:
- that:
- - result is failed
- - result.msg.startswith('Could not find')
-
-- name: test update tag, firewall group for server in check mode without force
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- os: CentOS 6 x64
- region: Amsterdam
- firewall_group: test_firewall_group
- tag: test_tag
- register: result
- check_mode: yes
-- name: verify test update tag, firewall group for server in check mode without force
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.power_status == 'running'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.plan == vultr_server_baremetal_plan_1
- - result.vultr_server_baremetal.region == 'Amsterdam'
- - result.vultr_server_baremetal.tag == ''
- - result.vultr_server_baremetal.firewall_group != 'test_firewall_group'
-
-- name: test update tag, firewall group for server without force
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- os: CentOS 6 x64
- region: Amsterdam
- firewall_group: test_firewall_group
- tag: test_tag
- register: result
-- name: verify test update tag, firewall group for server without force
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.power_status == 'running'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
- - result.vultr_server_baremetal.tag == 'test_tag'
- - result.vultr_server_baremetal.firewall_group == 'test_firewall_group'
-
-- name: test update tag, firewall group for server without force idempotence
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- os: CentOS 6 x64
- region: Amsterdam
- firewall_group: test_firewall_group
- tag: test_tag
- register: result
-- name: verify test update tag, firewall group for server without force idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_server_baremetal.power_status == 'running'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
- - result.vultr_server_baremetal.tag == 'test_tag'
- - result.vultr_server_baremetal.firewall_group == 'test_firewall_group'
-
-- name: test restart an existing server in check mode
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: restarted
- register: result
- check_mode: yes
-- name: verify test restart an existing server in check mode
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.power_status == 'stopped'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-- name: test restart an existing server
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: restarted
- register: result
-- name: verify test restart an existing server
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.power_status == 'running'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-- name: test absent server in check mode
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: absent
- register: result
- check_mode: yes
-- name: verify test absent server in check mode
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.power_status == 'running'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-# Servers can only be destroyed 5 min after creation
-- name: wait for 5 min
- wait_for:
-
-- name: test absent server
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: absent
- register: result
-- name: verify test absent server
- assert:
- that:
- - result is changed
- - result.vultr_server_baremetal.power_status == 'running'
- - result.vultr_server_baremetal.name == vultr_server_baremetal_name
- - result.vultr_server_baremetal.os == 'CentOS 6 x64'
- - result.vultr_server_baremetal.region == 'Amsterdam'
-
-- name: test absent server idempotence
- vultr_server_baremetal:
- name: '{{ vultr_server_baremetal_name }}'
- state: absent
- register: result
-- name: verify test absent server idempotence
- assert:
- that:
- - result is not changed
-
-- name: cleanup ssh keys
- vultr_ssh_key:
- name: '{{ item.name }}'
- ssh_key: '{{ item.key }}'
- state: absent
- loop: '{{ vultr_server_baremetal_ssh_keys }}'
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/defaults/main.yml
deleted file mode 100644
index 37134a1f3..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/defaults/main.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_server_name: "{{ vultr_resource_prefix }}_vm"
-vultr_server_os: CentOS 7 x64
-vultr_server_plan: 1024 MB RAM,25 GB SSD,1.00 TB BW
-vultr_server_region: Amsterdam
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/tasks/main.yml
deleted file mode 100644
index 83deb7691..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_server_info/tasks/main.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup ensure VM is absent
- vultr_server:
- name: "{{ vultr_server_name }}"
- state: absent
- register: result
-
-# Servers can only be destroyed 5 min after creation
-- name: wait for 5 min until VM is absent
- wait_for:
- when: result is changed
-
-- name: test gather vultr server info - empty resources
- vultr_server_info:
- register: result
-- name: verify test gather vultr server info - empty resources
- assert:
- that:
- - result.vultr_server_info | selectattr('name','equalto',vultr_server_name) | list | count == 0
-
-- name: setup firewall group
- vultr_firewall_group:
- name: test_vultr_server_info
-
-- name: setup create the server
- vultr_server:
- name: '{{ vultr_server_name }}'
- os: '{{ vultr_server_os }}'
- plan: '{{ vultr_server_plan }}'
- region: '{{ vultr_server_region }}'
- firewall_group: test_vultr_server_info
-
-- name: test gather vultr server info in check mode
- vultr_server_info:
- check_mode: yes
- register: result
-
-- name: verify test gather vultr server info in check mode
- assert:
- that:
- - result.vultr_server_info|selectattr('name','equalto',vultr_server_name) | list | count == 1
-
-- name: test gather vultr server info
- vultr_server_info:
- register: result
-
-- name: verify test gather vultr server info
- assert:
- that:
- - result.vultr_server_info|selectattr('name','equalto',vultr_server_name) | list | count == 1
-
-- name: Pause for 5 min before deleting the VM
- pause:
- minutes: 5
-
-- name: cleanup the server
- vultr_server:
- name: '{{ vultr_server_name }}'
- state: absent
-
-- name: cleanup firewall group
- vultr_firewall_group:
- name: test_vultr_server_info
- state: absent
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/defaults/main.yml
deleted file mode 100644
index 53cce5676..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/defaults/main.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_ssh_key_name: "{{ vultr_resource_prefix }}_ansible-ssh-key"
-vultr_ssh_key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAyWYItY+3w5b8PdGRoz0oY5mufqydW96naE+VM3JSvJFAUS08rAjQQpQ03ymoALeHQy6JVZbcgecxn6p0pAOINQdqufn4udPtOPCtMjNiPGpkSM9ah/6X5+kvyWMNrvlf+Ld4OOoszP5sAkgQzIbrFQAm41XknBUha0zkewZwfrVhain4pnDjV7wCcChId/Q/Gbi4xMtXkisznWcAJcueBs3EEZDKhJ5q0VeWSJEhYJDLFN1sOxF0AIUnMrOhfKQ/LjgREXPB6uCl899INUTXRNNjRpeMXyJ2wMMmOAbua2qEd1r13Bu1n+6A823Hzb33fyMXuqWnJwBJ4DCvMlGuEsfuOK+xk7DaBfLHbcM6fsPk0/4psTE6YLgC41remr6+u5ZWsY/faMtSnNPie8Z8Ov0DIYGdhbJjUXk1HomxRV9+ZfZ2Ob8iCwlaAQAyEUM6fs3Kxt8pBD8dx1HOkhsfBWPvuDr5y+kqE7H8/MuPDTc0QgH2pjUMpmw/XBwNDHshVEjrZvtICOjOLUJxcowLO1ivNYwPwowQxfisMy56LfYdjsOslBiqsrkAqvNGm1zu8wKHeqVN9w5l3yUELpvubfm9NKIvYcl6yWF36T0c5vE+g0DU/Jy4XpTj0hZG9QV2mRQcLJnd2pxQtJT7cPFtrn/+tgRxzjEtbDXummDV4sE= ansible@example.com"
-vultr_ssh_key2: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoQ9S7V+CufAgwoehnf2TqsJ9LTsu8pUA3FgpS2mdVwcMcTs++8P5sQcXHLtDmNLpWN4k7NQgxaY1oXy5e25x/4VhXaJXWEt3luSw+Phv/PB2+aGLvqCUirsLTAD2r7ieMhd/pcVf/HlhNUQgnO1mupdbDyqZoGD/uCcJiYav8i/V7nJWJouHA8yq31XS2yqXp9m3VC7UZZHzUsVJA9Us5YqF0hKYeaGruIHR2bwoDF9ZFMss5t6/pzxMljU/ccYwvvRDdI7WX4o4+zLuZ6RWvsU6LGbbb0pQdB72tlV41fSefwFsk4JRdKbyV3Xjf25pV4IXOTcqhy+4JTB/jXxrF torwalds@github.com"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/tasks/main.yml
deleted file mode 100644
index ce46970e0..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key/tasks/main.yml
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- state: absent
- register: result
-- name: verify setup
- assert:
- that:
- - result is success
-
-- name: test fail if missing name
- vultr_ssh_key:
- register: result
- ignore_errors: yes
-- name: verify test fail if missing name
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: name"'
-
-- name: test fail if missing params for state=present
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- register: result
- ignore_errors: yes
-- name: verify fail if missing params for state=present
- assert:
- that:
- - result is failed
- - 'result.msg == "state is present but all of the following are missing: ssh_key"'
-
-- name: test create ssh key in check mode
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- ssh_key: "{{ vultr_ssh_key }}"
- register: result
- check_mode: yes
-- name: verify test create ssh key in check mode
- assert:
- that:
- - result is changed
-
-- name: test create ssh key
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- ssh_key: "{{ vultr_ssh_key }}"
- register: result
-- name: verify test create ssh key
- assert:
- that:
- - result is changed
- - result.vultr_ssh_key.name == '{{ vultr_ssh_key_name }}'
- - result.vultr_ssh_key.ssh_key == '{{ vultr_ssh_key }}'
-
-- name: test create ssh key idempotence
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- ssh_key: "{{ vultr_ssh_key }}"
- register: result
-- name: verify test create ssh key idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_ssh_key.name == '{{ vultr_ssh_key_name }}'
- - result.vultr_ssh_key.ssh_key == '{{ vultr_ssh_key }}'
-
-- name: test update ssh key in check mode
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- ssh_key: "{{ vultr_ssh_key2 }}"
- register: result
- check_mode: yes
-- name: verify test update ssh key in check mode
- assert:
- that:
- - result is changed
- - result.vultr_ssh_key.name == '{{ vultr_ssh_key_name }}'
- - result.vultr_ssh_key.ssh_key == '{{ vultr_ssh_key }}'
-
-- name: test update ssh key
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- ssh_key: "{{ vultr_ssh_key2 }}"
- register: result
-- name: verify test update ssh key
- assert:
- that:
- - result is changed
- - result.vultr_ssh_key.name == '{{ vultr_ssh_key_name }}'
- - result.vultr_ssh_key.ssh_key == '{{ vultr_ssh_key2 }}'
-
-- name: test update ssh key idempotence
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- ssh_key: "{{ vultr_ssh_key2 }}"
- register: result
-- name: verify test update ssh key idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_ssh_key.name == '{{ vultr_ssh_key_name }}'
- - result.vultr_ssh_key.ssh_key == '{{ vultr_ssh_key2 }}'
-
-- name: test absent ssh key in check mode
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- state: absent
- register: result
- check_mode: yes
-- name: verify test absent ssh key in check mode
- assert:
- that:
- - result is changed
- - result.vultr_ssh_key.name == '{{ vultr_ssh_key_name }}'
- - result.vultr_ssh_key.ssh_key == '{{ vultr_ssh_key2 }}'
-
-- name: test absent ssh key
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- state: absent
- register: result
-- name: verify test absent ssh key
- assert:
- that:
- - result is changed
- - result.vultr_ssh_key.name == '{{ vultr_ssh_key_name }}'
- - result.vultr_ssh_key.ssh_key == '{{ vultr_ssh_key2 }}'
-
-- name: test absent ssh key idempotence
- vultr_ssh_key:
- name: "{{ vultr_ssh_key_name }}"
- state: absent
- register: result
-- name: verify test absent ssh key idempotence
- assert:
- that:
- - result is not changed
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/defaults/main.yml
deleted file mode 100644
index 63bda99f2..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/defaults/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-vultr_resource_prefix: "vultr_test_prefix"
-ssh_key_name: "{{ vultr_resource_prefix }}-sshkey"
-ssh_key_content: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ZFQv3MyjtL1BMpSA0o0gIkzLVVC711rthT29hBNeORdNowQ7FSvVWUdAbTq00U7Xzak1ANIYLJyn+0r7olsdG4XEiUR0dqgC99kbT/QhY5mLe5lpl7JUjW9ctn00hNmt+TswpatCKWPNwdeAJT2ERynZaqPobENgvIq7jfOFWQIVew7qrewtqwerqwrewUr2Cdq7Nb7U0XFXh3x1p0v0+MbL4tiJwPlMAGvFTKIMt+EaA+AsRIxiOo9CMk5ZuOl9pT8h5vNuEOcvS0qx4v44EAD2VOsCVCcrPNMcpuSzZP8dRTGU9wRREAWXngD0Zq9YJMH38VTxHiskoBw1NnPz ansibletest-{{ vultr_resource_prefix }}@sshkey
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/tasks/main.yml
deleted file mode 100644
index 6a44144b1..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_ssh_key_info/tasks/main.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# Copyright (c) 2019, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test get vultr ssh key info - empty resources
- vultr_ssh_key_info:
- register: result
-
-- name: verify test get vultr ssh key infos in check mode
- assert:
- that:
- - result.vultr_ssh_key_info|selectattr('name','equalto','{{ ssh_key_name }}') | list | count == 0
- - result.vultr_ssh_key_info|selectattr('ssh_key','equalto','{{ ssh_key_content }}') | list | count == 0
-
-- name: Upload an ssh key
- vultr_ssh_key:
- name: '{{ ssh_key_name }}'
- ssh_key: '{{ ssh_key_content }}'
-
-- name: test get vultr ssh key infos in check mode
- vultr_ssh_key_info:
- check_mode: yes
- register: result
-
-- name: verify test get vultr ssh key infos in check mode
- assert:
- that:
- - result.vultr_ssh_key_info|selectattr('name','equalto','{{ ssh_key_name }}') | list | count == 1
- - result.vultr_ssh_key_info|selectattr('ssh_key','equalto','{{ ssh_key_content }}') | list | count == 1
-
-- name: test get vultr ssh key info
- vultr_ssh_key_info:
- register: result
-
-- name: verify test get vultr ssh key infos
- assert:
- that:
- - result.vultr_ssh_key_info|selectattr('name','equalto','{{ ssh_key_name }}') | list | count == 1
- - result.vultr_ssh_key_info|selectattr('ssh_key','equalto','{{ ssh_key_content }}') | list | count == 1
-
-- name: Destroy the ssh key
- vultr_ssh_key:
- name: '{{ ssh_key_name }}'
- state: absent
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/defaults/main.yml
deleted file mode 100644
index 38b68a695..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/defaults/main.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_startup_script_name: "{{ vultr_resource_prefix }}_script"
-vultr_startup_script: "#!/bin/bash\necho Hello World > /root/hello"
-vultr_startup_script2: "#!/bin/bash\necho Hello to my World > /root/hello"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/tasks/main.yml
deleted file mode 100644
index 09929beb2..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script/tasks/main.yml
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: setup
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- state: absent
- register: result
-- name: verify setup
- assert:
- that:
- - result is success
-
-- name: test fail if missing name
- vultr_startup_script:
- register: result
- ignore_errors: yes
-- name: verify test fail if missing name
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: name"'
-
-- name: test fail if missing params for state=present
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- register: result
- ignore_errors: yes
-- name: verify fail if missing params for state=present
- assert:
- that:
- - result is failed
- - 'result.msg == "state is present but all of the following are missing: script"'
-
-- name: test create startup script in check mode
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- script: "{{ vultr_startup_script }}"
- register: result
- check_mode: yes
-- name: verify test create startup script in check mode
- assert:
- that:
- - result is changed
-
-- name: test create startup script
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- script: "{{ vultr_startup_script }}"
- register: result
-- name: verify test create startup script
- assert:
- that:
- - result is changed
- - result.vultr_startup_script.name == '{{ vultr_startup_script_name }}'
- - result.vultr_startup_script.script == '{{ vultr_startup_script }}'
-
-- name: test create startup script idempotence
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- script: "{{ vultr_startup_script }}"
- register: result
-- name: verify test create startup script idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_startup_script.name == '{{ vultr_startup_script_name }}'
- - result.vultr_startup_script.script == '{{ vultr_startup_script }}'
-
-- name: test update startup script in check mode
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- script: "{{ vultr_startup_script2 }}"
- register: result
- check_mode: yes
-- name: verify test update startup script in check mode
- assert:
- that:
- - result is changed
- - result.vultr_startup_script.name == '{{ vultr_startup_script_name }}'
- - result.vultr_startup_script.script == '{{ vultr_startup_script }}'
-
-- name: test update startup script
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- script: "{{ vultr_startup_script2 }}"
- register: result
-- name: verify test update startup script
- assert:
- that:
- - result is changed
- - result.vultr_startup_script.name == '{{ vultr_startup_script_name }}'
- - result.vultr_startup_script.script == '{{ vultr_startup_script2 }}'
-
-- name: test update startup script idempotence
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- script: "{{ vultr_startup_script2 }}"
- register: result
-- name: verify test update startup script idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_startup_script.name == '{{ vultr_startup_script_name }}'
- - result.vultr_startup_script.script == '{{ vultr_startup_script2 }}'
-
-- name: test absent startup script in check mode
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- state: absent
- register: result
- check_mode: yes
-- name: verify test absent startup script in check mode
- assert:
- that:
- - result is changed
- - result.vultr_startup_script.name == '{{ vultr_startup_script_name }}'
- - result.vultr_startup_script.script == '{{ vultr_startup_script2 }}'
-
-- name: test absent startup script
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- state: absent
- register: result
-- name: verify test absent startup script
- assert:
- that:
- - result is changed
- - result.vultr_startup_script.name == '{{ vultr_startup_script_name }}'
- - result.vultr_startup_script.script == '{{ vultr_startup_script2 }}'
-
-- name: test absent startup script idempotence
- vultr_startup_script:
- name: "{{ vultr_startup_script_name }}"
- state: absent
- register: result
-- name: verify test absent startup script idempotence
- assert:
- that:
- - result is not changed
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/defaults/main.yml
deleted file mode 100644
index 017cff1a3..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/defaults/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-vultr_resource_prefix: "vultr_test_prefix"
-startup_script_name: "{{ vultr_resource_prefix }}_script"
-startup_script_type: boot
-startup_script_content: "#!/bin/bash\necho Hello World > /root/hello"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/tasks/main.yml
deleted file mode 100644
index 158824383..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_startup_script_info/tasks/main.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: test gather vultr startup script info - empty resources
- vultr_startup_script_info:
-
-- name: Create the script
- vultr_startup_script:
- name: '{{ startup_script_name }}'
- script_type: '{{ startup_script_type }}'
- script: '{{ startup_script_content }}'
-
-- name: test gather vultr startup script info in check mode
- vultr_startup_script_info:
- check_mode: yes
- register: result
-
-- name: verify test gather vultr startup script info in check mode
- assert:
- that:
- - result.vultr_startup_script_info|selectattr('name','equalto','{{ startup_script_name }}') | list | count == 1
-
-- name: test gather vultr startup script info
- vultr_startup_script_info:
- register: result
-
-- name: verify test gather vultr startup script info
- assert:
- that:
- - result.vultr_startup_script_info|selectattr('name','equalto','{{ startup_script_name }}') | list | count == 1
-
-- name: Delete the script
- vultr_startup_script:
- name: '{{ startup_script_name }}'
- state: absent
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/defaults/main.yml
deleted file mode 100644
index 9050a68f7..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/defaults/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-vultr_resource_prefix: "vultr-test-prefix"
-vultr_user_name: "{{ vultr_resource_prefix }}_user"
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/tasks/main.yml
deleted file mode 100644
index 8c3684c11..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user/tasks/main.yml
+++ /dev/null
@@ -1,225 +0,0 @@
----
-# Copyright (c) 2018, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-- name: setup
- vultr_user:
- name: "{{ vultr_user_name }}"
- state: absent
- register: result
-- name: verify setup
- assert:
- that:
- - result is success
-
-- name: test fail if missing name
- vultr_user:
- register: result
- ignore_errors: yes
-- name: verify test fail if missing name
- assert:
- that:
- - result is failed
- - 'result.msg == "missing required arguments: name"'
-
-- name: test fail if missing params for state=present
- vultr_user:
- name: "{{ vultr_user_name }}"
- register: result
- ignore_errors: yes
-- name: verify fail if missing params for state=present
- assert:
- that:
- - result is failed
- - 'result.msg.startswith("state is present but all of the following are missing")'
-
-- name: test fail param not in choices
- vultr_user:
- name: "{{ vultr_user_name }}"
- email: john.doe@example.com
- password: s3cr3t
- acls:
- - bad
- - dns
- - manage_users
- register: result
- ignore_errors: yes
-- name: verify test fail if missing name
- assert:
- that:
- - result is failed
- - 'result.msg.startswith("value of acls must be one or more of")'
-
-- name: test create user in check mode
- vultr_user:
- name: "{{ vultr_user_name }}"
- email: john.doe@example.com
- password: s3cr3t
- acls:
- - upgrade
- - dns
- - manage_users
- register: result
- check_mode: yes
-- name: verify test create user in check mode
- assert:
- that:
- - result is changed
-
-- name: test create user
- vultr_user:
- name: "{{ vultr_user_name }}"
- email: john.doe@example.com
- password: s3cr3t
- acls:
- - upgrade
- - dns
- - manage_users
- register: result
-- name: verify test create user
- assert:
- that:
- - result is changed
- - result.vultr_user.name == '{{ vultr_user_name }}'
- - result.vultr_user.email == 'john.doe@example.com'
- - result.vultr_user.api_enabled == true
- - "'upgrade' in result.vultr_user.acls"
- - "'manage_users' in result.vultr_user.acls"
- - "'dns' in result.vultr_user.acls"
- - result.vultr_user.api_key is defined
-
-- name: test create user idempotence
- vultr_user:
- name: "{{ vultr_user_name }}"
- email: john.doe@example.com
- password: s3cr3t
- acls:
- - upgrade
- - dns
- - manage_users
- register: result
-- name: verify test create user idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_user.name == '{{ vultr_user_name }}'
- - result.vultr_user.email == 'john.doe@example.com'
- - result.vultr_user.api_enabled == true
- - "'upgrade' in result.vultr_user.acls"
- - "'manage_users' in result.vultr_user.acls"
- - "'dns' in result.vultr_user.acls"
- - result.vultr_user.api_key is not defined
-
-- name: test update user in check mode
- vultr_user:
- name: "{{ vultr_user_name }}"
- email: jimmy@example.com
- password: s3cr3t
- api_enabled: false
- acls:
- - manage_users
- - upgrade
- - support
- register: result
- check_mode: yes
-- name: verify test update user in check mode
- assert:
- that:
- - result is changed
- - result.vultr_user.name == '{{ vultr_user_name }}'
- - result.vultr_user.email == 'john.doe@example.com'
- - "'upgrade' in result.vultr_user.acls"
- - "'manage_users' in result.vultr_user.acls"
- - "'dns' in result.vultr_user.acls"
- - result.vultr_user.api_enabled == true
- - result.vultr_user.api_key is not defined
-
-- name: test update user
- vultr_user:
- name: "{{ vultr_user_name }}"
- email: jimmy@example.com
- password: s3cr3t
- api_enabled: false
- acls:
- - manage_users
- - upgrade
- - support
- register: result
-- name: verify test update user
- assert:
- that:
- - result is changed
- - result.vultr_user.name == '{{ vultr_user_name }}'
- - result.vultr_user.email == 'jimmy@example.com'
- - "'upgrade' in result.vultr_user.acls"
- - "'manage_users' in result.vultr_user.acls"
- - "'support' in result.vultr_user.acls"
- - result.vultr_user.api_enabled == false
- - result.vultr_user.api_key is not defined
-
-- name: test update user idempotence
- vultr_user:
- name: "{{ vultr_user_name }}"
- email: jimmy@example.com
- password: s3cr3t
- api_enabled: false
- acls:
- - manage_users
- - upgrade
- - support
- register: result
-- name: verify test update user idempotence
- assert:
- that:
- - result is not changed
- - result.vultr_user.name == '{{ vultr_user_name }}'
- - result.vultr_user.email == 'jimmy@example.com'
- - "'upgrade' in result.vultr_user.acls"
- - "'manage_users' in result.vultr_user.acls"
- - "'support' in result.vultr_user.acls"
- - result.vultr_user.api_enabled == false
- - result.vultr_user.api_key is not defined
-
-- name: test absent user in check mode
- vultr_user:
- name: "{{ vultr_user_name }}"
- state: absent
- register: result
- check_mode: yes
-- name: verify test absent user in check mode
- assert:
- that:
- - result is changed
- - result.vultr_user.name == '{{ vultr_user_name }}'
- - result.vultr_user.email == 'jimmy@example.com'
- - "'upgrade' in result.vultr_user.acls"
- - "'manage_users' in result.vultr_user.acls"
- - "'support' in result.vultr_user.acls"
- - result.vultr_user.api_enabled == false
- - result.vultr_user.api_key is not defined
-
-- name: test absent user
- vultr_user:
- name: "{{ vultr_user_name }}"
- state: absent
- register: result
-- name: verify test absent user
- assert:
- that:
- - result is changed
- - result.vultr_user.name == '{{ vultr_user_name }}'
- - result.vultr_user.email == 'jimmy@example.com'
- - "'upgrade' in result.vultr_user.acls"
- - "'manage_users' in result.vultr_user.acls"
- - "'support' in result.vultr_user.acls"
- - result.vultr_user.api_enabled == false
- - result.vultr_user.api_key is not defined
-
-- name: test absent user idempotence
- vultr_user:
- name: "{{ vultr_user_name }}"
- state: absent
- register: result
-- name: verify test absent user idempotence
- assert:
- that:
- - result is not changed
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/aliases b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/aliases
deleted file mode 100644
index bf469bb90..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/aliases
+++ /dev/null
@@ -1 +0,0 @@
-cloud/vultr
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/defaults/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/defaults/main.yml
deleted file mode 100644
index 5922f6fe2..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/defaults/main.yml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-vultr_resource_prefix: "vultr-test-prefix"
-user_name: "{{ vultr_resource_prefix }}_user"
-user_email: mytestuser-{{ vultr_resource_prefix }}@example.com
-user_password: "{{ vultr_resource_prefix }}aP4ssw0rd!"
-user_acls:
- - upgrade
- - dns
- - manage_users
- - subscriptions
diff --git a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/tasks/main.yml b/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/tasks/main.yml
deleted file mode 100644
index 164c22fc5..000000000
--- a/ansible_collections/ngine_io/vultr/tests/integration/targets/vultr_user_info/tasks/main.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
-# Copyright (c) 2019, René Moser <mail@renemoser.net>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
----
-- name: Create the user
- vultr_user:
- name: '{{ user_name }}'
- email: '{{ user_email }}'
- password: '{{ user_password }}'
- acls: '{{ user_acls }}'
-
-- name: test get vultr user info in check mode
- vultr_user_info:
- register: result
- check_mode: yes
-
-- name: verify test get vultr user info in check mode
- assert:
- that:
- - result.vultr_user_info|selectattr('name','equalto','{{ user_name }}') | list | count == 1
-
-- name: test get vultr user info
- vultr_user_info:
- register: result
-
-- name: verify test get vultr user info
- assert:
- that:
- - result.vultr_user_info|selectattr('name','equalto','{{ user_name }}') | list | count == 1
-
-- name: Delete the user
- vultr_user:
- name: '{{ user_name }}'
- state: absent
diff --git a/ansible_collections/ngine_io/vultr/tests/sanity/ignore-2.10.txt b/ansible_collections/ngine_io/vultr/tests/sanity/ignore-2.10.txt
deleted file mode 100644
index e69de29bb..000000000
--- a/ansible_collections/ngine_io/vultr/tests/sanity/ignore-2.10.txt
+++ /dev/null