4 @link: http://hierarchical-cluster-engine.com/ 5 @copyright: Copyright © 2013-2014 IOIX Ukraine 6 @license: http://hierarchical-cluster-engine.com/license/ 32 self.
dbTask = DBTasksManager(cfgParser)
48 fieldRecalculatingObjList = []
52 fieldRecalculatingObjList)
69 def customRequest(self, query, dbName, includeFieldsNames=dbi.EventObjects.CustomRequest.SQL_BY_INDEX):
73 customObject.includeFieldsNames = includeFieldsNames
76 if retDRCE.eventType == dc.Constants.EVENT_TYPES.SQL_CUSTOM_RESPONSE:
77 if retDRCE.eventObject.rid == self.
rid:
78 if retDRCE.eventObject.errString
is None:
79 ret = retDRCE.eventObject.result
81 logger.error(
"SQL_CUSTOM_RESPONSE >>> Resonse error = " + retDRCE.eventObject.errString)
83 logger.error(
"SQL_CUSTOM_RESPONSE >>> Wrong response rid")
85 logger.error(
"SQL_CUSTOM_RESPONSE >>> Wrong response type")
89 def urlUpdate(self, urlUpdateObject, criterionsWere=None, criterionsLimit=None, criterionsOrder=None):
92 if isinstance(urlUpdateObject, list):
93 urlUpdateObjectList = urlUpdateObject
95 urlUpdateObjectList = [urlUpdateObject]
96 if criterionsWere
is not None or criterionsLimit
is not None or criterionsOrder
is not None:
97 urlUpdateObject.criterions = {}
98 if criterionsWere
is not None:
99 urlUpdateObject.criterions[dc.EventObjects.URLFetch.CRITERION_WHERE] = criterionsWere
100 if criterionsLimit
is not None:
101 urlUpdateObject.criterions[dc.EventObjects.URLFetch.CRITERION_LIMIT] = criterionsLimit
102 if criterionsOrder
is not None:
103 urlUpdateObject.criterions[dc.EventObjects.URLFetch.CRITERION_ORDER] = criterionsOrder
107 if retDRCE.eventType == dc.Constants.EVENT_TYPES.URL_UPDATE_RESPONSE:
108 if hasattr(retDRCE.eventObject.statuses,
'__iter__')
and len(retDRCE.eventObject.statuses) > 0
and \
109 retDRCE.eventObject.statuses[0]
is False:
110 logger.error(
"URL_UPDATE_RESPONSE >>> Operation failure, look db-task log")
111 ret = len([i
for i
in retDRCE.eventObject.statuses
if i])
113 logger.error(
"URL_UPDATE_RESPONSE >>> Wrong response type")
117 def urlStatus(self, urlStatusObject, useMd5Resolving=False):
121 urlStatusObject.urlType = dc.EventObjects.URLStatus.URL_TYPE_MD5
124 if retDRCE.eventType == dc.Constants.EVENT_TYPES.URL_STATUS_RESPONSE:
125 ret = retDRCE.eventObject
127 logger.error(
"URL_STATUS_RESPONSE >>> Wrong response type")
135 if retDRCE.eventType == dc.Constants.EVENT_TYPES.URL_CONTENT_RESPONSE:
136 ret = retDRCE.eventObject
138 logger.error(
"URL_CONTENT_RESPONSE >>> Wrong response type")
146 responseDRCESyncTasksCover = self.
dbTask.
process(drceSyncTasksCoverObj)
147 if responseDRCESyncTasksCover.eventType == dc.Constants.EVENT_TYPES.URL_PUT_RESPONSE:
148 for obj
in responseDRCESyncTasksCover.eventObject:
149 logger.debug(
"URL_PUT_RESPONSE: %s",
varDump(obj))
151 logger.error(
"URL_PUT_RESPONSE >>> Wrong response type")
153 if responseDRCESyncTasksCover.eventType != dc.Constants.EVENT_TYPES.URL_PUT_RESPONSE:
154 logger.error(
"URL_PUT_RESPONSE >>> Wrong response type")
162 if isinstance(urlNewObject, list):
163 urlNewList = urlNewObject
165 urlNewList = [urlNewObject]
168 if retDRCE.eventType == dc.Constants.EVENT_TYPES.URL_NEW_RESPONSE:
169 ret = len([i
for i
in retDRCE.eventObject.statuses
if i == 0])
171 logger.error(
"URL_NEW_RESPONSE >>> Wrong response type")
175 def siteNewOrUpdate(self, siteObject, properties=None, filters=None, siteId=None, stype=dc.EventObjects.SiteUpdate):
179 reqType = dc.Constants.EVENT_TYPES.SITE_NEW
180 respType = dc.Constants.EVENT_TYPES.SITE_NEW_RESPONSE
182 reqType = dc.Constants.EVENT_TYPES.SITE_UPDATE
183 respType = dc.Constants.EVENT_TYPES.SITE_UPDATE_RESPONSE
184 if siteObject
is None:
185 if siteId
is not None:
186 siteObject = stype(siteId)
187 if properties
is not None:
188 siteObject.properties = properties
189 if filters
is not None:
190 siteObject.filters = filters
191 if siteObject
is not None:
194 logger.debug(
"SITE_NEW_UPDATE_RESPONSE retDRCE: " +
varDump(retDRCE))
195 if retDRCE.eventType == respType:
196 ret = retDRCE.eventObject.statuses
198 logger.error(
"SITE_NEW_UPDATE_RESPONSE >>> Wrong response type")
200 logger.error(
"SITE_NEW_UPDATE >>> siteObject is None!")
207 if siteStatusObject
is not None:
210 if retDRCE.eventType == dc.Constants.EVENT_TYPES.SITE_STATUS_RESPONSE:
211 ret = retDRCE.eventObject
213 logger.error(
"SITE_STATUS_RESPONSE >>> Wrong response type")
215 logger.error(
"SITE_STATUS >>> Not enough incoming data")
227 if proxyStatusObject
is None:
228 logger.error(
"PROXY_STATUS: proxyObject is None!")
230 if isinstance(proxyStatusObject, list):
231 proxyStatusObjectList = proxyStatusObject
233 proxyStatusObjectList = [proxyStatusObject]
237 if retDRCE.eventType == dc.Constants.EVENT_TYPES.PROXY_STATUS_RESPONSE:
238 ret = retDRCE.eventObject
240 logger.error(
"PROXY_STATUS_RESPONSE: Wrong type of response object!")
253 if proxyUpdateObject
is not None:
254 if isinstance(proxyUpdateObject, list):
255 proxyUpdateObjectList = proxyUpdateObject
257 proxyUpdateObjectList = [proxyUpdateObject]
261 if retDRCE.eventType == dc.Constants.EVENT_TYPES.PROXY_UPDATE_RESPONSE:
262 ret = retDRCE.eventObject
264 logger.error(
"PROXY_UPDATE_RESPONSE >>> Wrong response type")
266 logger.error(
"PROXY_UPDATE >>> Not enough incoming data")
277 attributesList = attributes
if isinstance(attributes, list)
else [attributes]
280 responseDRCESyncTasksCover = self.
dbTask.
process(drceSyncTasksCoverObj)
281 if responseDRCESyncTasksCover.eventType != dc.Constants.EVENT_TYPES.ATTR_SET_RESPONSE:
282 logger.error(
"Operation 'ATTR_SET' has error: Wrong response type")
def putURLContent(self, urlPut_list)
def urlUpdate(self, urlUpdateObject, criterionsWere=None, criterionsLimit=None, criterionsOrder=None)
def siteNewOrUpdate(self, siteObject, properties=None, filters=None, siteId=None, stype=dc.EventObjects.SiteUpdate)
def process(self, drceObject)
def urlContent(self, items)
def customRequest(self, query, dbName, includeFieldsNames=dbi.EventObjects.CustomRequest.SQL_BY_INDEX)
def collectedURLsRecalculating(self, siteId)
def fieldsRecalculating(self, sites)
def urlNew(self, urlNewObject)
def siteStatus(self, siteStatusObject)
def proxyStatus(self, proxyStatusObject)
def urlStatus(self, urlStatusObject, useMd5Resolving=False)
def varDump(obj, stringify=True, strTypeMaxLen=256, strTypeCutSuffix='...', stringifyType=1, ignoreErrors=False, objectsHash=None, depth=0, indent=2, ensure_ascii=False, maxDepth=10)
def __init__(self, cfgParser)
def putAttributes(self, attributes)
def proxyUpdate(self, proxyUpdateObject)