80 def process(self, urlAges, queryCallback):
82 generalResponse = GeneralResponse()
83 self.urlsSelectDict = {}
84 URL_SELECT_TEMPL =
"SELECT `UrlMd5` FROM %s" 85 for urlAge
in urlAges:
86 defaultUrlsCriterions = urlAge.urlsCriterions[dc.EventObjects.URLAge.CRITERION_WHERE]
87 if self.gloablLoopExit:
89 query =
"SELECT `Id` FROM `sites`" 90 sitesCriterionStr = self.generateCriterionSQL(urlAge.sitesCriterions)
91 if len(sitesCriterionStr) > 0:
92 query +=
" " + sitesCriterionStr
93 sitesRes = queryCallback(query, Constants.PRIMARY_DB_ID)
94 if sitesRes
is not None:
95 for sitesElem
in sitesRes:
96 if self.gloablLoopExit:
98 if sitesElem
is not None and len(sitesElem) > 0:
102 "SELECT `Value` FROM `sites_properties` WHERE `Site_Id`='%s' AND `Name`='AGING_URL_CRITERION' LIMIT 1"\
104 altURLsCritRes = queryCallback(queryAltURLsCrit, Constants.PRIMARY_DB_ID)
105 criterionsSubstituted =
False 106 if altURLsCritRes
is not None:
107 for altURLsCritItem
in altURLsCritRes:
108 if altURLsCritItem
is not None and len(altURLsCritItem) > 0:
110 urlAge.urlsCriterions[dc.EventObjects.URLAge.CRITERION_WHERE] = altURLsCritItem[0]
111 criterionsSubstituted =
True 112 if not criterionsSubstituted:
113 urlAge.urlsCriterions[dc.EventObjects.URLAge.CRITERION_WHERE] = defaultUrlsCriterions
115 tableName = Constants.DC_URLS_TABLE_NAME_TEMPLATE % sitesElem[0]
116 query = URL_SELECT_TEMPL % tableName
117 urlsCriterionStr = self.generateCriterionSQL(urlAge.urlsCriterions,
None, sitesElem[0])
118 if len(urlsCriterionStr) > 0:
119 query +=
" " + urlsCriterionStr
121 urlsRes = queryCallback(query, Constants.SECONDARY_DB_ID)
122 for urlsRes
in urlsRes:
123 if self.gloablLoopExit:
125 if urlsRes
is not None and len(urlsRes) > 0:
126 self.addElemInLocalDict(sitesElem[0], urlsRes[0], urlAge.maxURLs, urlAge.delayedType)
127 StatisticLogManager.logUpdate(queryCallback,
"LOG_URL_AGING", urlAge, sitesElem[0], urlsRes[0])
128 if len(self.urlsSelectDict) > 0:
129 self.urlDeleteOperation(queryCallback)
130 return generalResponse