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
ftests.ftest_is_host_available Namespace Reference

Functions

def isHostAvailable (url, parameters, logger=None, timeout=0.5)
 

Variables

dictionary p = {"method":0, "domain_name_resolve":1, "connect_resolve":1, "connection_timeout":0.5}
 

Function Documentation

◆ isHostAvailable()

def ftests.ftest_is_host_available.isHostAvailable (   url,
  parameters,
  logger = None,
  timeout = 0.5 
)

Definition at line 15 of file ftest_is_host_available.py.

15 def isHostAvailable(url, parameters, logger=None, timeout=0.5):
16  ret = True
17 
18  try:
19  if 'method' in parameters and int(parameters['method']) == 0:
20  from urlparse import urlparse
21  pr = urlparse(url)
22  print str(pr)
23  pr = pr.netloc.split(':')
24  if len(pr) == 1:
25  port = 80
26  else:
27  port = pr[1]
28  host = pr[0]
29  print host, port
30  if 'domain_name_resolve' in parameters and int(parameters['domain_name_resolve']) == 1:
31  import socket
32  ai = socket.getaddrinfo(host, port, 0, 0, socket.IPPROTO_TCP)
33  print ai
34  if 'connect_resolve' in parameters and int(parameters['connect_resolve']) == 1:
35  if 'connection_timeout' in parameters and float(parameters['connection_timeout']) > 0:
36  timeout = float(parameters['connection_timeout'])
37  for item in ai:
38  af, socktype, proto, canonname, sa = item
39  s = socket.socket(af, socktype, proto)
40  s.settimeout(float(timeout))
41  try:
42  s.connect(sa)
43  except Exception, err:
44  ret = False
45  print 'ERROR:', str(sa), str(err)
46  if logger is not None:
47  logger.debug("Host %s connect check error: %s", str(sa), str(err))
48  continue
49  s.close()
50  ret = True
51  break
52 
53  except Exception, err:
54  ret = False
55  print 'ERROR:', str(err)
56  if logger is not None:
57  logger.debug("Host %s availability check error: %s", str(url), str(err))
58 
59  return ret
60 
61 
def isHostAvailable(url, parameters, logger=None, timeout=0.5)

Variable Documentation

◆ p

dictionary ftests.ftest_is_host_available.p = {"method":0, "domain_name_resolve":1, "connect_resolve":1, "connection_timeout":0.5}

Definition at line 62 of file ftest_is_host_available.py.