From 6d2c80c4bb451156942264606ee8794d9c362bb5 Mon Sep 17 00:00:00 2001
From: Sofer Athlan-Guyot <chem@sathlan.org>
Date: Wed, 05 Apr 2017 17:57:35 +0200
Subject: [PATCH] Simplify legacy hieradata check to avoid false positive.

It seems that the current check for legacy hieradata can be fooled by
the way os-apply-config get its cached data.  This simplify the check
to avoid those false positives.

Change-Id: I4bf3a19b2ba87d902e1ca97de785190de1367c1f
Closes-Bug: #1680006
---

diff --git a/heat-config-hiera/install.d/hook-hiera.py b/heat-config-hiera/install.d/hook-hiera.py
index adc6aba..f481f0c 100755
--- a/heat-config-hiera/install.d/hook-hiera.py
+++ b/heat-config-hiera/install.d/hook-hiera.py
@@ -15,18 +15,12 @@
 import json
 import logging
 import os
-import subprocess
 import sys
 
 
 HIERA_DATADIR = os.environ.get('HEAT_PUPPET_HIERA_DATADIR',
                                '/etc/puppet/hieradata')
 HIERA_CONFIG = os.environ.get('HEAT_HIERA_CONFIG', '/etc/puppet/hiera.yaml')
-HIERA_ELEMENT_CHECK_CMD = os.environ.get('HEAT_HIERA_ELEMENT_CHECK_CMD',
-                                         'os-apply-config '
-                                         '--key hiera.datafiles '
-                                         '--type raw --key-default empty')
-
 
 HIERA_CONFIG_BASE = """
 ---
@@ -44,28 +38,23 @@
 
 
 def exit_legacy_hiera_detected():
-    try:
-        subproc = subprocess.Popen(HIERA_ELEMENT_CHECK_CMD.split(" "),
-                                   stdout=subprocess.PIPE,
-                                   stderr=subprocess.PIPE)
-        stdout, stderr = subproc.communicate()
-        if stdout.rstrip() != 'empty':
-            err_msg = ('Legacy hieradata from os-apply-config has been '
-                       'detected. Please update all of your interfaces '
-                       'to use the new heat-agents hiera hook before '
-                       'proceeding')
-            response = {
-                'deploy_stdout': stdout,
-                'deploy_stderr': err_msg,
-                'deploy_status_code': 1,
-            }
+    if os.path.isfile(
+            '/usr/libexec/os-apply-config/templates/etc/puppet/hiera.yaml'
+    ) or os.path.isfile(
+        '/usr/libexec/os-refresh-config/configure.d/40-hiera-datafiles'
+    ):
+        err_msg = ('Legacy hieradata from os-apply-config has been '
+                   'detected. Please update all of your interfaces '
+                   'to use the new heat-agents hiera hook before '
+                   'proceeding')
+        response = {
+            'deploy_stdout': '',
+            'deploy_stderr': err_msg,
+            'deploy_status_code': 1,
+        }
 
-            json.dump(response, sys.stdout)
-            sys.exit(0)
-
-    except OSError:
-        # os-apply-config is not installed? Assume there is no legacy data.
-        pass
+        json.dump(response, sys.stdout)
+        sys.exit(0)
 
 
 def main(argv=sys.argv):
