4 @link: http://hierarchical-cluster-engine.com/ 5 @copyright: Copyright © 2013-2014 IOIX Ukraine 6 @license: http://hierarchical-cluster-engine.com/license/ 13 from dc_db
import FieldRecalculator
35 def process(self, siteStatus, queryCallback):
38 recalculator.commonRecalc(siteStatus.id, queryCallback)
41 localSQLCause = (
"`Id` = '%s'" % siteStatus.id)
42 query = Constants.SELECT_SQL_TEMPLATE % (
"sites", localSQLCause)
43 res = queryCallback(query, Constants.PRIMARY_DB_ID, Constants.EXEC_NAME)
45 if hasattr(res,
'__iter__')
and len(res) > 0:
47 for field
in Constants.siteDict.keys():
48 if hasattr(site, field)
and Constants.siteDict[field]
in row:
49 setattr(site, field, row[Constants.siteDict[field]])
50 site.uDate = Constants.readDataTimeField(
"UDate", row)
51 site.tcDate = Constants.readDataTimeField(
"TcDate", row)
52 site.tcDateProcess = Constants.readDataTimeField(
"TcDateProcess", row)
53 site.cDate = Constants.readDataTimeField(
"CDate", row)
54 site.recrawlDate = Constants.readDataTimeField(
"RecrawlDate", row)
55 if SiteTask.FIELD_NAME_URLS
not in siteStatus.excludeList:
56 site.urls = self.
fillUrls(siteStatus, queryCallback)
60 logger.debug(
'>>> siteStatus.excludeList: ' + str(siteStatus.excludeList))
62 if SiteTask.FIELD_NAME_PROPERTIES
not in siteStatus.excludeList:
66 site.properties =
None 69 if SiteTask.FIELD_NAME_FILTERS
not in siteStatus.excludeList:
70 site.filters = self.
fillFilters(siteStatus, queryCallback)
74 site.state = dc.EventObjects.Site.STATE_NOT_FOUND
84 URL_SQL_QUERY =
"SELECT * FROM `sites_urls` WHERE `Site_Id` = '%s'" 85 query = URL_SQL_QUERY % siteUpdate.id
86 res = queryCallback(query, Constants.PRIMARY_DB_ID, Constants.EXEC_NAME)
99 GET_FILTERS_SQL_QUERY =
"SELECT * FROM `sites_filters` WHERE Site_Id = '%s'" 100 query = GET_FILTERS_SQL_QUERY % siteUpdate.id
101 res = queryCallback(query, Constants.PRIMARY_DB_ID, Constants.EXEC_NAME)
102 if hasattr(res,
'__iter__'):
104 if Constants.filterDict[
"siteId"]
in row
and row[Constants.filterDict[
"siteId"]]
is not None and \
105 Constants.filterDict[
"pattern"]
in row
and row[Constants.filterDict[
"pattern"]]
is not None:
107 row[Constants.filterDict[
"pattern"]])
108 for elem
in Constants.filterDict.keys():
109 if Constants.filterDict[elem]
in row
and hasattr(localFilter, elem):
110 setattr(localFilter, elem, row[Constants.filterDict[elem]])
111 localFilter.uDate = Constants.readDataTimeField(
"UDate", row)
112 localFilter.cDate = Constants.readDataTimeField(
"CDate", row)
113 filters.append(localFilter)
115 logger.error(
"fillFilters return None")
126 GET_PROPERTIES_SQL_QUERY =
"SELECT * FROM `sites_properties` WHERE Site_Id = '%s'" 127 query = GET_PROPERTIES_SQL_QUERY % siteUpdate.id
128 res = queryCallback(query, Constants.PRIMARY_DB_ID, Constants.EXEC_NAME)
129 if hasattr(res,
'__iter__'):
132 for elem
in Constants.propDict.keys():
133 if Constants.propDict[elem]
in row:
134 prop[elem] = row[Constants.propDict[elem]]
135 if len(prop.keys()) > 0:
136 localDate = Constants.readDataTimeField(
"UDate", row)
137 if localDate
is not None:
138 prop[
"uDate"] = localDate
139 localDate = Constants.readDataTimeField(
"CDate", row)
140 if localDate
is not None:
141 prop[
"cDate"] = localDate
142 properties.append(prop)
144 logger.error(
"fillProperties return None")
def fillProperties(self, siteUpdate, queryCallback)
def fillUrls(self, siteUpdate, queryCallback)
def process(self, siteStatus, queryCallback)
def fillFilters(self, siteUpdate, queryCallback)