From 366d9d999e6e678f0f3773d13ff939cfe7a90038 Mon Sep 17 00:00:00 2001 From: Yanis Guenane Date: Thu, 12 Mar 2015 10:17:33 +0100 Subject: [PATCH] (FACT-852) Support for systemd and systemd_version This commit adds support for systemd and systemd_version facts. --- lib/facter/systemd.rb | 39 +++++++++++++++++++++++++++++++++++++++ schema/facter.json | 2 ++ 2 files changed, 41 insertions(+) create mode 100644 lib/facter/systemd.rb diff --git a/lib/facter/systemd.rb b/lib/facter/systemd.rb new file mode 100644 index 0000000000..3ac0a1e23b --- /dev/null +++ b/lib/facter/systemd.rb @@ -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 diff --git a/schema/facter.json b/schema/facter.json index 69fd84f7b7..d44bd7f34a 100644 --- a/schema/facter.json +++ b/schema/facter.json @@ -181,6 +181,8 @@ "swapsize" : { "type": "string" }, "swapsize_mb" : { "type": "string" }, "system32" : { "type": "string" }, + "systemd" : { "type": "boolean" }, + "systemd_version" : { "type": "string" }, "system_uptime" : { "type": "object", "properties" : { "seconds" : { "type": "integer" },