Changeset 1754

Show
Ignore:
Timestamp:
09/28/04 16:29:00 (20 years ago)
Author:
jalet
Message:

dumpykota for LDAP backend is almost there.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/storages/ldapstorage.py

    r1750 r1754  
    2222# 
    2323# $Log$ 
     24# Revision 1.77  2004/09/28 14:29:00  jalet 
     25# dumpykota for LDAP backend is almost there. 
     26# 
    2427# Revision 1.76  2004/09/28 09:11:56  jalet 
    2528# Fix for accented chars in print job's title, filename, and options 
     
    477480            return dn 
    478481             
     482    def getAllPrintersNames(self) :     
     483        """Extracts all printer names.""" 
     484        printernames = [] 
     485        result = self.doSearch("objectClass=pykotaPrinter", ["pykotaPrinterName"], base=self.info["printerbase"]) 
     486        if result : 
     487            printernames = [record[1]["pykotaPrinterName"][0] for record in result] 
     488        return printernames 
     489         
    479490    def getAllUsersNames(self) :     
    480491        """Extracts all user names.""" 
     
    12741285                self.doModify(parent.ident, fields)          
    12751286        self.doDelete(printer.ident)     
     1287         
     1288    def extractPrinters(self) : 
     1289        """Extracts all printer records.""" 
     1290        entries = [p for p in [self.getPrinter(name) for name in self.getAllPrintersNames()] if p.Exists] 
     1291        if entries : 
     1292            result = [ ("dn", "pykotaPrinterName", "pykotaPricePerPage", "pykotaPricePerPage", "description") ] 
     1293            for entry in entries : 
     1294                result.append((entry.ident, entry.Name, entry.PricePerPage, entry.PricePerJob, entry.Description)) 
     1295            return result  
     1296         
     1297    def extractUsers(self) : 
     1298        """Extracts all user records.""" 
     1299        entries = [u for u in [self.getUser(name) for name in self.getAllUsersNames()] if u.Exists] 
     1300        if entries : 
     1301            result = [ ("dn", "pykotaUserName", self.info["usermail"], "pykotaBalance", "pykotaLifeTimePaid", "pykotaLimitBy") ] 
     1302            for entry in entries : 
     1303                result.append((entry.ident, entry.Name, entry.Email, entry.AccountBalance, entry.LifeTimePaid, entry.LimitBy)) 
     1304            return result  
     1305         
     1306    def extractGroups(self) : 
     1307        """Extracts all group records.""" 
     1308        entries = [g for g in [self.getGroup(name) for name in self.getAllGroupsNames()] if g.Exists] 
     1309        if entries : 
     1310            result = [ ("dn", "pykotaGroupName", "pykotaBalance", "pykotaLifeTimePaid", "pykotaLimitBy") ] 
     1311            for entry in entries : 
     1312                result.append((entry.ident, entry.Name, entry.AccountBalance, entry.LifeTimePaid, entry.LimitBy)) 
     1313            return result  
     1314         
     1315    def extractPayments(self) : 
     1316        """Extracts all payment records.""" 
     1317        pass 
     1318         
     1319    def extractUpquotas(self) : 
     1320        """Extracts all userpquota records.""" 
     1321        entries = [p for p in [self.getPrinter(name) for name in self.getAllPrintersNames()] if p.Exists] 
     1322        if entries : 
     1323            pass     
     1324         
     1325    def extractGpquotas(self) : 
     1326        """Extracts all grouppquota records.""" 
     1327        entries = [p for p in [self.getPrinter(name) for name in self.getAllPrintersNames()] if p.Exists] 
     1328        if entries : 
     1329            pass 
     1330         
     1331    def extractUmembers(self) : 
     1332        """Extracts all user groups members.""" 
     1333        entries = [g for g in [self.getGroup(name) for name in self.getAllGroupsNames()] if g.Exists] 
     1334        if entries : 
     1335            result = [ ("pykotaGroupName", "pykotaUserName", "groupdn", "userdn") ] 
     1336            for entry in entries : 
     1337                for member in entry.Members : 
     1338                    result.append((entry.Name, member.Name, entry.ident, member.ident)) 
     1339            return result         
     1340                 
     1341    def extractPmembers(self) : 
     1342        """Extracts all printer groups members.""" 
     1343        entries = [p for p in [self.getPrinter(name) for name in self.getAllPrintersNames()] if p.Exists] 
     1344        if entries : 
     1345            result = [ ("pykotaPGroupName", "pykotaPrinterName", "pgroupdn", "printerdn") ] 
     1346            for entry in entries : 
     1347                for parent in self.getParentPrinters(entry) : 
     1348                    result.append((parent.Name, entry.Name, parent.ident, entry.ident)) 
     1349            return result         
     1350         
     1351    def extractHistory(self) : 
     1352        """Extracts all jobhistory records.""" 
     1353        entries = self.retrieveHistory(limit=None) 
     1354        if entries : 
     1355            result = [ ("pykotaUserName", "pykotaPrinterName", "dn", "pykotaJobId", "pykotaPrinterPageCounter", "pykotaJobSize", "pykotaAction", "createTimeStamp", "pykotaFileName", "pykotaTitle", "pykotaCopies", "pykotaOptions", "pykotaJobPrice", "pykotaHostName", "pykotaJobSizeBytes") ]  
     1356            for entry in entries : 
     1357                result.append((entry.UserName, entry.PrinterName, entry.ident, entry.JobId, entry.PrinterPageCounter, entry.JobSize, entry.JobAction, entry.JobDate, entry.JobFileName, entry.JobTitle, entry.JobCopies, entry.JobOptions, entry.JobPrice, entry.JobHostName, entry.JobSizeBytes))  
     1358            return result