Changeset 1719

Show
Ignore:
Timestamp:
09/15/04 09:26:20 (20 years ago)
Author:
jalet
Message:

Data dumps are now ordered by entry creation date if applicable.
Now dumpykota exits with a message when there's a broken pipe like
in dumpykota --data history | head -3

Location:
pykota/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/bin/dumpykota

    r1718 r1719  
    2424# 
    2525# $Log$ 
     26# Revision 1.4  2004/09/15 07:26:19  jalet 
     27# Data dumps are now ordered by entry creation date if applicable. 
     28# Now dumpykota exits with a message when there's a broken pipe like 
     29# in dumpykota --data history | head -3 
     30# 
    2631# Revision 1.3  2004/09/15 06:58:25  jalet 
    2732# User groups membership and printer groups membership can now be dumped too 
     
    125130        entries = getattr(self.storage, "extract%s" % datatype.title())()     
    126131        if entries is not None : 
    127             getattr(self, "dump%s" % format.title())(entries) 
     132            return getattr(self, "dump%s" % format.title())(entries) 
    128133        return 0 
    129134         
     
    132137        for entry in entries : 
    133138            line = separator.join([ '"%s"' % field for field in entry ]) 
    134             print line 
     139            try : 
     140                print line 
     141            except IOError, msg :     
     142                sys.stderr.write("%s : %s\n" % (_("PyKota data dumper failed : I/O error"), msg)) 
     143                return -1 
     144        return 0         
    135145         
    136146    def dumpCsv(self, entries) :     
    137147        """Dumps datas with a comma as the separator.""" 
    138         self.dumpWithSeparator(",", entries) 
     148        return self.dumpWithSeparator(",", entries) 
    139149                            
    140150    def dumpSsv(self, entries) :     
    141151        """Dumps datas with a comma as the separator.""" 
    142         self.dumpWithSeparator(";", entries) 
     152        return self.dumpWithSeparator(";", entries) 
    143153                            
    144154    def dumpTsv(self, entries) :     
    145155        """Dumps datas with a comma as the separator.""" 
    146         self.dumpWithSeparator("\t", entries) 
     156        return self.dumpWithSeparator("\t", entries) 
    147157                            
    148158if __name__ == "__main__" :  
  • pykota/trunk/pykota/storages/sql.py

    r1718 r1719  
    2222# 
    2323# $Log$ 
     24# Revision 1.47  2004/09/15 07:26:20  jalet 
     25# Data dumps are now ordered by entry creation date if applicable. 
     26# Now dumpykota exits with a message when there's a broken pipe like 
     27# in dumpykota --data history | head -3 
     28# 
    2429# Revision 1.46  2004/09/15 06:58:25  jalet 
    2530# User groups membership and printer groups membership can now be dumped too 
     
    8186    def extractPrinters(self) : 
    8287        """Extracts all printer records.""" 
    83         result = self.doRawSearch("SELECT * FROM printers") 
     88        result = self.doRawSearch("SELECT * FROM printers ORDER BY id ASC") 
    8489        return self.prepareRawResult(result) 
    8590         
    8691    def extractUsers(self) : 
    8792        """Extracts all user records.""" 
    88         result = self.doRawSearch("SELECT * FROM users") 
     93        result = self.doRawSearch("SELECT * FROM users ORDER BY id ASC") 
    8994        return self.prepareRawResult(result) 
    9095         
    9196    def extractGroups(self) : 
    9297        """Extracts all group records.""" 
    93         result = self.doRawSearch("SELECT * FROM groups") 
     98        result = self.doRawSearch("SELECT * FROM groups ORDER BY id ASC") 
    9499        return self.prepareRawResult(result) 
    95100         
    96101    def extractPayments(self) : 
    97102        """Extracts all payment records.""" 
    98         result = self.doRawSearch("SELECT username,payments.* FROM users,payments WHERE users.id=payments.userid") 
     103        result = self.doRawSearch("SELECT username,payments.* FROM users,payments WHERE users.id=payments.userid ORDER BY payments.id ASC") 
    99104        return self.prepareRawResult(result) 
    100105         
    101106    def extractUpquotas(self) : 
    102107        """Extracts all userpquota records.""" 
    103         result = self.doRawSearch("SELECT users.username,printers.printername,userpquota.* FROM users,printers,userpquota WHERE users.id=userpquota.userid AND printers.id=userpquota.printerid") 
     108        result = self.doRawSearch("SELECT users.username,printers.printername,userpquota.* FROM users,printers,userpquota WHERE users.id=userpquota.userid AND printers.id=userpquota.printerid ORDER BY userpquota.id ASC") 
    104109        return self.prepareRawResult(result) 
    105110         
    106111    def extractGpquotas(self) : 
    107112        """Extracts all grouppquota records.""" 
    108         result = self.doRawSearch("SELECT groups.groupname,printers.printername,grouppquota.* FROM groups,printers,grouppquota WHERE groups.id=grouppquota.groupid AND printers.id=grouppquota.printerid") 
     113        result = self.doRawSearch("SELECT groups.groupname,printers.printername,grouppquota.* FROM groups,printers,grouppquota WHERE groups.id=grouppquota.groupid AND printers.id=grouppquota.printerid ORDER BY grouppquota.id ASC") 
    109114        return self.prepareRawResult(result) 
    110115         
    111116    def extractUmembers(self) : 
    112117        """Extracts all user groups members.""" 
    113         result = self.doRawSearch("SELECT groups.groupname, users.username, groupsmembers.* FROM groups,users,groupsmembers WHERE users.id=groupsmembers.userid AND groups.id=groupsmembers.groupid") 
     118        result = self.doRawSearch("SELECT groups.groupname, users.username, groupsmembers.* FROM groups,users,groupsmembers WHERE users.id=groupsmembers.userid AND groups.id=groupsmembers.groupid ORDER BY groupsmembers.groupid, groupsmembers.userid ASC") 
    114119        return self.prepareRawResult(result) 
    115120         
    116121    def extractPmembers(self) : 
    117122        """Extracts all printer groups members.""" 
    118         result = self.doRawSearch("SELECT p1.printername as pgroupname, p2.printername as printername, printergroupsmembers.* FROM printers p1, printers p2, printergroupsmembers WHERE p1.id=printergroupsmembers.groupid AND p2.id=printergroupsmembers.printerid") 
     123        result = self.doRawSearch("SELECT p1.printername as pgroupname, p2.printername as printername, printergroupsmembers.* FROM printers p1, printers p2, printergroupsmembers WHERE p1.id=printergroupsmembers.groupid AND p2.id=printergroupsmembers.printerid ORDER BY printergroupsmembers.groupid, printergroupsmembers.printerid ASC") 
    119124        return self.prepareRawResult(result) 
    120125         
    121126    def extractHistory(self) : 
    122127        """Extracts all jobhistory records.""" 
    123         result = self.doRawSearch("SELECT users.username,printers.printername,jobhistory.* FROM users,printers,jobhistory WHERE users.id=jobhistory.userid AND printers.id=jobhistory.printerid") 
     128        result = self.doRawSearch("SELECT users.username,printers.printername,jobhistory.* FROM users,printers,jobhistory WHERE users.id=jobhistory.userid AND printers.id=jobhistory.printerid ORDER BY jobhistory.id ASC") 
    124129        return self.prepareRawResult(result) 
    125130