[Cluster-devel] conga ./conga.spec.in.in ricci/modules/rpm/Pac ...

kupcevic at sourceware.org kupcevic at sourceware.org
Wed Dec 13 19:33:15 UTC 2006


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 <kupcevic at redhat.com> 0.9.1-2
+* Wed Dec 13 2006 Stanko Kupcevic <kupcevic at redhat.com> 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<String> 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<String> 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<String> 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<String, PackageSet>::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;




More information about the Cluster-devel mailing list