[Cluster-devel] conga/ricci/modules/storage MountHandler.cpp

rmccabe at sourceware.org rmccabe at sourceware.org
Fri Aug 24 22:06:30 UTC 2007


CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-08-24 22:06:29

Modified files:
	ricci/modules/storage: MountHandler.cpp 

Log message:
	Better error messages

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/MountHandler.cpp.diff?cvsroot=cluster&r1=1.6&r2=1.7

--- conga/ricci/modules/storage/MountHandler.cpp	2006/10/23 18:43:36	1.6
+++ conga/ricci/modules/storage/MountHandler.cpp	2007/08/24 22:06:29	1.7
@@ -1,5 +1,5 @@
 /*
-  Copyright Red Hat, Inc. 2005
+  Copyright Red Hat, Inc. 2005-2007
 
   This program is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the
@@ -95,7 +95,7 @@
   
   struct stat st;
   if (stat(path.c_str(), &st)) 
-    throw String("stat(") + path + ") failed";
+    throw String("stat(") + path + ") failed: " + String(strerror(errno));
   if (!S_ISBLK(st.st_mode)) 
     throw path + " is not a block device";
   
@@ -115,7 +115,7 @@
   
   FILE* fstab = setmntent(filename.c_str(), "r");
   if (!fstab)
-    throw String("unable to open ") + filename;
+    throw String("unable to open ") + filename + ": " + String(strerror(errno));
   try {
     while (getmntent_r(fstab, &mntbuff, buff, sizeof(buff)))
       try {
@@ -143,7 +143,7 @@
   
   FILE* file = fopen("/proc/swaps", "r");
   if (!file)
-    throw String("unable to open /proc/swaps");
+    throw String("unable to open /proc/swaps: ") + String(strerror(errno));
   try {
     bool done = false;
     while (!done) {
@@ -157,7 +157,7 @@
 	  continue;
 	} else {
 	  free(ptr);
-	  throw String("error reading /proc/swaps");
+	  throw String("error reading /proc/swaps: ") + String(strerror(errno));
 	}
       }
       String line;
@@ -321,12 +321,12 @@
 	return true;
       else
 	if (mnt != "swap")
-	  throw String("dir already in fstab");
+	  throw mnt + String("is already in fstab");
     }
   
   FILE* fstab = setmntent(fstab_path.c_str(), "r+");
   if (!fstab)
-    throw String("unable to open ") + fstab_path;
+    throw String("unable to open ") + fstab_path + ": " + String(strerror(errno));
   bool success;
   try {
     struct mntent st;
@@ -360,7 +360,7 @@
   bool modified = false;
   FILE* fstab = fopen(fstab_path.c_str(), "r");
   if (!fstab)
-    throw String("unable to open ") + fstab_path;
+    throw String("unable to open ") + fstab_path + ": " + String(strerror(errno));
   try {
     bool done = false;
     while (!done) {
@@ -375,7 +375,7 @@
 	  continue;
 	} else {
 	  free(ptr);
-	  throw String("error reading fstab");
+	  throw String("error reading fstab: ") + String(strerror(errno));
 	}
       }
       try {
@@ -410,10 +410,10 @@
   if (modified) {
     fstab = fopen(fstab_path.c_str(), "w");
     if (!fstab)
-      throw String("unable to open ") + fstab_path;
+      throw String("unable to open ") + fstab_path + " for writing: " + String(strerror(errno));
     try {
       if (!fwrite(buff.c_str(), buff.size(), 1, fstab))
-	throw String("error writing fstab");
+	throw String("error writing fstab: ") + String(strerror(errno));
       while (fclose(fstab) && errno == EINTR)
 	;
     } catch ( ... ) {
@@ -434,7 +434,7 @@
   
   FILE* file = fopen("/proc/filesystems", "r");
   if (!file)
-    throw String("unable to open /proc/filesystems");
+    throw String("unable to open /proc/filesystems: " + String(strerror(errno)));
   try {
     bool done = false;
     while (!done) {
@@ -449,7 +449,7 @@
 	  continue;
 	} else {
 	  free(ptr);
-	  throw String("error reading /proc/filesystems");
+	  throw String("error reading /proc/filesystems: ") + String(strerror(errno));
 	}
       }
       try {
@@ -488,7 +488,7 @@
   
   FILE* fstab = setmntent(filename.c_str(), "r");
   if (!fstab)
-    throw String("unable to open ") + filename;
+    throw String("unable to open ") + filename + ": " + String(strerror(errno));
   try {
     while (getmntent_r(fstab, &mntbuff, buff, sizeof(buff))) {
       String mp(mntbuff.mnt_dir);
@@ -539,14 +539,14 @@
   if (locker_counter == 0) {
     locker_fd = open(fstab_path.c_str(), O_RDWR);
     if (locker_fd == -1)
-      throw String("unable to open fstab");
+      throw String("unable to open fstab: ") + String(strerror(errno));
     int ret;
     while ((ret = flock(locker_fd, LOCK_EX)) && errno == EINTR)
       ;
     if (ret) {
       while (close(locker_fd) == -1 && errno == EINTR)
 	;
-      throw String("unable to flock fstab");
+      throw String("unable to flock fstab: ") + String(strerror(errno));
     }
   }
   
@@ -619,9 +619,9 @@
   MutexLocker l1(mutex);
   
   if (path.empty())
-    throw String("dir path is empty :-/");
+    throw String("dir path is empty");
   if (path[0] != '/')
-    throw String("dir has to be an absolute path");
+    throw String("dir must be an absolute path");
   
   String out, err, bin;
   int status;
@@ -636,5 +636,5 @@
 		     false))
     throw command_not_found_error_msg("mkdir");
   if (status)
-    throw String("creation of ") + path + " failed";
+    throw String("creation of ") + path + " failed: " + err;
 }




More information about the Cluster-devel mailing list