[Cluster-devel] conga/ricci/modules/rpm PackageHandler.cpp
kupcevic at sourceware.org
kupcevic at sourceware.org
Tue Sep 26 00:56:13 UTC 2006
CVSROOT: /cvs/cluster
Module name: conga
Changes by: kupcevic at sourceware.org 2006-09-26 00:56:13
Modified files:
ricci/modules/rpm: PackageHandler.cpp
Log message:
rpm module: fix of RHEL5 support
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/rpm/PackageHandler.cpp.diff?cvsroot=cluster&r1=1.5&r2=1.6
--- conga/ricci/modules/rpm/PackageHandler.cpp 2006/08/15 00:06:48 1.5
+++ conga/ricci/modules/rpm/PackageHandler.cpp 2006/09/26 00:56:13 1.6
@@ -66,7 +66,8 @@
if (access("/etc/sysconfig/rhn/systemid", F_OK))
rhn_available = false;
// check if there are subscribed channels
- if (rhn_available) {
+ if (rhn_available &&
+ RHEL4) {
String out, err;
int status;
vector<String> args;
@@ -92,13 +93,10 @@
if (!available())
return rpms;
- String out, err;
- int status;
- vector<String> args;
-
- if (RHEL4 || RHEL5) {
- out = err = "";
- args.clear();
+ if (RHEL4) {
+ String out, err;
+ int status;
+ vector<String> args;
args.push_back("--showall");
if (utils::execute(UP2DATE_PATH, args, out, err, status, false))
throw String("execute failed");
@@ -119,9 +117,10 @@
rpms[name] = version;
}
- } else if (FC5 || FC6) {
- out = err = "";
- args.clear();
+ } else if (FC5 || FC6 || RHEL5) {
+ String out, err;
+ int status;
+ vector<String> args;
args.push_back("-y");
args.push_back("list");
args.push_back("all");
@@ -159,13 +158,10 @@
if (rpms.empty())
return true;
- String out, err;
- int status;
- vector<String> args;
-
- if (RHEL4 || RHEL5) {
- out = err = "";
- args.clear();
+ if (RHEL4) {
+ String out, err;
+ int status;
+ vector<String> args;
for (vector<String>::size_type i=0; i<rpms.size(); i++)
args.push_back(rpms[i]);
if (utils::execute(UP2DATE_PATH, args, out, err, status, true))
@@ -174,17 +170,18 @@
throw String(UP2DATE_PATH) + " failed";
return true;
- } else if (FC5 || FC6) {
+ } else if (FC5 || FC6 || RHEL5) {
// install
vector<String> rpms_to_install;
- out = err = "";
- args.clear();
+ String out, err;
+ int status;
+ vector<String> args;
args.push_back("-y");
args.push_back("list");
args.push_back("installed");
if (utils::execute(YUM_PATH, args, out, err, status, false))
throw String("execute failed");
- if (status != 0)
+ if (status)
return false;
vector<String> lines = utils::split(utils::strip(out), "\n");
for (vector<String>::const_iterator rpm = rpms.begin();
@@ -213,7 +210,7 @@
args.push_back(*rpm);
if (utils::execute(YUM_PATH, args, out, err, status, false))
throw String("execute failed");
- if (status != 0)
+ if (status)
return false;
}
// update
@@ -227,9 +224,7 @@
args.push_back(*rpm);
if (utils::execute(YUM_PATH, args, out, err, status, false))
throw String("execute failed");
- if (status != 0)
- return false;
- return true;
+ return !status;
} else
return false;
@@ -500,9 +495,11 @@
}
} else if (RHEL5 || FC6) {
set.packages.push_back("gfs2-utils");
-
- // TODO: implement GFS1
-
+ // GFS1 not present on FC6
+ if (RHEL5) {
+ set.packages.push_back("gfs-utils");
+ set.packages.push_back("kmod-gfs");
+ }
}
return set;
@@ -625,8 +622,7 @@
is.read(buff, length);
String rel(buff, length);
- delete [] buff;
- buff = 0;
+ delete [] buff; buff = 0;
release = utils::strip(rel);
} catch ( ... ) {
@@ -640,9 +636,12 @@
FC5 = true;
else if (release.find("Fedora Core") != release.npos &&
release.find("6") != release.npos)
- // TODO: detect FC6
+ // TODO: get real FC6 codename
FC6 = true;
- // TODO: detect RHEL5
+ else if (release.find("Tikanga") != release.npos)
+ RHEL5 = true;
+ else
+ throw String("Unsupported OS");
release_set = true;
}
More information about the Cluster-devel
mailing list