Dns.py (Revision , commited at)

Go to the documentation of this file.
00001 from pydim import dic_info_service, MONITORED
00002 ###########################################################################
00003 # The DIM DNS abstraction class
00004 # ###########################################################################
00005 class Dns:
00006     def __init__(self):
00007         self.dns_srv_sub = dic_info_service("DIS_DNS/SERVER_LIST", "C", self.servers_update, MONITORED, 0, self)
00008         self.servers = None
00009     def services_update(self, svcstr):
00010         self.services = []
00011         for s in string.split(svcstr[0], '\n'):
00012             if s == '': continue
00013             i = string.rfind(s, '|')
00014             j = string.rfind(s, '|', 0, i)
00015             print s, i, j
00016             if (i == len(s) - 1):
00017                 type = "SVC"
00018             else:
00019                 type = s[i + 1:(len(s))]
00020             self.services.append([ s[0:j], s[j+1:i], type])
00021         self.service_update = True
00022 
00023     def servers_update(self, srv):
00024         self.servers = []; self.server_host = []
00025         for s in string.split(srv[0], '|'):
00026             [server, host ] = string.split(s, '@')
00027             self.servers.append(server)
00028             self.server_host.append([server, host])
00029 
00030     def get_services(self, server):
00031         self.servers = []; self.server_host = []
00032         for s in string.split(srv[0], '|'):
00033             [server, host ] = string.split(s, '@')
00034             self.servers.append(server)
00035             self.server_host.append([server, host])
00036 
00037     def get_services(self, server):
00038         if (not server in self.servers): return None;
00039         self.service_update = False
00040         srv = dic_info_service(server+"/SERVICE_LIST",  "C",
00041                                 self.services_update)
00042         i = 0
00043         while (self.service_update == False and i < 50):
00044             i += 1
00045             time.sleep(0.1)
00046         return self.services
00047     def get_servers(self):
00048         while (self.servers == None):
00049             time.sleep(0.1)
00050         return self.servers
00051 
00052 

Generated on 5 Feb 2014 for PyDIM by  doxygen 1.4.7