]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/hardware/recipes/default.rb
Use ttyS1 on karm
[chef.git] / cookbooks / hardware / recipes / default.rb
index 0b7b3e6f3f88dfa03f1b656cc4304b3d9f223c17..5cbb13eb0142ae334e24debde48270c57c502be3 100644 (file)
@@ -50,78 +50,56 @@ else
   product = "Unknown"
 end
 
+units = []
+
+if node[:roles].include?("bytemark") || node[:roles].include?("exonetric")
+  units << "0"
+end
+
 case manufacturer
 when "HP"
   package "hponcfg"
   package "hp-health"
-  unit = "1"
-  speed = "115200"
+  units << "1"
 when "TYAN"
-  unit = "0"
-  speed = "115200"
+  units << "0"
 when "TYAN Computer Corporation"
-  unit = "0"
-  speed = "115200"
+  units << "0"
 when "Supermicro"
   case product
-  when "H8DGU", "X9SCD", "X7DBU", "X7DW3", "X9DR7/E-(J)LN4F", "X9DR3-F", "X9DRW"
-    unit = "1"
-    speed = "115200"
+  when "H8DGU", "X9SCD", "X7DBU", "X7DW3", "X9DR7/E-(J)LN4F", "X9DR3-F", "X9DRW", "SYS-2028U-TN24R4T+"
+    units << "1"
   else
-    unit = "0"
-    speed = "115200"
+    units << "0"
   end
 when "IBM"
-  unit = "0"
-  speed = "115200"
-end
-
-if manufacturer == "HP" && node[:lsb][:release].to_f > 11.10
-  include_recipe "git"
-
-  git "/opt/hp/hp-legacy" do
-    action :sync
-    repository "git://chef.openstreetmap.org/hp-legacy.git"
-    user "root"
-    group "root"
-    ignore_failure true
-  end
-
-  link "/opt/hp/hp-health/bin/hpasmd" do
-    to "/opt/hp/hp-legacy/hpasmd"
-  end
-
-  link "/usr/lib/libhpasmintrfc.so.3.0" do
-    to "/opt/hp/hp-legacy/libhpasmintrfc.so.3.0"
-  end
-
-  link "/usr/lib/libhpasmintrfc.so.3" do
-    to "libhpasmintrfc.so.3.0"
-  end
-
-  link "/usr/lib/libhpasmintrfc.so" do
-    to "libhpasmintrfc.so.3.0"
-  end
+  units << "0"
 end
 
-unless unit.nil?
-  file "/etc/init/ttySttyS#{unit}.conf" do
-    action :delete
-  end
+units.sort.uniq.each do |unit|
+  if node[:lsb][:release].to_f >= 16.04
+    service "serial-getty@ttyS#{unit}" do
+      action [:enable, :start]
+    end
+  else
+    file "/etc/init/ttySttyS#{unit}.conf" do
+      action :delete
+    end
 
-  template "/etc/init/ttyS#{unit}.conf" do
-    source "tty.conf.erb"
-    owner "root"
-    group "root"
-    mode 0644
-    variables :unit => unit, :speed => speed
-  end
+    template "/etc/init/ttyS#{unit}.conf" do
+      source "tty.conf.erb"
+      owner "root"
+      group "root"
+      mode 0644
+      variables :unit => unit
+    end
 
-  service "ttyS#{unit}" do
-    provider Chef::Provider::Service::Upstart
-    action [:enable, :start]
-    supports :status => true, :restart => true, :reload => false
-    subscribes :restart, "template[/etc/init/ttyS#{unit}.conf]"
+    service "ttyS#{unit}" do
+      provider Chef::Provider::Service::Upstart
+      action [:enable, :start]
+      supports :status => true, :restart => true, :reload => false
+      subscribes :restart, "template[/etc/init/ttyS#{unit}.conf]"
+    end
   end
 end
 
@@ -154,7 +132,7 @@ if File.exist?("/etc/default/grub")
     owner "root"
     group "root"
     mode 0644
-    variables :unit => unit, :speed => speed, :entry => grub_entry
+    variables :units => units, :entry => grub_entry
     notifies :run, "execute[update-grub]"
   end
 end
@@ -297,7 +275,15 @@ end
   end
 end
 
-disks = node[:hardware][:disk][:disks].map do |disk|
+disks = if node[:hardware][:disk]
+          node[:hardware][:disk][:disks]
+        else
+          []
+        end
+
+disks = disks.map do |disk|
+  next if disk[:state] == "spun_down"
+
   if disk[:smart_device]
     controller = node[:hardware][:disk][:controllers][disk[:controller]]
     device = controller[:device].sub("/dev/", "")
@@ -435,7 +421,11 @@ if node[:lsb][:release].to_f <= 12.10
   end
 else
   service "kmod" do
-    provider Chef::Provider::Service::Upstart
+    if node[:lsb][:release].to_f >= 15.10
+      provider Chef::Provider::Service::Systemd
+    else
+      provider Chef::Provider::Service::Upstart
+    end
     action :nothing
     subscribes :start, "template[/etc/modules]"
   end
@@ -464,15 +454,15 @@ unless Dir.glob("/sys/class/hwmon/hwmon*").empty?
     cpu = File.basename(coretemp).sub("coretemp.", "").to_i
     chip = format("coretemp-isa-%04d", cpu)
 
-    if File.exist?("#{coretemp}/name")
-      temps = Dir.glob("#{coretemp}/temp*_input").map do |temp|
-        File.basename(temp).sub("temp", "").sub("_input", "").to_i
-      end.sort
-    else
-      temps = Dir.glob("#{coretemp}/hwmon/hwmon*/temp*_input").map do |temp|
-        File.basename(temp).sub("temp", "").sub("_input", "").to_i
-      end.sort
-    end
+    temps = if File.exist?("#{coretemp}/name")
+              Dir.glob("#{coretemp}/temp*_input").map do |temp|
+                File.basename(temp).sub("temp", "").sub("_input", "").to_i
+              end.sort
+            else
+              Dir.glob("#{coretemp}/hwmon/hwmon*/temp*_input").map do |temp|
+                File.basename(temp).sub("temp", "").sub("_input", "").to_i
+              end.sort
+            end
 
     if temps.first == 1
       node.default[:hardware][:sensors][chip][:temps][:temp1][:label] = "CPU #{cpu}"