00001 from pydim import dic_info_service, MONITORED
00002
00003
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