def processReleasesStage4dot5(self, groupID): mdb = db.DB() c = consoletools.Consoletools() n = self.n minsizecount = 0 maxsizecount = 0 minfilecount = 0 print 'Stage 4.5 -> Delete releases smaller/larger than the minimum size/file count from group/site settings.' stage4dot5 = time.time() if groupID == '': groupIDs = groups.getActiveIDs() for groupID in groupIDs: resrel = mdb.query("SELECT r.ID, r.guid FROM releases r LEFT JOIN \ (SELECT g.ID, coalesce(g.minsizetoformrelease, s.minsizetoformrelease) \ as minsizetoformrelease FROM groups g INNER JOIN ( SELECT value as minsizetoformrelease \ FROM site WHERE setting = 'minsizetoformrelease' ) s ) g ON g.ID = r.groupID WHERE \ g.minsizetoformrelease != 0 AND r.size < minsizetoformrelease AND groupID = "+str(int(groupID["ID"]))) if resrel: for rowrel in resrel: self.fastDelete(rowrel['ID'], rowrel['guid'], self.site) minsizecount += 1 maxfilesizeres = mdb.queryOneRow("SELECT value FROM site WHERE setting = 'maxsizetoformrelease'") if maxfilesizeres['value'] != 0: # where did they get filesize column from? resrel = mdb.query("SELECT ID, guid from releases where groupID = %s AND size > %s " % (str(int(groupID["ID"])), str(int(maxfilesizeres["value"])))) if resrel: for rowrel in resrel: self.fastDelete(rowrel['ID'], rowrel['guid'], self.site) maxsizecount += 1 resrel = mdb.query("SELECT r.ID, r.guid FROM releases r LEFT JOIN \ (SELECT g.ID, coalesce(g.minfilestoformrelease, s.minfilestoformrelease) \ as minfilestoformrelease FROM groups g INNER JOIN ( SELECT value as minfilestoformrelease \ FROM site WHERE setting = 'minfilestoformrelease' ) s ) g ON g.ID = r.groupID WHERE \ g.minfilestoformrelease != 0 AND r.totalpart < minfilestoformrelease AND groupID = "+str(int(groupID["ID"]))) if resrel: for rowrel in resrel: self.fastDelete(rowrel['ID'], rowrel['guide'], self.site) minfilecount += 1 else: resrel = mdb.query("SELECT r.ID FROM releases r LEFT JOIN \ (SELECT g.ID, coalesce(g.minsizetoformrelease, s.minsizetoformrelease) \ as minsizetoformrelease FROM groups g INNER JOIN ( SELECT value as minsizetoformrelease \ FROM site WHERE setting = 'minsizetoformrelease' ) s ) g ON g.ID = r.groupID WHERE \ g.minsizetoformrelease != 0 AND r.size < minsizetoformrelease AND groupID = "+str(int(groupID))) if resrel: for rowrel in resrel: self.fastDelete(rowrel['ID'], rowrel['guid'], self.site) minsizecount += 1 maxfilesizeres = mdb.queryOneRow("SELECT value FROM site WHERE setting = 'maxsizetoformrelease'") if maxfilesizeres['value'] != 0: resrel = mdb.query("SELECT ID, guid from releases where groupID = %s AND size > %s" % (groupID, maxfilesizeres["value"])) if resrel: for rowrel in resrel: self.fastDelete(rowrel['ID'], rowrel['guid'], self.site) maxsizecount += 1 resrel = mdb.query("SELECT r.ID, guid FROM releases r LEFT JOIN \ (SELECT g.ID, coalesce(g.minfilestoformrelease, s.minfilestoformrelease) \ as minfilestoformrelease FROM groups g INNER JOIN ( SELECT value as minfilestoformrelease \ FROM site WHERE setting = 'minfilestoformrelease' ) s ) g ON g.ID = r.groupID WHERE \ g.minfilestoformrelease != 0 AND r.totalpart < minfilestoformrelease AND groupID = "+str(int(groupID))) if resrel: for rowrel in resrel: self.fastDelete(rowrel['ID'], rowrel['guid'], self.site) minfilecount += 1 delcount = minsizecount + maxsizecount + minfilecount if delcount > 0: print '...Deleted %d releases smaller/larger than group/site settings.' % (delcount) print c.convertTime(int(time.time() - stage4dot5))+n
def processReleasesStage3(self, groupID): mdb = db.DB() c = consoletools.Consoletools() n = self.n minsizecounts = 0 maxsizecounts = 0 minfilecounts = 0 print 'Stage 3 -> Delete collections smaller/larger than minimum size/file count from group/site setting.' stage3 = time.time() groupID = str(int(groupID)) if groupID else '' if groupID == '': groupIDs = groups.getActiveIDs() for groupID in groupIDs: if mdb.queryDirect("SELECT ID from collections where filecheck = 3 and filesize > 0"): mdb.query("UPDATE collections c LEFT JOIN (SELECT g.ID, coalesce(g.minsizetoformrelease, s.minsizetoformrelease) as minsizetoformrelease FROM groups g INNER JOIN ( SELECT value as minsizetoformrelease FROM site WHERE setting = 'minsizetoformrelease' ) s ) g ON g.ID = c.groupID SET c.filecheck = 5 WHERE g.minsizetoformrelease != 0 AND c.filecheck = 3 AND c.filesize < g.minsizetoformrelease and c.filesize > 0 AND groupID = "+str(int(groupID["ID"]))) minsizecount = mdb.getAffectedRows() if minsizecount < 0: minsizecount = 0 minsizecounts = minsizecount+minsizecounts maxfilesizeres = mdb.queryOneRow("select value from site where setting = 'maxsizetoformrelease'") if maxfilesizeres['value'] != 0: mdb.query("UPDATE collections SET filecheck = 5 WHERE filecheck = 3 AND groupID = %s AND filesize > %s " % (str(int(groupID['ID'])), str(int(maxfilesizeres['value'])))) maxsizecount = mdb.getAffectedRows() if maxsizecount < 0: maxsizecount = 0 maxsizecounts = maxsizecount+maxsizecounts mdb.query("UPDATE collections c LEFT JOIN (SELECT g.ID, coalesce(g.minfilestoformrelease, s.minfilestoformrelease) as minfilestoformrelease FROM groups g INNER JOIN ( SELECT value as minfilestoformrelease FROM site WHERE setting = 'minfilestoformrelease' ) s ) g ON g.ID = c.groupID SET c.filecheck = 5 WHERE g.minfilestoformrelease != 0 AND c.filecheck = 3 AND c.totalFiles < g.minfilestoformrelease AND groupID = "+str(int(groupID["ID"]))) minfilecount = mdb.getAffectedRows() if minfilecount < 0: minfilecount = 0 minfilecounts = minfilecounts+minfilecount else: if mdb.queryDirect("SELECT ID from collections where filecheck = 3 and filesize > 0"): mdb.query("UPDATE collections c LEFT JOIN (SELECT g.ID, coalesce(g.minsizetoformrelease, s.minsizetoformrelease) as minsizetoformrelease FROM groups g INNER JOIN ( SELECT value as minsizetoformrelease FROM site WHERE setting = 'minsizetoformrelease' ) s ) g ON g.ID = c.groupID SET c.filecheck = 5 WHERE g.minsizetoformrelease != 0 AND c.filecheck = 3 AND c.filesize < g.minsizetoformrelease and c.filesize > 0 AND groupID = "+groupID) minsizecount = mdb.getAffectedRows() if minsizecount < 0: minsizecount = 0 minsizecounts = minsizecount+minsizecounts maxfilesizeres = mdb.queryOneRow("select value from site where setting = 'maxsizetoformrelease'") if maxfilesizeres['value'] != 0: mdb.query("UPDATE collections SET filecheck = 5 WHERE filecheck = 3 AND filesize > %s " % (maxfilesizeres['value'],)) maxsizecount = mdb.getAffectedRows() if maxsizecount < 0: maxsizecount = 0 maxsizecounts = maxsizecount+maxsizecounts mdb.query("UPDATE collections c LEFT JOIN (SELECT g.ID, coalesce(g.minfilestoformrelease, s.minfilestoformrelease) as minfilestoformrelease FROM groups g INNER JOIN ( SELECT value as minfilestoformrelease FROM site WHERE setting = 'minfilestoformrelease' ) s ) g ON g.ID = c.groupID SET c.filecheck = 5 WHERE g.minfilestoformrelease != 0 AND c.filecheck = 3 AND c.totalFiles < g.minfilestoformrelease AND groupID = "+groupID) minfilecount = mdb.getAffectedRows() if minfilecount < 0: minfilecount = 0 minfilecounts = minfilecounts+minefilecount delcount = minsizecounts+maxsizecounts+minfilecounts if delcount > 0: print '...Deleted %d collections smaller/larger than group/site settings.' % (delcount) print c.convertTime(int(time.time() - stage3))+n