|
Lines 54-59
Link Here
|
| 54 |
"net":["timeout", "connect-int", "ping-int", "max-buffers", "unplug-watermark", "max-epoch-size", "sndbuf-size", "ko-count"], |
54 |
"net":["timeout", "connect-int", "ping-int", "max-buffers", "unplug-watermark", "max-epoch-size", "sndbuf-size", "ko-count"], |
| 55 |
"startup":["wfc-timeout", "degr-wfc-timeout"]]; |
55 |
"startup":["wfc-timeout", "degr-wfc-timeout"]]; |
| 56 |
|
56 |
|
|
|
57 |
// kernel_version_minimum_needed( system_kernel, kernel_min_version) |
| 58 |
boolean kernel_version_minimum_needed ( map kernel1, map kernel2 ) { |
| 59 |
// function which checks if running kernel matches predefined one |
| 60 |
y2milestone("Kernel1 %1", kernel1); |
| 61 |
y2milestone("Kernel2 %1", kernel2); |
| 62 |
if (kernel1["major"]:0 >= kernel2["major"]:9) { |
| 63 |
if (kernel1["minor"]:0 >= kernel2["minor"]:0 || kernel1["major"]:0 > kernel2["major"]:0) { |
| 64 |
if (kernel1["release"]:0 >= kernel2["release"]:0 || kernel1["major"]:0 > kernel2["major"]:0 || kernel1["minor"]:0 > kernel2["minor"]:0) { |
| 65 |
y2milestone("Kernel RELEASE OK"); |
| 66 |
return true; |
| 67 |
} else { |
| 68 |
y2milestone("Kernel RELEASE FAILED"); |
| 69 |
return false; |
| 70 |
} |
| 71 |
y2milestone("Kernel MINOR OK"); |
| 72 |
return true; |
| 73 |
} else { |
| 74 |
y2milestone("Kernel MINOR FAILED"); |
| 75 |
return false; |
| 76 |
} |
| 77 |
y2milestone("Kernel MAJOR OK"); |
| 78 |
return true; |
| 79 |
} else { |
| 80 |
y2milestone("Kernel MAJOR FAILED"); |
| 81 |
return false; |
| 82 |
} |
| 83 |
} |
| 57 |
|
84 |
|
| 58 |
global boolean Read() { |
85 |
global boolean Read() { |
| 59 |
/* DRBD read dialog caption */ |
86 |
/* DRBD read dialog caption */ |
|
Lines 75-86
Link Here
|
| 75 |
|
102 |
|
| 76 |
Progress::NextStage(); |
103 |
Progress::NextStage(); |
| 77 |
|
104 |
|
|
|
105 |
string regex = "([23]+)\.([0-9]+)\.([0-9]+).*(default|smp|bigsmp|pae|xen|xenpae|debug|ppc64|iseries64|desktop)"; |
| 106 |
map out = (map) SCR::Execute(.target.bash_output, "uname -r"); |
| 107 |
list<any> uname_r = regexptokenize( out["stdout"]:"2.6.16-99-default", regex ); |
| 108 |
y2milestone ("stdout: %1", regexptokenize( out["stdout"]:"2.6.16-99-default", regex )); |
| 109 |
map <string, integer > system_kernel = $[ |
| 110 |
"major" : tointeger(uname_r[0]:""), |
| 111 |
"minor" : tointeger(uname_r[1]:""), |
| 112 |
"release" : tointeger(uname_r[2]:"") |
| 113 |
]; |
| 114 |
|
| 78 |
// check installed packages |
115 |
// check installed packages |
|
|
116 |
// Kernel which do not need external package drbd-kmp |
| 117 |
map <string, integer > kernel_min_version = $[ |
| 118 |
"major" : 2, |
| 119 |
"minor" : 6, |
| 120 |
"release" : 33 |
| 121 |
]; |
| 122 |
|
| 79 |
// find out which krbd-kmp-<arch> to be installed |
123 |
// find out which krbd-kmp-<arch> to be installed |
| 80 |
map out = (map) SCR::Execute(.target.bash_output, "echo -n `uname -r|grep -Eo \"default|smp|bigsmp|pae|xen|xenpae|debug|ppc64|iseries64\"`"); |
124 |
string krbd_kmp_arch= uname_r[3]:"default"; |
| 81 |
string krbd_kmp_arch= out["stdout"]:"default"; |
125 |
|
|
|
126 |
list <string> required_packages = [ "drbd" ]; |
| 127 |
if (!kernel_version_minimum_needed(system_kernel, kernel_min_version)) { |
| 128 |
required_packages = add ( required_packages, "drbd-kmp-" + krbd_kmp_arch); |
| 129 |
} |
| 82 |
|
130 |
|
| 83 |
if (!Mode::test() && !PackageSystem::CheckAndInstallPackagesInteractive(["drbd", "drbd-kmp-" + krbd_kmp_arch])) |
131 |
if (!Mode::test() && !PackageSystem::CheckAndInstallPackagesInteractive(required_packages)) |
| 84 |
{ |
132 |
{ |
| 85 |
return false; |
133 |
return false; |
| 86 |
} |
134 |
} |