示例#1
0
	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
示例#2
0
	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