Fix handling of over-quota condition
Steve Muir [Fri, 28 Oct 2005 21:43:17 +0000 (21:43 +0000)]
python/vserver.py
util-vserver.spec

index 9ee30d8..264aee2 100644 (file)
@@ -114,6 +114,7 @@ class VServer:
     def set_disklimit(self, block_limit):
 
         # block_limit is in kB
+        over_limit = False
         if self.vm_running:
             block_usage = vserverimpl.DLIMIT_KEEP
             inode_usage = vserverimpl.DLIMIT_KEEP
@@ -122,8 +123,7 @@ class VServer:
             block_usage = self.disk_blocks
             inode_usage = self.disk_inodes
             if block_limit < block_usage:
-                raise Exception, ("%s disk usage (%u blocks) > limit (%u)" %
-                                  (self.name, block_usage, block_limit))
+                over_limit = True
 
         vserverimpl.setdlimit(self.dir,
                               self.ctx,
@@ -133,6 +133,10 @@ class VServer:
                               vserverimpl.DLIMIT_INF,  # inode limit
                               2)   # %age reserved for root
 
+        if over_limit:
+            raise Exception, ("%s disk usage (%u blocks) > limit (%u)" %
+                              (self.name, block_usage, block_limit))
+
     def get_disklimit(self):
 
         try:
index 7e8fd68..c7fc376 100644 (file)
@@ -17,7 +17,7 @@
 
 %define name util-vserver
 %define version 0.30.208
-%define release 2.planetlab%{?date:.%{date}}
+%define release 3.planetlab%{?date:.%{date}}
 
 %define _without_dietlibc 1
 %define _without_xalan 1
@@ -381,6 +381,9 @@ done
 
 
 %changelog
+* Fri Oct 28 2005 Steve Muir <smuir@cs.princeton.edu>
+- raise exception about being over disk limit after setting usage values
+
 * Fri Oct  7 2005 Steve Muir <smuir@cs.princeton.edu>
 - create common function to be used for entering a vserver and applying
   resource limits