HCE Project Python language Distributed Tasks Manager Application, Distributed Crawler Application and client API bindings.  2.0.0-chaika
Hierarchical Cluster Engine Python language binding
FieldRecalculatorTask.py
Go to the documentation of this file.
1 '''
2 @package: dc
3 @author scorp
4 @link: http://hierarchical-cluster-engine.com/
5 @copyright: Copyright © 2013-2014 IOIX Ukraine
6 @license: http://hierarchical-cluster-engine.com/license/
7 @since: 0.1
8 '''
9 
10 import copy
11 from dc_db.BaseTask import BaseTask
12 from dc_db.FieldRecalculator import FieldRecalculator
13 from dtm.EventObjects import GeneralResponse # pylint: disable=unused-import
14 import app.Utils as Utils # pylint: disable=F0401
15 
16 logger = Utils.MPLogger().getLogger()
17 
18 
19 # #class implemented all logic necessary to process SiteCleanUp request
20 #
22 
23  # #constructor
24  #
25  def __init__(self):
26  super(FieldRecalculatorTask, self).__init__()
28 
29 
30  # #make all necessary actions to update site into in mysql db
31  #
32  # @param siteRecalculatorObj instance of SiteRecalculatorObj object
33  # @param queryCallback function for queries execution
34  # @return generalResponse instance of GeneralResponse object
35  def process(self, siteRecalculatorObjs, queryCallback):
36  response = GeneralResponse()
37  for siteRecalculatorObj in siteRecalculatorObjs:
38  if hasattr(siteRecalculatorObj, "criterions") and siteRecalculatorObj.criterions is not None:
39  siteIds = self.fetchByCriterions(siteRecalculatorObj.criterions, queryCallback)
40  if siteIds is not None and hasattr(siteIds, '__iter__'):
41  for siteId in siteIds:
42  localSiteRecalculatorObj = copy.deepcopy(siteRecalculatorObj)
43  localSiteRecalculatorObj.criterions = None
44  localSiteRecalculatorObj.siteId = siteId
45  siteRecalculatorObjs.append(localSiteRecalculatorObj)
46  for siteRecalculatorObj in siteRecalculatorObjs:
47  response.statuses.append(siteRecalculatorObj.siteId)
48  self.recalculator.commonRecalc(siteRecalculatorObj.siteId, queryCallback, siteRecalculatorObj.recalcType)
49  return response
GeneralResponse event object, represents general state response for multipurpose usage.
def process(self, siteRecalculatorObjs, queryCallback)
def fetchByCriterions(self, criterions, queryCallback)
Definition: BaseTask.py:55