If ohai is present, do the same with facter and make it available for the templating engine

This commit is contained in:
Michael DeHaan 2012-02-27 23:15:11 -05:00
parent 186dab4dff
commit 320ce8f5f1

View file

@ -47,6 +47,25 @@ if os.path.exists("/usr/bin/facter"):
for (k,v) in facter_ds.items(): for (k,v) in facter_ds.items():
new_options["facter_%s" % k] = v new_options["facter_%s" % k] = v
# ditto for ohai, but just top level string keys
# because it contains a lot of nested stuff we can't use for
# templating w/o making a nicer key for it (TODO)
if os.path.exists("/usr/bin/ohai"):
cmd = subprocess.Popen("/usr/bin/ohai", shell=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = cmd.communicate()
ohai = True
try:
ohai_ds = json.loads(out)
except:
ohai = False
if ohai:
for (k,v) in ohai_ds.items():
if type(v) == str or type(v) == unicode:
k2 = "ohai_%s" % k
new_options[k2] = v
# write the template/settings file using # write the template/settings file using
# instructions from server # instructions from server