View | Details | Raw Unified | Return to bug 656105
Collapse All | Expand All

(-)src/Drbd.ycp.orig (-3 / +51 lines)
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
    }

Return to bug 656105