Updated rsbac.errors to use getErrorName.
authorFrédéric Jolliton <git@frederic.jolliton.com>
Mon, 23 Oct 2006 11:55:14 +0000 (11:55 +0000)
committerFrédéric Jolliton <git@frederic.jolliton.com>
Mon, 23 Oct 2006 11:55:14 +0000 (11:55 +0000)
rsbac/_data.py
rsbac/acl.py
rsbac/errors.py
rsbac/rc.py

index 41d9fb5..1e365d5 100644 (file)
@@ -52,6 +52,8 @@ _g_scds = \
             if name.startswith( 'ST_' ) and name.upper() != 'ST_NONE' )
 
 ScdVector = buildFlagsClass( 'ScdVector' , ( object , ) , _g_scds )
+
+# FIXME: Same as ScdVector?
 JailScdVector = buildFlagsClass( 'JailScdVector' , ( object , ) , _g_scds )
 
 _g_fileFlags = [
index 16da26b..68d8d1e 100644 (file)
@@ -448,7 +448,7 @@ def addGroup( name , type = headers.ACLG_PRIVATE , id = None ) :
 
 @export
 def addGlobalGroup( name , id = None ) :
-    """Add an ACL global group.
+    """Add an global ACL group.
 
     name -- group name as string
     id -- a positive integer or None (automatic ID)
@@ -460,7 +460,7 @@ def addGlobalGroup( name , id = None ) :
 
 @export
 def addPrivateGroup( name , id = None ) :
-    """Add an ACL private group.
+    """Add an private ACL group.
 
     name -- group name as string
     id -- a positive integer or None (automatic ID)
@@ -493,7 +493,7 @@ def changeGroup( id , owner , type , name ) :
 
 @export
 def removeGroup( id ) :
-    """Remove an ACL group
+    """Remove an ACL group.
 
     id -- ACL group as integer
 
@@ -538,7 +538,7 @@ def _listGroups( includeGlobal , arr , n ) :
 # _listGroups (the groups belonging to other users.)
 @export
 def getGroupList( includeGlobal = False ) :
-    """Get the list of ACL group.
+    """Get the list of ACL groups.
 
     includeGlobal -- boolean. If True, include global groups.
 
index 9f55d15..c24cee1 100644 (file)
@@ -25,45 +25,10 @@ from rsbac.platform import getErrno
 
 class Error( RuntimeError ) : pass
 
-# FIXME: Build this list using get_error_name?
-g_errors = {
-      1001 : 'RSBAC_EPERM'
-    , 1002 : 'RSBAC_EACCESS'
-    , 1003 : 'RSBAC_EREADFAILED'
-    , 1004 : 'RSBAC_EWRITEFAILED'
-    , 1005 : 'RSBAC_EINVALIDPOINTER'
-    , 1006 : 'RSBAC_ENOROOTDIR'
-    , 1007 : 'RSBAC_EPATHTOOLONG'
-    , 1008 : 'RSBAC_ENOROOTDEV'
-    , 1009 : 'RSBAC_ENOTFOUND'
-    , 1010 : 'RSBAC_ENOTINITIALIZED'
-    , 1011 : 'RSBAC_EREINIT'
-    , 1012 : 'RSBAC_ECOULDNOTADDDEVICE'
-    , 1013 : 'RSBAC_ECOULDNOTADDITEM'
-    , 1014 : 'RSBAC_ECOULDNOTCREATEPATH'
-    , 1015 : 'RSBAC_EINVALIDATTR'
-    , 1016 : 'RSBAC_EINVALIDDEV'
-    , 1017 : 'RSBAC_EINVALIDTARGET'
-    , 1018 : 'RSBAC_EINVALIDVALUE'
-    , 1019 : 'RSBAC_EEXISTS'
-    , 1020 : 'RSBAC_EINTERNONLY'
-    , 1021 : 'RSBAC_EINVALIDREQUEST'
-    , 1022 : 'RSBAC_ENOTWRITABLE'
-    , 1023 : 'RSBAC_EMALWAREDETECTED'
-    , 1024 : 'RSBAC_ENOMEM'
-    , 1025 : 'RSBAC_EDECISIONMISMATCH'
-    , 1026 : 'RSBAC_EINVALIDVERSION'
-    , 1027 : 'RSBAC_EINVALIDMODULE'
-    , 1028 : 'RSBAC_EEXPIRED'
-    , 1029 : 'RSBAC_EMUSTCHANGE'
-    , 1030 : 'RSBAC_EBUSY'
-    , 1031 : 'RSBAC_EINVALIDTRANSACTION'
-    , 1032 : 'RSBAC_EWEAKPASSWORD'
-}
-
 def raiseError( n ) :
-    msg = g_errors.get( n )
-    if msg is None :
+    # getErrorName is imported at the end because of cyclic import.
+    msg = getErrorName( -n )
+    if msg == 'Success' : # FIXME
         msg = os.strerror( n )
     raise Error( n , msg )
 
@@ -79,6 +44,8 @@ def raiseIfError( n ) :
         raiseLastError( n )
     return n
 
+from rsbac._misc import getErrorName
+
 # Local Variables:
 # indent-tabs-mode: nil
 # python-indent: 4
index a409584..9bac348 100644 (file)
@@ -825,7 +825,7 @@ class RoleBase( object ) :
         return long( self._role )
     def __repr__( self ) :
         if self._role < 0 :
-            return '<RC PseudoRole %d %s>' \
+            return '<RC PseudoRole [%d] %s>' \
                 % ( self._role ,
                     _g_pseudoRoles.get( self._role , 'unknown' ) )
         else :