X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=system%2FPlcapiUrlScanner.py;h=2beef07391594af92458e3a4201327be28eae39e;hb=c8e2f4e3a327181b29521583770a6f0ff68ca6eb;hp=c790bd99ca2f7c1c3669927758d6c323744e494e;hpb=65c93a296f2e481a312e7846f518eb2eaa2fc080;p=tests.git diff --git a/system/PlcapiUrlScanner.py b/system/PlcapiUrlScanner.py index c790bd9..2beef07 100755 --- a/system/PlcapiUrlScanner.py +++ b/system/PlcapiUrlScanner.py @@ -13,50 +13,57 @@ class PlcapiUrlScanner: # turns out the config has an ip but no name.. def __init__ (self, auth, hostname=None, ip=None, verbose=False): - self.auth=auth + self.auth = auth if not hostname and not ip: - raise Exception,"PlcapiUrlScanner needs _some_ input" + raise Exception, "PlcapiUrlScanner needs _some_ input" if hostname: if not ip: - try: ip=socket.gethostbyname(hostname) + try: + ip = socket.gethostbyname(hostname) except: - hostname="%s.pl.sophia.inria.fr"%hostname - ip=socket.gethostbyname(hostname) + hostname = "{}.pl.sophia.inria.fr".format(hostname) + ip = socket.gethostbyname(hostname) else: - if not hostname: hostname=socket.gethostbyaddr(ip)[0] - self.hostname=hostname - self.ip=ip - self.verbose=verbose + hostname=socket.gethostbyaddr(ip)[0] + self.hostname = hostname + self.ip = ip + self.verbose = verbose - def try_url (self,url): + def try_url (self, url): try: xmlrpclib.ServerProxy (url, verbose=self.verbose, allow_none=True).GetNodes(self.auth) - print 'YES',url + print 'YES', url return True except xmlrpclib.ProtocolError as e: - print '... (http error %s)'%e.errcode,url + print '... (http error {})'.format(e.errcode), url return False except Exception as e: - print '---',type(e).__name__,url,e - if self.verbose: traceback.print_exc() + print '---', type(e).__name__, url, e + if self.verbose: + traceback.print_exc() return False def try_url_required (self, url, required): - result=self.try_url(url) - if required and not result: return False - else: return True + result = self.try_url(url) + if required and not result: + return False + else: + return True def scan(self): - overall=True + overall = True for protocol in ['http','https']: for dest in [ self.hostname, self.ip ]: - for port in [ '',':80',':443']: - for path in ['PLCAPI','PLCAPI/']: - if protocol=='http' and port==':443': continue - if protocol=='https' and port==':80': continue + for port in [ '', ':80', ':443']: + for path in ['PLCAPI', 'PLCAPI/']: + if protocol=='http' and port==':443': + continue + if protocol=='https' and port==':80': + continue required = (protocol=='https') and (path=='PLCAPI/') - url="%s://%s%s/%s"%(protocol,dest,port,path) - if not self.try_url_required (url,required): overall=False + url="{}://{}{}/{}".format(protocol, dest, port, path) + if not self.try_url_required (url,required): + overall=False return overall from optparse import OptionParser @@ -65,15 +72,15 @@ import sys auth={'AuthMethod':'password','Username':'root@test.onelab.eu','AuthString':'test++'} def main (): - usage="%prog hostname" - parser=OptionParser() - parser.add_option("-v","--verbose",dest='verbose',action='store_true',default=False) - (options,args)=parser.parse_args() - if len(args)!=1: + usage = "%prog hostname" + parser = OptionParser() + parser.add_option("-v", "--verbose", dest='verbose', action='store_true', default=False) + (options,args) = parser.parse_args() + if len(args) != 1: parser.print_help() sys.exit(1) - hostname=args[0] - success=PlcapiUrlScanner (auth=auth, hostname=hostname,verbose=options.verbose).scan() + hostname = args[0] + success = PlcapiUrlScanner (auth=auth, hostname=hostname,verbose=options.verbose).scan() sys.exit(0 if success else -1) if __name__ == '__main__':