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
ProxyFindTask.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 from dc_db.BaseTask import BaseTask
11 from dc_db.ProxyStatusTask import ProxyStatusTask
12 from dc_db.SiteTask import SiteTask
13 import dc.EventObjects
14 import app.Utils as Utils # pylint: disable=F0401
15 
16 logger = Utils.MPLogger().getLogger()
17 
18 
19 # # ProxyFindTask Class, implements Proxy Find task functionality
20 #
22 
23 
24  # #Class constructor
25  #
26  def __init__(self):
27  super(ProxyFindTask, self).__init__()
28 
29 
30  # #make all necessary actions to finding and returning Proxies from mysql db
31  #
32  # @param urls list of Proxies objects
33  # @param queryCallback function for queries execution
34  # @return list of finding proxies
35  def process(self, proxyFinds, queryCallback):
36  ret = []
37  for proxyFind in proxyFinds:
38  localSiteIds = []
39  if proxyFind.siteId is None:
40  if proxyFind.siteCriterions is not None and len(proxyFind.siteCriterions) > 0:
41  localSiteIds = SiteTask.execSiteCriterions(proxyFind.siteCriterions, queryCallback)
42  else:
43  localSiteIds.append(None)
44  else:
45  localSiteIds.append(proxyFind.siteId)
46  for localSiteId in localSiteIds:
47  ret += self.fetchProxy(proxyFind, queryCallback, localSiteId)
48  return ret
49 
50 
51  # #fetchProxy method exctacts, using criterions, and returns list of Proxy objects
52  #
53  # @param proxyFind incoming ProxyFind object
54  # @param queryCallback function for queries execution
55  # @param localSiteId incoming sitesId, may be None
56  # @return list of Proxy objects
57  def fetchProxy(self, proxyFind, queryCallback, localSiteId):
58  ret = []
59  if localSiteId is None:
60  additionWhere = None
61  else:
62  additionWhere = "`Site_Id` = '%s'" % localSiteId
63  result = ProxyStatusTask.execCriterion(proxyFind, queryCallback, localSiteId, additionWhere)
64  if hasattr(result, '__iter__'):
65  for elem in result:
66  localProxy = dc.EventObjects.Proxy(elem["Site_Id"], elem["Host"])
67  localProxy.id = elem["Id"]
68  localProxy.domains = elem["Domains"]
69  localProxy.priority = elem["Priority"]
70  localProxy.state = elem["State"]
71  localProxy.countryCode = elem["CountryCode"]
72  localProxy.countryName = elem["CountryName"]
73  localProxy.regionCode = elem["RegionCode"]
74  localProxy.regionName = elem["RegionName"]
75  localProxy.cityName = elem["CityName"]
76  localProxy.zipCode = elem["ZipCode"]
77  localProxy.timeZone = elem["TimeZone"]
78  localProxy.latitude = elem["Latitude"]
79  localProxy.longitude = elem["Longitude"]
80  localProxy.metroCode = elem["MetroCode"]
81  localProxy.faults = elem["Faults"]
82  localProxy.faultsMax = elem["FaultsMax"]
83  localProxy.categoryId = elem["Category_Id"]
84  localProxy.limits = elem["Limits"]
85  localProxy.description = elem["Description"]
86  localProxy.cDate = elem["CDate"]
87  localProxy.uDate = elem["UDate"]
88  ret.append(localProxy)
89  return ret
def fetchProxy(self, proxyFind, queryCallback, localSiteId)
def process(self, proxyFinds, queryCallback)