summaryrefslogtreecommitdiffstats
path: root/ansible_collections/community/hrobot
diff options
context:
space:
mode:
Diffstat (limited to 'ansible_collections/community/hrobot')
-rw-r--r--ansible_collections/community/hrobot/.github/workflows/ansible-test.yml2
-rw-r--r--ansible_collections/community/hrobot/.github/workflows/docs-pr.yml1
-rw-r--r--ansible_collections/community/hrobot/.github/workflows/docs-push.yml1
-rw-r--r--ansible_collections/community/hrobot/CHANGELOG.md116
-rw-r--r--ansible_collections/community/hrobot/CHANGELOG.rst13
-rw-r--r--ansible_collections/community/hrobot/FILES.json53
-rw-r--r--ansible_collections/community/hrobot/MANIFEST.json4
-rw-r--r--ansible_collections/community/hrobot/README.md2
-rw-r--r--ansible_collections/community/hrobot/changelogs/changelog.yaml10
-rw-r--r--ansible_collections/community/hrobot/docs/docsite/config.yml7
-rw-r--r--ansible_collections/community/hrobot/plugins/inventory/robot.py2
-rw-r--r--ansible_collections/community/hrobot/plugins/plugin_utils/unsafe.py41
-rw-r--r--ansible_collections/community/hrobot/tests/sanity/ignore-2.18.txt1
-rw-r--r--ansible_collections/community/hrobot/tests/sanity/ignore-2.18.txt.license3
-rw-r--r--ansible_collections/community/hrobot/tests/unit/plugins/inventory/test_robot.py20
15 files changed, 203 insertions, 73 deletions
diff --git a/ansible_collections/community/hrobot/.github/workflows/ansible-test.yml b/ansible_collections/community/hrobot/.github/workflows/ansible-test.yml
index 1e66b7d29..6aadd1b4f 100644
--- a/ansible_collections/community/hrobot/.github/workflows/ansible-test.yml
+++ b/ansible_collections/community/hrobot/.github/workflows/ansible-test.yml
@@ -34,6 +34,7 @@ jobs:
- stable-2.14
- stable-2.15
- stable-2.16
+ - stable-2.17
- devel
# Ansible-test on various stable branches does not yet work well with cgroups v2.
# Since ubuntu-latest now uses Ubuntu 22.04, we need to fall back to the ubuntu-20.04
@@ -75,6 +76,7 @@ jobs:
- stable-2.14
- stable-2.15
- stable-2.16
+ - stable-2.17
- devel
steps:
diff --git a/ansible_collections/community/hrobot/.github/workflows/docs-pr.yml b/ansible_collections/community/hrobot/.github/workflows/docs-pr.yml
index c5d5c24b5..3d1b87a86 100644
--- a/ansible_collections/community/hrobot/.github/workflows/docs-pr.yml
+++ b/ansible_collections/community/hrobot/.github/workflows/docs-pr.yml
@@ -32,6 +32,7 @@ jobs:
documentation_home_url=https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/branch/main/
squash-hierarchy: true
render-file-line: '> * `$<status>` [$<path_tail>](https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/pr/${{ github.event.number }}/$<path_tail>)'
+ extra-collections: community.library_inventory_filtering_v1
publish-docs-gh-pages:
# for now we won't run this on forks
diff --git a/ansible_collections/community/hrobot/.github/workflows/docs-push.yml b/ansible_collections/community/hrobot/.github/workflows/docs-push.yml
index e1db3c2eb..783ff30e1 100644
--- a/ansible_collections/community/hrobot/.github/workflows/docs-push.yml
+++ b/ansible_collections/community/hrobot/.github/workflows/docs-push.yml
@@ -37,6 +37,7 @@ jobs:
init-extra-html-theme-options: |
documentation_home_url=https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/branch/main/
squash-hierarchy: true
+ extra-collections: community.library_inventory_filtering_v1
publish-docs-gh-pages:
# for now we won't run this on forks
diff --git a/ansible_collections/community/hrobot/CHANGELOG.md b/ansible_collections/community/hrobot/CHANGELOG.md
index d09d85be0..fec73109e 100644
--- a/ansible_collections/community/hrobot/CHANGELOG.md
+++ b/ansible_collections/community/hrobot/CHANGELOG.md
@@ -2,74 +2,90 @@
**Topics**
-- <a href="#v1-9-1">v1\.9\.1</a>
+- <a href="#v1-9-2">v1\.9\.2</a>
- <a href="#release-summary">Release Summary</a>
+ - <a href="#bugfixes">Bugfixes</a>
+- <a href="#v1-9-1">v1\.9\.1</a>
+ - <a href="#release-summary-1">Release Summary</a>
- <a href="#security-fixes">Security Fixes</a>
- <a href="#v1-9-0">v1\.9\.0</a>
- - <a href="#release-summary-1">Release Summary</a>
+ - <a href="#release-summary-2">Release Summary</a>
- <a href="#minor-changes">Minor Changes</a>
- <a href="#deprecated-features">Deprecated Features</a>
- <a href="#v1-8-2">v1\.8\.2</a>
- - <a href="#release-summary-2">Release Summary</a>
- - <a href="#bugfixes">Bugfixes</a>
-- <a href="#v1-8-1">v1\.8\.1</a>
- <a href="#release-summary-3">Release Summary</a>
+ - <a href="#bugfixes-1">Bugfixes</a>
+- <a href="#v1-8-1">v1\.8\.1</a>
+ - <a href="#release-summary-4">Release Summary</a>
- <a href="#known-issues">Known Issues</a>
- <a href="#v1-8-0">v1\.8\.0</a>
- - <a href="#release-summary-4">Release Summary</a>
+ - <a href="#release-summary-5">Release Summary</a>
- <a href="#major-changes">Major Changes</a>
- <a href="#minor-changes-1">Minor Changes</a>
- <a href="#v1-7-0">v1\.7\.0</a>
- - <a href="#release-summary-5">Release Summary</a>
+ - <a href="#release-summary-6">Release Summary</a>
- <a href="#new-modules">New Modules</a>
- <a href="#v1-6-0">v1\.6\.0</a>
- - <a href="#release-summary-6">Release Summary</a>
+ - <a href="#release-summary-7">Release Summary</a>
- <a href="#minor-changes-2">Minor Changes</a>
- <a href="#v1-5-2">v1\.5\.2</a>
- - <a href="#release-summary-7">Release Summary</a>
+ - <a href="#release-summary-8">Release Summary</a>
- <a href="#minor-changes-3">Minor Changes</a>
- <a href="#v1-5-1">v1\.5\.1</a>
- - <a href="#release-summary-8">Release Summary</a>
-- <a href="#v1-5-0">v1\.5\.0</a>
- <a href="#release-summary-9">Release Summary</a>
+- <a href="#v1-5-0">v1\.5\.0</a>
+ - <a href="#release-summary-10">Release Summary</a>
- <a href="#minor-changes-4">Minor Changes</a>
- <a href="#v1-4-0">v1\.4\.0</a>
- - <a href="#release-summary-10">Release Summary</a>
+ - <a href="#release-summary-11">Release Summary</a>
- <a href="#minor-changes-5">Minor Changes</a>
- <a href="#v1-3-1">v1\.3\.1</a>
- - <a href="#release-summary-11">Release Summary</a>
- - <a href="#bugfixes-1">Bugfixes</a>
-- <a href="#v1-3-0">v1\.3\.0</a>
- <a href="#release-summary-12">Release Summary</a>
- - <a href="#minor-changes-6">Minor Changes</a>
- <a href="#bugfixes-2">Bugfixes</a>
-- <a href="#v1-2-3">v1\.2\.3</a>
+- <a href="#v1-3-0">v1\.3\.0</a>
- <a href="#release-summary-13">Release Summary</a>
-- <a href="#v1-2-2">v1\.2\.2</a>
- - <a href="#release-summary-14">Release Summary</a>
+ - <a href="#minor-changes-6">Minor Changes</a>
- <a href="#bugfixes-3">Bugfixes</a>
-- <a href="#v1-2-1">v1\.2\.1</a>
+- <a href="#v1-2-3">v1\.2\.3</a>
+ - <a href="#release-summary-14">Release Summary</a>
+- <a href="#v1-2-2">v1\.2\.2</a>
- <a href="#release-summary-15">Release Summary</a>
+ - <a href="#bugfixes-4">Bugfixes</a>
+- <a href="#v1-2-1">v1\.2\.1</a>
+ - <a href="#release-summary-16">Release Summary</a>
- <a href="#minor-changes-7">Minor Changes</a>
- <a href="#v1-2-0">v1\.2\.0</a>
- - <a href="#release-summary-16">Release Summary</a>
+ - <a href="#release-summary-17">Release Summary</a>
- <a href="#minor-changes-8">Minor Changes</a>
- <a href="#new-modules-1">New Modules</a>
- <a href="#v1-1-1">v1\.1\.1</a>
- - <a href="#release-summary-17">Release Summary</a>
- - <a href="#bugfixes-4">Bugfixes</a>
-- <a href="#v1-1-0">v1\.1\.0</a>
- <a href="#release-summary-18">Release Summary</a>
+ - <a href="#bugfixes-5">Bugfixes</a>
+- <a href="#v1-1-0">v1\.1\.0</a>
+ - <a href="#release-summary-19">Release Summary</a>
- <a href="#new-plugins">New Plugins</a>
- <a href="#inventory">Inventory</a>
- <a href="#v1-0-0">v1\.0\.0</a>
- - <a href="#release-summary-19">Release Summary</a>
+ - <a href="#release-summary-20">Release Summary</a>
- <a href="#breaking-changes--porting-guide">Breaking Changes / Porting Guide</a>
+<a id="v1-9-2"></a>
+## v1\.9\.2
+
+<a id="release-summary"></a>
+### Release Summary
+
+Bugfix release\.
+
+<a id="bugfixes"></a>
+### Bugfixes
+
+* inventory plugins \- add unsafe wrapper to avoid marking strings that do not contain <code>\{</code> or <code>\}</code> as unsafe\, to work around a bug in AWX \([https\://github\.com/ansible\-collections/community\.hrobot/pull/102](https\://github\.com/ansible\-collections/community\.hrobot/pull/102)\)\.
+
<a id="v1-9-1"></a>
## v1\.9\.1
-<a id="release-summary"></a>
+<a id="release-summary-1"></a>
### Release Summary
Bugfix release\.
@@ -82,7 +98,7 @@ Bugfix release\.
<a id="v1-9-0"></a>
## v1\.9\.0
-<a id="release-summary-1"></a>
+<a id="release-summary-2"></a>
### Release Summary
Feature and maintenance release\.
@@ -100,12 +116,12 @@ Feature and maintenance release\.
<a id="v1-8-2"></a>
## v1\.8\.2
-<a id="release-summary-2"></a>
+<a id="release-summary-3"></a>
### Release Summary
Maintenance release with updated documentation\.
-<a id="bugfixes"></a>
+<a id="bugfixes-1"></a>
### Bugfixes
* Show more information \(if available\) from error messages \([https\://github\.com/ansible\-collections/community\.hrobot/pull/89](https\://github\.com/ansible\-collections/community\.hrobot/pull/89)\)\.
@@ -113,7 +129,7 @@ Maintenance release with updated documentation\.
<a id="v1-8-1"></a>
## v1\.8\.1
-<a id="release-summary-3"></a>
+<a id="release-summary-4"></a>
### Release Summary
Maintenance release with updated documentation\.
@@ -134,7 +150,7 @@ for the rendered HTML version of the documentation of the latest release\.
<a id="v1-8-0"></a>
## v1\.8\.0
-<a id="release-summary-4"></a>
+<a id="release-summary-5"></a>
### Release Summary
Feature release for the Hetzner firewall changes\.
@@ -153,7 +169,7 @@ Feature release for the Hetzner firewall changes\.
<a id="v1-7-0"></a>
## v1\.7\.0
-<a id="release-summary-5"></a>
+<a id="release-summary-6"></a>
### Release Summary
Feature release\.
@@ -166,7 +182,7 @@ Feature release\.
<a id="v1-6-0"></a>
## v1\.6\.0
-<a id="release-summary-6"></a>
+<a id="release-summary-7"></a>
### Release Summary
Feature release with improved documentation\.
@@ -179,7 +195,7 @@ Feature release with improved documentation\.
<a id="v1-5-2"></a>
## v1\.5\.2
-<a id="release-summary-7"></a>
+<a id="release-summary-8"></a>
### Release Summary
Maintenance release with a documentation improvement\.
@@ -192,7 +208,7 @@ Maintenance release with a documentation improvement\.
<a id="v1-5-1"></a>
## v1\.5\.1
-<a id="release-summary-8"></a>
+<a id="release-summary-9"></a>
### Release Summary
Maintenance release with small documentation fixes\.
@@ -200,7 +216,7 @@ Maintenance release with small documentation fixes\.
<a id="v1-5-0"></a>
## v1\.5\.0
-<a id="release-summary-9"></a>
+<a id="release-summary-10"></a>
### Release Summary
Maintenance release changing the way licenses are declared\. No functional changes\.
@@ -213,7 +229,7 @@ Maintenance release changing the way licenses are declared\. No functional chang
<a id="v1-4-0"></a>
## v1\.4\.0
-<a id="release-summary-10"></a>
+<a id="release-summary-11"></a>
### Release Summary
Feature release\.
@@ -226,12 +242,12 @@ Feature release\.
<a id="v1-3-1"></a>
## v1\.3\.1
-<a id="release-summary-11"></a>
+<a id="release-summary-12"></a>
### Release Summary
Maintenance release\.
-<a id="bugfixes-1"></a>
+<a id="bugfixes-2"></a>
### Bugfixes
* Include <code>simplified\_bsd\.txt</code> license file for the <code>robot</code> and <code>failover</code> module utils\.
@@ -239,7 +255,7 @@ Maintenance release\.
<a id="v1-3-0"></a>
## v1\.3\.0
-<a id="release-summary-12"></a>
+<a id="release-summary-13"></a>
### Release Summary
Feature and bugfix release\.
@@ -249,7 +265,7 @@ Feature and bugfix release\.
* Prepare collection for inclusion in an Execution Environment by declaring its dependencies \([https\://github\.com/ansible\-collections/community\.hrobot/pull/45](https\://github\.com/ansible\-collections/community\.hrobot/pull/45)\)\.
-<a id="bugfixes-2"></a>
+<a id="bugfixes-3"></a>
### Bugfixes
* robot inventory plugin \- do not crash if a server neither has name or primary IP set\. Instead\, fall back to using the server\'s number as the name\. This can happen if unnamed rack reservations show up in your server list \([https\://github\.com/ansible\-collections/community\.hrobot/issues/40](https\://github\.com/ansible\-collections/community\.hrobot/issues/40)\, [https\://github\.com/ansible\-collections/community\.hrobot/pull/47](https\://github\.com/ansible\-collections/community\.hrobot/pull/47)\)\.
@@ -257,7 +273,7 @@ Feature and bugfix release\.
<a id="v1-2-3"></a>
## v1\.2\.3
-<a id="release-summary-13"></a>
+<a id="release-summary-14"></a>
### Release Summary
Docs update release\.
@@ -265,12 +281,12 @@ Docs update release\.
<a id="v1-2-2"></a>
## v1\.2\.2
-<a id="release-summary-14"></a>
+<a id="release-summary-15"></a>
### Release Summary
Bugfix release\.
-<a id="bugfixes-3"></a>
+<a id="bugfixes-4"></a>
### Bugfixes
* boot \- fix incorrect handling of SSH authorized keys \([https\://github\.com/ansible\-collections/community\.hrobot/issues/32](https\://github\.com/ansible\-collections/community\.hrobot/issues/32)\, [https\://github\.com/ansible\-collections/community\.hrobot/pull/33](https\://github\.com/ansible\-collections/community\.hrobot/pull/33)\)\.
@@ -278,7 +294,7 @@ Bugfix release\.
<a id="v1-2-1"></a>
## v1\.2\.1
-<a id="release-summary-15"></a>
+<a id="release-summary-16"></a>
### Release Summary
Maintenance release\.
@@ -291,7 +307,7 @@ Maintenance release\.
<a id="v1-2-0"></a>
## v1\.2\.0
-<a id="release-summary-16"></a>
+<a id="release-summary-17"></a>
### Release Summary
Feature release with multiple new modules\.
@@ -318,12 +334,12 @@ Feature release with multiple new modules\.
<a id="v1-1-1"></a>
## v1\.1\.1
-<a id="release-summary-17"></a>
+<a id="release-summary-18"></a>
### Release Summary
Bugfix release which reduces the number of HTTPS queries for the modules and plugins\.
-<a id="bugfixes-4"></a>
+<a id="bugfixes-5"></a>
### Bugfixes
* robot \- force HTTP basic authentication to reduce number of HTTPS requests \([https\://github\.com/ansible\-collections/community\.hrobot/pull/9](https\://github\.com/ansible\-collections/community\.hrobot/pull/9)\)\.
@@ -331,7 +347,7 @@ Bugfix release which reduces the number of HTTPS queries for the modules and plu
<a id="v1-1-0"></a>
## v1\.1\.0
-<a id="release-summary-18"></a>
+<a id="release-summary-19"></a>
### Release Summary
Release with a new inventory plugin\.
@@ -347,7 +363,7 @@ Release with a new inventory plugin\.
<a id="v1-0-0"></a>
## v1\.0\.0
-<a id="release-summary-19"></a>
+<a id="release-summary-20"></a>
### Release Summary
The <code>community\.hrobot</code> continues the work on the Hetzner Robot modules from their state in <code>community\.general</code> 1\.2\.0\. The changes listed here are thus relative to the modules <code>community\.general\.hetzner\_\*</code>\.
diff --git a/ansible_collections/community/hrobot/CHANGELOG.rst b/ansible_collections/community/hrobot/CHANGELOG.rst
index 847d3dbda..fdb9c4a23 100644
--- a/ansible_collections/community/hrobot/CHANGELOG.rst
+++ b/ansible_collections/community/hrobot/CHANGELOG.rst
@@ -4,6 +4,19 @@ Community Hetzner Robot Collection Release Notes
.. contents:: Topics
+v1.9.2
+======
+
+Release Summary
+---------------
+
+Bugfix release.
+
+Bugfixes
+--------
+
+- inventory plugins - add unsafe wrapper to avoid marking strings that do not contain ``{`` or ``}`` as unsafe, to work around a bug in AWX (https://github.com/ansible-collections/community.hrobot/pull/102).
+
v1.9.1
======
diff --git a/ansible_collections/community/hrobot/FILES.json b/ansible_collections/community/hrobot/FILES.json
index 54c28f1e6..e5964a9b0 100644
--- a/ansible_collections/community/hrobot/FILES.json
+++ b/ansible_collections/community/hrobot/FILES.json
@@ -25,21 +25,21 @@
"name": ".github/workflows/ansible-test.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b221558d1b9e91f2f1b3087eca7455efea6016a313388315d94c748a736f6d0c",
+ "chksum_sha256": "6745e283a9f1578108ad5f14efed6558cdfb1a25c5e04426836b343baa7f1ccc",
"format": 1
},
{
"name": ".github/workflows/docs-pr.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "369ffbe6357397daf6ef60448f249fc74a2ccd0c023bb37e956f29f1107087a0",
+ "chksum_sha256": "7d4d4e79b974e499d22506e1dae74806636da815166fcd615d0a0d728290370a",
"format": 1
},
{
"name": ".github/workflows/docs-push.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a37437b4ac5178def5765173891f1cc0b5562f833d0fabfe8f2dca166cdae6b4",
+ "chksum_sha256": "1404c05e77bda38b2061314876ed1d9f7e426b281d69f7b588d52b83b740f46e",
"format": 1
},
{
@@ -137,7 +137,7 @@
"name": "changelogs/changelog.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7bb1dd839047930188a470f49ab846872b8b5fed15a0ad79f2a4f6badc7ca08f",
+ "chksum_sha256": "e941d53c423339dae173424865a5f4e2c892aa52818bebd6999d2444ff2188a3",
"format": 1
},
{
@@ -169,6 +169,13 @@
"format": 1
},
{
+ "name": "docs/docsite/config.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0c5ec9ff76cf4db33b5d3f771419ef50d448e5d510cb7a98fc07dd9ecee69c4e",
+ "format": 1
+ },
+ {
"name": "docs/docsite/links.yml",
"ftype": "file",
"chksum_type": "sha256",
@@ -235,7 +242,7 @@
"name": "plugins/inventory/robot.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "08386e031100da8e3ae8d8a76fdf511b71ebce6d5b9648dc24f32784ee497fda",
+ "chksum_sha256": "9ebb90b3fa1ce6a294b1d56b7d943e86ada342b9e288bdd416bde2e39e9989db",
"format": 1
},
{
@@ -351,6 +358,20 @@
"format": 1
},
{
+ "name": "plugins/plugin_utils",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "plugins/plugin_utils/unsafe.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "93ccc2e18634405c7ff21a91a1df4f17261ac24b0f41bf3c46dbec2f254538c3",
+ "format": 1
+ },
+ {
"name": "tests",
"ftype": "dir",
"chksum_type": null,
@@ -610,6 +631,20 @@
"format": 1
},
{
+ "name": "tests/sanity/ignore-2.18.txt",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5264853edb2c6ff138f5496111c1e758a3a54b61e82d96c0072cb9429fb31c6e",
+ "format": 1
+ },
+ {
+ "name": "tests/sanity/ignore-2.18.txt.license",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6eb915239f9f35407fa68fdc41ed6522f1fdcce11badbdcd6057548023179ac1",
+ "format": 1
+ },
+ {
"name": "tests/sanity/ignore-2.9.txt",
"ftype": "file",
"chksum_type": "sha256",
@@ -648,7 +683,7 @@
"name": "tests/unit/plugins/inventory/test_robot.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "673ffae43e3a3584719643a42bbdd33321b2b8331629a9d069793c3925d21c35",
+ "chksum_sha256": "e77768bf19cc0b1743641419d4b0360b6725b8dbb4e79d2ecacfac69d0886db9",
"format": 1
},
{
@@ -788,7 +823,7 @@
"name": "CHANGELOG.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2c4facb0c77d486fd61f1ea78cd2bee7c6cf833fc4dd328b57a9a440efe43db3",
+ "chksum_sha256": "ec9612359cac38411b264cb53d67607a383a08d1a2bffc3ff84cdb1d9ad1de4c",
"format": 1
},
{
@@ -802,7 +837,7 @@
"name": "CHANGELOG.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ca10d6a2a30e1165b9325897d7c6335ff8b3a50859742e2e4333070df0e6c38f",
+ "chksum_sha256": "84b7a7e9f7b8280abe9151db53d4fc3235b37db19686030e8d8fd000513e41ad",
"format": 1
},
{
@@ -823,7 +858,7 @@
"name": "README.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b26ea8090f24cde8afb282f7779abf6ce363edbf65068631c38984c5ed51ba70",
+ "chksum_sha256": "df4f5e5e0c88eb6caf14a6b2d3916a5849ac18a2ee6c748d0276d1788d145911",
"format": 1
},
{
diff --git a/ansible_collections/community/hrobot/MANIFEST.json b/ansible_collections/community/hrobot/MANIFEST.json
index 5fd6295d8..1ac2e2da3 100644
--- a/ansible_collections/community/hrobot/MANIFEST.json
+++ b/ansible_collections/community/hrobot/MANIFEST.json
@@ -2,7 +2,7 @@
"collection_info": {
"namespace": "community",
"name": "hrobot",
- "version": "1.9.1",
+ "version": "1.9.2",
"authors": [
"Felix Fontein (github.com/felixfontein)"
],
@@ -30,7 +30,7 @@
"name": "FILES.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cada2fa56571e4857ace197d0dd1c09e665fdd718cea048c0327ba8ef3447245",
+ "chksum_sha256": "a5c77f86ec2889eb57623d0ccd7ffbae9635537c46dc4539324e8da92b7ddf27",
"format": 1
},
"format": 1
diff --git a/ansible_collections/community/hrobot/README.md b/ansible_collections/community/hrobot/README.md
index 44ee9ddcd..bdc481de9 100644
--- a/ansible_collections/community/hrobot/README.md
+++ b/ansible_collections/community/hrobot/README.md
@@ -15,7 +15,7 @@ Please note that this collection does **not** support Windows targets.
## Tested with Ansible
-Tested with the current Ansible 2.9, ansible-base 2.10, ansible-core 2.11, ansible-core 2.12, ansible-core 2.13, ansible-core 2.14, ansible-core 2.15, and ansible-core 2.16 releases and the current development version of ansible-core. Ansible versions before 2.9.10 are not supported.
+Tested with the current Ansible 2.9, ansible-base 2.10, ansible-core 2.11, ansible-core 2.12, ansible-core 2.13, ansible-core 2.14, ansible-core 2.15, ansible-core 2.16, and ansible-core 2.17 releases and the current development version of ansible-core. Ansible versions before 2.9.10 are not supported.
## External requirements
diff --git a/ansible_collections/community/hrobot/changelogs/changelog.yaml b/ansible_collections/community/hrobot/changelogs/changelog.yaml
index ff49e627a..eca36fc8f 100644
--- a/ansible_collections/community/hrobot/changelogs/changelog.yaml
+++ b/ansible_collections/community/hrobot/changelogs/changelog.yaml
@@ -280,3 +280,13 @@ releases:
- 1.9.1.yml
- inventory-rce.yml
release_date: '2024-03-16'
+ 1.9.2:
+ changes:
+ bugfixes:
+ - inventory plugins - add unsafe wrapper to avoid marking strings that do not
+ contain ``{`` or ``}`` as unsafe, to work around a bug in AWX (https://github.com/ansible-collections/community.hrobot/pull/102).
+ release_summary: Bugfix release.
+ fragments:
+ - 1.9.2.yml
+ - 102-unsafe.yml
+ release_date: '2024-04-16'
diff --git a/ansible_collections/community/hrobot/docs/docsite/config.yml b/ansible_collections/community/hrobot/docs/docsite/config.yml
new file mode 100644
index 000000000..1d6cf8554
--- /dev/null
+++ b/ansible_collections/community/hrobot/docs/docsite/config.yml
@@ -0,0 +1,7 @@
+---
+# Copyright (c) Ansible Project
+# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+changelog:
+ write_changelog: true
diff --git a/ansible_collections/community/hrobot/plugins/inventory/robot.py b/ansible_collections/community/hrobot/plugins/inventory/robot.py
index 19a2f1aa4..409c90992 100644
--- a/ansible_collections/community/hrobot/plugins/inventory/robot.py
+++ b/ansible_collections/community/hrobot/plugins/inventory/robot.py
@@ -85,13 +85,13 @@ from ansible.errors import AnsibleError
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable, Cacheable
from ansible.template import Templar
from ansible.utils.display import Display
-from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.hrobot.plugins.module_utils.robot import (
BASE_URL,
PluginException,
plugin_open_url_json,
)
+from ansible_collections.community.hrobot.plugins.plugin_utils.unsafe import make_unsafe
display = Display()
diff --git a/ansible_collections/community/hrobot/plugins/plugin_utils/unsafe.py b/ansible_collections/community/hrobot/plugins/plugin_utils/unsafe.py
new file mode 100644
index 000000000..1eb61bea0
--- /dev/null
+++ b/ansible_collections/community/hrobot/plugins/plugin_utils/unsafe.py
@@ -0,0 +1,41 @@
+# Copyright (c) 2023, Felix Fontein <felix@fontein.de>
+# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import re
+
+from ansible.module_utils.six import binary_type, text_type
+from ansible.module_utils.common._collections_compat import Mapping, Set
+from ansible.module_utils.common.collections import is_sequence
+from ansible.utils.unsafe_proxy import (
+ AnsibleUnsafe,
+ wrap_var as _make_unsafe,
+)
+
+_RE_TEMPLATE_CHARS = re.compile(u'[{}]')
+_RE_TEMPLATE_CHARS_BYTES = re.compile(b'[{}]')
+
+
+def make_unsafe(value):
+ if value is None or isinstance(value, AnsibleUnsafe):
+ return value
+
+ if isinstance(value, Mapping):
+ return dict((make_unsafe(key), make_unsafe(val)) for key, val in value.items())
+ elif isinstance(value, Set):
+ return set(make_unsafe(elt) for elt in value)
+ elif is_sequence(value):
+ return type(value)(make_unsafe(elt) for elt in value)
+ elif isinstance(value, binary_type):
+ if _RE_TEMPLATE_CHARS_BYTES.search(value):
+ value = _make_unsafe(value)
+ return value
+ elif isinstance(value, text_type):
+ if _RE_TEMPLATE_CHARS.search(value):
+ value = _make_unsafe(value)
+ return value
+
+ return value
diff --git a/ansible_collections/community/hrobot/tests/sanity/ignore-2.18.txt b/ansible_collections/community/hrobot/tests/sanity/ignore-2.18.txt
new file mode 100644
index 000000000..0d9329fad
--- /dev/null
+++ b/ansible_collections/community/hrobot/tests/sanity/ignore-2.18.txt
@@ -0,0 +1 @@
+tests/ee/roles/smoke/library/smoke_ipaddress.py shebang
diff --git a/ansible_collections/community/hrobot/tests/sanity/ignore-2.18.txt.license b/ansible_collections/community/hrobot/tests/sanity/ignore-2.18.txt.license
new file mode 100644
index 000000000..edff8c768
--- /dev/null
+++ b/ansible_collections/community/hrobot/tests/sanity/ignore-2.18.txt.license
@@ -0,0 +1,3 @@
+GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
+SPDX-License-Identifier: GPL-3.0-or-later
+SPDX-FileCopyrightText: Ansible Project
diff --git a/ansible_collections/community/hrobot/tests/unit/plugins/inventory/test_robot.py b/ansible_collections/community/hrobot/tests/unit/plugins/inventory/test_robot.py
index d5514aee5..c10524f7e 100644
--- a/ansible_collections/community/hrobot/tests/unit/plugins/inventory/test_robot.py
+++ b/ansible_collections/community/hrobot/tests/unit/plugins/inventory/test_robot.py
@@ -368,14 +368,14 @@ def test_unsafe(inventory, mocker):
.result_json([
{
'server': {
- 'server_ip': '1.2.3.4',
+ 'server_ip': '1.2.{3.4',
'dc': 'abc',
},
},
{
'server': {
'server_ip': '1.2.3.5',
- 'server_name': 'foo',
+ 'server_name': 'fo{o',
'dc': 'EVALU{{ "" }}ATED',
},
},
@@ -389,27 +389,27 @@ def test_unsafe(inventory, mocker):
open_url.assert_is_done()
- host_1 = inventory.inventory.get_host('1.2.3.4')
- host_2 = inventory.inventory.get_host('foo')
+ host_1 = inventory.inventory.get_host('1.2.{3.4')
+ host_2 = inventory.inventory.get_host('fo{o')
host_1_vars = host_1.get_vars()
host_2_vars = host_2.get_vars()
- assert host_1_vars['ansible_host'] == '1.2.3.4'
- assert host_1_vars['hrobot_server_ip'] == '1.2.3.4'
+ assert host_1_vars['ansible_host'] == '1.2.{3.4'
+ assert host_1_vars['hrobot_server_ip'] == '1.2.{3.4'
assert host_1_vars['hrobot_dc'] == 'abc'
assert host_2_vars['ansible_host'] == '1.2.3.5'
assert host_2_vars['hrobot_server_ip'] == '1.2.3.5'
- assert host_2_vars['hrobot_server_name'] == 'foo'
+ assert host_2_vars['hrobot_server_name'] == 'fo{o'
assert host_2_vars['hrobot_dc'] == 'EVALU{{ "" }}ATED'
# Make sure everything is unsafe
assert isinstance(host_1_vars['ansible_host'], AnsibleUnsafe)
assert isinstance(host_1_vars['hrobot_server_ip'], AnsibleUnsafe)
- assert isinstance(host_1_vars['hrobot_dc'], AnsibleUnsafe)
+ assert not isinstance(host_1_vars['hrobot_dc'], AnsibleUnsafe)
- assert isinstance(host_2_vars['ansible_host'], AnsibleUnsafe)
- assert isinstance(host_2_vars['hrobot_server_ip'], AnsibleUnsafe)
+ assert not isinstance(host_2_vars['ansible_host'], AnsibleUnsafe)
+ assert not isinstance(host_2_vars['hrobot_server_ip'], AnsibleUnsafe)
assert isinstance(host_2_vars['hrobot_server_name'], AnsibleUnsafe)
assert isinstance(host_2_vars['hrobot_dc'], AnsibleUnsafe)