Blob Blame History Raw
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