From 78cc40b45b8ff38b3198502da24cd545865c248c Mon Sep 17 00:00:00 2001
From: Nils Philippsen <nils@redhat.com>
Date: Wed, 4 Dec 2019 17:21:14 +0100
Subject: [PATCH 1/3] Cope with exception object without message member.
Signed-off-by: Nils Philippsen <nils@redhat.com>
---
lib/ansiblereview/inventory.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/ansiblereview/inventory.py b/lib/ansiblereview/inventory.py
index dcb630e..196b556 100644
--- a/lib/ansiblereview/inventory.py
+++ b/lib/ansiblereview/inventory.py
@@ -38,5 +38,9 @@ def parse(candidate, options):
else:
ansible.inventory.Inventory(candidate.path)
except Exception as e:
- result.errors = [Error(None, "Inventory is broken: %s" % e.message)]
+ if hasattr(e, 'message'):
+ message = e.message
+ else:
+ message = str(e)
+ result.errors = [Error(None, "Inventory is broken: %s" % message)]
return result
--
2.23.0
From 1a074d402837489c96f20bc52ccfbaf87d71e135 Mon Sep 17 00:00:00 2001
From: Nils Philippsen <nils@redhat.com>
Date: Wed, 4 Dec 2019 17:28:27 +0100
Subject: [PATCH 2/3] Rework imports for different Ansible versions.
Signed-off-by: Nils Philippsen <nils@redhat.com>
---
lib/ansiblereview/inventory.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/ansiblereview/inventory.py b/lib/ansiblereview/inventory.py
index 196b556..2c6fc52 100644
--- a/lib/ansiblereview/inventory.py
+++ b/lib/ansiblereview/inventory.py
@@ -5,14 +5,14 @@ import yaml
try:
import ansible.parsing.dataloader
- from ansible.vars.manager import VariableManager
- ANSIBLE = 2
except ImportError:
+ ANSIBLE = 1
+else:
+ ANSIBLE = 2
try:
- from ansible.vars import VariableManager
- ANSIBLE = 2
+ from ansible.vars.manager import VariableManager
except ImportError:
- ANSIBLE = 1
+ from ansible.vars import VariableManager
def no_vars_in_host_file(candidate, options):
--
2.23.0
From 267502c2b33174655047c272d805aee91bbcdd6d Mon Sep 17 00:00:00 2001
From: Nils Philippsen <nils@redhat.com>
Date: Thu, 5 Dec 2019 10:32:31 +0100
Subject: [PATCH 3/3] Cope with Ansible >= 2.4 inventory changes.
Signed-off-by: Nils Philippsen <nils@redhat.com>
---
lib/ansiblereview/inventory.py | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/lib/ansiblereview/inventory.py b/lib/ansiblereview/inventory.py
index 2c6fc52..05dfe53 100644
--- a/lib/ansiblereview/inventory.py
+++ b/lib/ansiblereview/inventory.py
@@ -13,6 +13,10 @@ else:
from ansible.vars.manager import VariableManager
except ImportError:
from ansible.vars import VariableManager
+ if not hasattr(ansible.inventory, 'Inventory'):
+ # The inventory system was reworked in Ansible 2.4.
+ import ansible.inventory.manager
+ ANSIBLE = 2.4
def no_vars_in_host_file(candidate, options):
@@ -32,9 +36,17 @@ def parse(candidate, options):
try:
if ANSIBLE > 1:
loader = ansible.parsing.dataloader.DataLoader()
- var_manager = VariableManager()
- ansible.inventory.Inventory(loader=loader, variable_manager=var_manager,
- host_list=candidate.path)
+ if ANSIBLE > 2:
+ inventory = ansible.inventory.manager.InventoryManager(
+ sources=candidate.path,
+ loader=loader,
+ )
+ VariableManager(loader=loader, inventory=inventory)
+ else:
+ var_manager = VariableManager()
+ ansible.inventory.Inventory(loader=loader,
+ variable_manager=var_manager,
+ host_list=candidate.path)
else:
ansible.inventory.Inventory(candidate.path)
except Exception as e:
--
2.23.0