Merge pull request #516 from dlactin/feature/master/apt_reboot_required_fact
authorMorgan Haskel <morgan@puppetlabs.com>
Wed, 29 Apr 2015 22:34:43 +0000 (15:34 -0700)
committerMorgan Haskel <morgan@puppetlabs.com>
Wed, 29 Apr 2015 22:34:43 +0000 (15:34 -0700)
Added new apt_reboot_required fact, updated readme, and added unit tests

README.md
lib/facter/apt_reboot_required.rb [new file with mode: 0644]
spec/unit/facter/apt_reboot_required_spec.rb [new file with mode: 0644]

index e8e6d39bd345571bddc682007a669d393f788425..f3a8fc70057a25529a77a61f257906d4e422a273 100644 (file)
--- a/README.md
+++ b/README.md
@@ -217,6 +217,8 @@ apt::sources:
 
 * `apt_update_last_success`: The date, in epochtime, of the most recent successful `apt-get update` run (based on the mtime of  /var/lib/apt/periodic/update-success-stamp).
 
+* `apt_reboot_required`: Determines if a reboot is necessary after updates have been installed.
+
 #### Class: `apt`
 
 Main class, includes all other classes.
diff --git a/lib/facter/apt_reboot_required.rb b/lib/facter/apt_reboot_required.rb
new file mode 100644 (file)
index 0000000..8de904a
--- /dev/null
@@ -0,0 +1,7 @@
+# apt_reboot_required.rb
+Facter.add(:apt_reboot_required) do
+  confine :osfamily => 'Debian'
+  setcode do
+    File.file?('/var/run/reboot-required')
+  end
+end
diff --git a/spec/unit/facter/apt_reboot_required_spec.rb b/spec/unit/facter/apt_reboot_required_spec.rb
new file mode 100644 (file)
index 0000000..ab3490a
--- /dev/null
@@ -0,0 +1,23 @@
+require 'spec_helper'
+
+describe 'apt_reboot_required fact' do
+  subject { Facter.fact(:apt_reboot_required).value }
+  after(:each) { Facter.clear }
+
+  describe 'if a reboot is required' do
+    before {
+      Facter.fact(:osfamily).stubs(:value).returns 'Debian'
+      File.stubs(:file?).returns true
+    }
+    it { expect(Facter.fact(:apt_reboot_required).value).to eq true }
+  end
+
+  describe 'if a reboot is not required' do
+    before {
+      Facter.fact(:osfamily).stubs(:value).returns 'Debian'
+      File.stubs(:file?).returns false
+    }
+    it { expect(Facter.fact(:apt_reboot_required).value).to eq false }
+  end
+
+end