|
135 |
if self.__ldap_base is None: |
135 |
if self.__ldap_base is None: |
136 |
self.__ldap_base = ucr.get( 'ldap/base', None ) |
136 |
self.__ldap_base = ucr.get( 'ldap/base', None ) |
137 |
|
137 |
|
138 |
servers = [] |
|
|
139 |
for host in hostlist: |
138 |
for host in hostlist: |
140 |
if host.startswith( 'systemrole:' ): |
139 |
if host.startswith( 'systemrole:' ): |
141 |
host = host[ len( 'systemrole:' ) : ] |
140 |
role = host[ len( 'systemrole:' ) : ] |
142 |
if host == 'domaincontroller_master': |
141 |
if role.lower() == ucr.get('system/role').lower(): |
143 |
servers = dc_master.lookup( None, self.lo, None, base=self.__ldap_base ) |
142 |
hosts.append(ucr['hostname']) |
144 |
elif host == 'domaincontroller_backup': |
|
|
145 |
servers = dc_backup.lookup( None, self.lo, None, base=self.__ldap_base ) |
146 |
elif host == 'domaincontroller_slave': |
147 |
servers = dc_slave.lookup( None, self.lo, None, base=self.__ldap_base ) |
148 |
elif host == 'memberserver': |
149 |
servers = memberserver.lookup( None, self.lo, None, base=self.__ldap_base ) |
150 |
|
151 |
hosts.extend( filter( lambda server: 'name' in server, servers ) ) |
152 |
|
153 |
elif host.startswith( 'service:' ): |
143 |
elif host.startswith( 'service:' ): |
154 |
host = host[ len( 'service:' ) : ] |
144 |
service = host[ len( 'service:' ) : ] |
155 |
for role in ACLs._systemroles: |
145 |
for role in ACLs._systemroles: |
156 |
servers += role.lookup( None, self.lo, 'univentionService=%s' % host, base=self.__ldap_base ) |
146 |
servers = role.lookup( None, self.lo, 'univentionService=%s' % service, base=self.__ldap_base ) |
157 |
|
147 |
for server in servers: |
158 |
hosts.extend( filter( lambda server: 'name' in server, servers ) ) |
148 |
hosts.append(server.get('name')) |
159 |
|
|
|
160 |
elif host == '*': |
149 |
elif host == '*': |
161 |
if not self.__ldap_base in self.__cache: |
150 |
hosts.append(ucr['hostname']) |
162 |
self.__cache[ self.__ldap_base ] = [ ] |
|
|
163 |
|
151 |
|
164 |
for role in ACLs._systemroles: |
152 |
return hosts |
165 |
servers += role.lookup( None, self.lo, None, base=self.__ldap_base ) |
|
|
166 |
|
153 |
|
167 |
new_hosts = filter( lambda server: 'name' in server, servers ) |
|
|
168 |
|
169 |
hosts.extend( new_hosts ) |
170 |
self.__cache[ self.__ldap_base ].extend( new_hosts ) |
171 |
else: |
172 |
hosts += self.__cache[ self.__ldap_base ] |
173 |
|
174 |
else: |
175 |
for role in ACLs._systemroles: |
176 |
servers += role.lookup( None, self.lo, 'cn=%s' % host, base=self.__ldap_base ) |
177 |
|
178 |
hosts.extend( filter( lambda server: 'name' in server, servers ) ) |
179 |
|
180 |
return map( lambda server: server[ 'name' ], hosts ) |
181 |
|
182 |
def __parse_command( self, command ): |
154 |
def __parse_command( self, command ): |
183 |
if command.find( ':' ) != -1: |
155 |
if command.find( ':' ) != -1: |
184 |
data = command.split( ':' )[ 1 ] |
156 |
data = command.split( ':' )[ 1 ] |