(FACT-852) Support for systemd and systemd_version
authorYanis Guenane <yanis.guenane@enovance.com>
Thu, 12 Mar 2015 09:17:33 +0000 (10:17 +0100)
committerJulien Pivotto <roidelapluie@inuits.eu>
Fri, 19 Feb 2016 08:13:48 +0000 (09:13 +0100)
This commit adds support for systemd and systemd_version facts.

lib/facter/systemd.rb [new file with mode: 0644]

diff --git a/lib/facter/systemd.rb b/lib/facter/systemd.rb
new file mode 100644 (file)
index 0000000..3ac0a1e
--- /dev/null
@@ -0,0 +1,39 @@
+# Fact: systemd
+#
+# Purpose: 
+#   Determine whether SystemD is the init system on the node
+#
+# Resolution:
+#   Check the name of the process 1 (ps -p 1)
+#
+# Caveats:
+#
+
+# Fact: systemd-version
+#
+# Purpose: 
+#   Determine the version of systemd installed
+#
+# Resolution:
+#  Check the output of systemctl --version
+#
+# Caveats:
+#
+
+Facter.add(:systemd) do
+  confine :kernel => :linux
+  setcode do
+    result = false
+    init_process_name = Facter::Core::Execution.exec('ps -p 1 -o comm=')
+    if init_process_name.eql? 'systemd'
+      result = true
+    end
+  end
+end
+
+Facter.add(:systemd_version) do
+  confine :systemd => true
+  setcode do
+    version = Facter::Core::Execution.exec("systemctl --version | grep 'systemd' | awk '{ print $2 }'")
+  end
+end