]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/hardware/recipes/default.rb
Allow pinning kernel versions to work around hardware / driver issues
[chef.git] / cookbooks / hardware / recipes / default.rb
index f19446969c2d33c11f0f28b8ed81faa91ae8a5b2..620c7d58bb686507dd3321732037f5f2c311871c 100644 (file)
@@ -120,6 +120,16 @@ unless unit.nil?
   end
 end
 
+# if we need a different / special kernel version to make the hardware
+# work (e.g: https://github.com/openstreetmap/operations/issues/45) then
+# ensure that we have the package installed. the grub template will
+# make sure that this is the default on boot.
+unless node[:hardware][:grub][:kernel] == :latest
+  package "linux-image-#{node[:hardware][:grub][:kernel]}-generic"
+  package "linux-image-extra-#{node[:hardware][:grub][:kernel]}-generic"
+  package "linux-headers-#{node[:hardware][:grub][:kernel]}-generic"
+end
+
 if File.exist?("/etc/default/grub")
   execute "update-grub" do
     action :nothing
@@ -332,6 +342,8 @@ if status_packages["sas2ircu-status"]
     bus = host.sub("/sys/class/scsi_host/host", "")
 
     Dir.glob("/sys/bus/scsi/devices/#{bus}:0:*/scsi_generic/*").each do |sg|
+      next if File.directory?("#{sg}/../../block")
+
       disks << { :device => File.basename(sg) }
     end
   end