def __init__(self, pattern='', klass='', devs_list='', servers_list='', hosts='', loadAll=False, log='WARNING', logger=None, tango_host='', host='', devices=''): ''' def __init__(self,pattern='', klass='',devs_list='',servers_list=''): The ServersDict can be initialized using any of the three argument lists or a wildcard for Database.get_server_list(pattern) ServersDict('*') can be used to load all servers in database ''' self.call__init__(CaselessDict, self) if logger is None: self.log = Logger('ServersDict') self.log.setLogLevel(log) else: self.log = logger self.log.debug('ServersDict(%s)' % ','.join( map(str, (pattern, klass, devs_list, servers_list, hosts, loadAll, log, logger, tango_host)))) ## proxies will keep a list of persistent device proxies self.proxies = ProxiesDict(tango_host=tango_host) ## db will keep a persistent link to PyTango database self.db = get_database() if not tango_host else get_database( *(tango_host.split(':'))) self.server_names = self.keys self.servers = self.values if loadAll: self.load_all_servers() elif klass: self.load_by_class(klass) elif devs_list: self.load_from_devs_list(devs_list) elif devices: self.load_from_devs_list(devices) elif servers_list: self.load_from_servers_list(servers_list) #elif pattern: self.load_from_servers_list(self.db.get_server_list(pattern)) elif hosts: hosts = type(hosts) is str and (',' in hosts and hosts.split(',') or [hosts]) or hosts for h in hosts: self.load_by_host(h) elif host: self.load_by_host(host) elif pattern: self.load_by_name(pattern)
def __init__(self, name='', host='', parent=None): if not name or '/' not in name: raise Exception, 'TServer_WrongServerName_%s' % name self.info = None self.name = self.get_simple_name(name) self.update_level(host, 0) self.controlled = False self.level = 0 self._classes = None self.state = None #PyTango.DevState.UNKNOWN self.log = Logger('TServer-%s' % name) if parent and parent.log.getLogLevel(): self.log.setLogLevel(parent.log.getLogLevel()) else: self.log.setLogLevel('ERROR') self.state_lock = threading.Lock() if parent: self.proxies = parent.proxies else: self.proxies = ProxiesDict() pass