From mboxrd@z Thu Jan 1 00:00:00 1970 From: kupcevic@sourceware.org Date: 13 Dec 2006 19:33:15 -0000 Subject: [Cluster-devel] conga ./conga.spec.in.in ricci/modules/rpm/Pac ... Message-ID: <20061213193315.30712.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: conga Changes by: kupcevic at sourceware.org 2006-12-13 19:33:14 Modified files: . : conga.spec.in.in ricci/modules/rpm: PackageHandler.cpp Log message: Fixed bz214989 (Package download not working for Conga during cluster creation) Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&r1=1.60&r2=1.61 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/rpm/PackageHandler.cpp.diff?cvsroot=cluster&r1=1.10&r2=1.11 --- conga/conga.spec.in.in 2006/12/12 13:11:51 1.60 +++ conga/conga.spec.in.in 2006/12/13 19:33:14 1.61 @@ -284,7 +284,7 @@ %changelog -* Tue Dec 12 2006 Stanko Kupcevic 0.9.1-2 +* Wed Dec 13 2006 Stanko Kupcevic 0.9.1-2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX UPDATE NOT RELEASED YET XXXXXXXXXXXXXXXXXXX @@ -298,6 +298,7 @@ - Fixed bz218941 (Conga/luci - cannot add node to cluster via luci web app) - Fixed bz219156 (Errors in performing node-specific tasks due to ricci outage not reflected in luci display) - Fixed bz217703 (clustered vg creation fails) +- Fixed bz214989 (Package download not working for Conga during cluster creation) --- conga/ricci/modules/rpm/PackageHandler.cpp 2006/10/23 18:43:36 1.10 +++ conga/ricci/modules/rpm/PackageHandler.cpp 2006/12/13 19:33:14 1.11 @@ -34,7 +34,6 @@ #define RPM_PATH "/bin/rpm" #define UP2DATE_PATH "/usr/sbin/up2date-nox" #define YUM_PATH "/usr/bin/yum" -#define UNAME_PATH "/bin/uname" static bool @@ -60,14 +59,13 @@ bool PackageInstaller::available() { - if (RHEL4 || RHEL5) { + if (RHEL4) { bool rhn_available = true; - // check existance of /etc/sysconfig/rhn/systemid + // check existence of /etc/sysconfig/rhn/systemid if (access("/etc/sysconfig/rhn/systemid", F_OK)) rhn_available = false; - // check if there are subscribed channels - if (rhn_available && - RHEL4) { + // check for subscribed channels + if (rhn_available) { String out, err; int status; vector args; @@ -78,8 +76,8 @@ rhn_available = false; } return rhn_available; - } else if (FC5 || FC6) { - // nothing to check for, maybe ping repository??? + } else if (FC5 || FC6 || RHEL5) { + // nothing to check for, maybe ping repositories??? return true; } else return false; @@ -156,8 +154,8 @@ return true; if (RHEL4) { - // TODO: fix up2date handling + // TODO: fix up2date handling throw String("RHEL4 not supported, yet"); String out, err; @@ -314,7 +312,6 @@ { set_release(); - // get installed packages String out, err; @@ -419,19 +416,11 @@ set.packages.push_back("dlm"); set.packages.push_back("fence"); - // find kernel type - String out, err; - int status; - vector args; - args.push_back("-r"); - if (utils::execute(UNAME_PATH, args, out, err, status, true)) - throw command_not_found_error_msg(UNAME_PATH); - if (status != 0) - throw String("uname -r failed"); - if (out.find("smp") != out.npos) { + String kernel(utils::strip(File::open("/proc/sys/kernel/osrelease"))); + if (kernel.find("smp") != kernel.npos) { set.packages.push_back("cman-kernel-smp"); set.packages.push_back("dlm-kernel-smp"); - } else if (out.find("hugemem") != out.npos) { + } else if (kernel.find("hugemem") != kernel.npos) { set.packages.push_back("cman-kernel-hugemen"); set.packages.push_back("dlm-kernel-hugemem"); } else { @@ -475,34 +464,28 @@ PackageSet PackageHandler::build_cluster_storage_set() { + String kernel(utils::strip(File::open("/proc/sys/kernel/osrelease"))); + PackageSet set("Clustered Storage"); set.packages.push_back("lvm2-cluster"); - + if (RHEL4 || FC5) { set.packages.push_back("GFS"); - - // find kernel type - String out, err; - int status; - vector args; - args.push_back("-r"); - if (utils::execute(UNAME_PATH, args, out, err, status, true)) - throw command_not_found_error_msg(UNAME_PATH); - if (status != 0) - throw String("uname -r failed"); - if (out.find("smp") != out.npos) { + if (kernel.find("smp") != kernel.npos) { set.packages.push_back("GFS-kernel-smp"); - } else if (out.find("hugemem") != out.npos) { + } else if (kernel.find("hugemem") != kernel.npos) { set.packages.push_back("GFS-kernel-hugemem"); } else { set.packages.push_back("GFS-kernel"); } } else if (RHEL5 || FC6) { set.packages.push_back("gfs2-utils"); - // GFS1 not present on FC6 if (RHEL5) { set.packages.push_back("gfs-utils"); - set.packages.push_back("kmod-gfs"); + if (kernel.find("xen") == kernel.npos) + set.packages.push_back("kmod-gfs"); + else + set.packages.push_back("kmod-gfs-xen"); } } @@ -593,7 +576,7 @@ String name(iter->name); map::iterator set_iter = h_pre.sets().find(name); if (set_iter == h_pre.sets().end()) - throw String("set ") + name + " present neither locally nor in repository"; + throw String("packages of set ") + name + " present neither locally nor in repository"; else { PackageSet& p_set = set_iter->second; if (p_set.installed) { @@ -651,9 +634,7 @@ RHEL4 = true; else if (release.find("Bordeaux") != release.npos) FC5 = true; - else if (release.find("Fedora Core") != release.npos && - release.find("6") != release.npos) - // TODO: get real FC6 codename + else if (release.find("Zod") != release.npos) FC6 = true; else if (release.find("Tikanga") != release.npos) RHEL5 = true;