From 935838c4747aac13b9c626c8728b5bf1fd4d6e4d Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Thu, 24 Jul 2014 12:31:07 +0100 Subject: [PATCH] Compare kernel versions correctly --- cookbooks/chef/libraries/compare_versions.rb | 15 +++++++++++++++ .../devices/templates/default/udev.rules.erb | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 cookbooks/chef/libraries/compare_versions.rb diff --git a/cookbooks/chef/libraries/compare_versions.rb b/cookbooks/chef/libraries/compare_versions.rb new file mode 100644 index 000000000..d2ccf8a08 --- /dev/null +++ b/cookbooks/chef/libraries/compare_versions.rb @@ -0,0 +1,15 @@ +class Chef + class Util + def self.compare_versions(a, b) + if a.kind_of?(String) + a = a.split(".").map { |c| c.to_i } + end + + if b.kind_of?(String) + b = b.split(".").map { |c| c.to_i } + end + + a <=> b + end + end +end diff --git a/cookbooks/devices/templates/default/udev.rules.erb b/cookbooks/devices/templates/default/udev.rules.erb index 6a8560026..26fcec1da 100644 --- a/cookbooks/devices/templates/default/udev.rules.erb +++ b/cookbooks/devices/templates/default/udev.rules.erb @@ -24,7 +24,7 @@ ACTION=="add", SUBSYSTEM=="block", ENV{ID_BUS}=="<%= device[:bus] %>", ENV{ID_SE <% end -%> <% end -%> <% end -%> -<% if node[:lsb][:release] == "12.04" && node[:kernel][:release].to_f >= 3.11 -%> +<% if node[:lsb][:release] == "12.04" && Chef::Util.compare_versions(node[:kernel][:release], [3, 11]) >= 0 -%> # Rule from 14.04 udev for 12.04 machines running newer kernels ACTION=="add", SUBSYSTEM=="cpu", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe -bv $env{MODALIAS}" -- 2.43.2