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
ProxyDeleteTask.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.ProxyStatusTask import ProxyStatusTask
13 import dc_db.Constants as Constants
14 from dtm.EventObjects import GeneralResponse
15 import app.Utils as Utils # pylint: disable=F0401
16 
17 logger = Utils.MPLogger().getLogger()
18 
19 
20 # # ProxyDeleteTask Class, implements Proxy Delete task functionality
21 #
23 
24 
25  # #Class constructor
26  #
27  def __init__(self):
28  super(ProxyDeleteTask, self).__init__()
29 
30 
31  # #make all necessary actions to delete Proxies from mysql db
32  #
33  # @param proxyDeletes of ProxyDelete objects
34  # @param queryCallback function for queries execution
35  # @return generalResponse instance of GeneralResponse object
36  def process(self, proxyDeletes, queryCallback):
37  generalResponse = GeneralResponse()
38  for proxyDelete in proxyDeletes:
39  localProxyDeletes = []
40  if proxyDelete.siteId is None or proxyDelete.host is None and proxyDelete.criterions is not None:
41  result = ProxyStatusTask.execCriterion(proxyDelete, queryCallback, proxyDelete.siteId)
42  for elem in result:
43  localProxy = copy.deepcopy(proxyDelete)
44  if localProxy.siteId is None:
45  localProxy.siteId = elem["Site_Id"]
46  if localProxy.host is None:
47  localProxy.host = elem["Host"]
48  localProxyDeletes.append(localProxy)
49  else:
50  localProxyDeletes.append(proxyDelete)
51  logger.debug(">>> len(localProxyStatuses) = " + str(len(localProxyDeletes)))
52  for localProxy in localProxyDeletes:
53  if self.deleteProxy(localProxy, queryCallback):
54  generalResponse.statuses.append(True)
55  else:
56  generalResponse.statuses.append(False)
57  return generalResponse
58 
59 
60  # #deleteProxy deletes one proxy record from DB
61  #
62  # @param localProxy - incoming ProxyDelete object
63  # @param queryCallback function for queries execution
64  # @return True
65  def deleteProxy(self, localProxy, queryCallback):
66  DELETE_PROXY_TEMPLATE = "DELETE FROM `sites_proxy` WHERE `Site_Id` = '%s' AND `Host` = '%s'"
67  query = DELETE_PROXY_TEMPLATE % (localProxy.siteId, localProxy.host)
68  queryCallback(query, Constants.PRIMARY_DB_ID)
69  return True
GeneralResponse event object, represents general state response for multipurpose usage.
def deleteProxy(self, localProxy, queryCallback)
def process(self, proxyDeletes, queryCallback)