Lines 135-141
class SessionClient(object):
|
Link Here
|
---|
|
135 |
CORE.warn('SessionClient(0x%x): connection to UMC server failed' % (id(self),)) |
135 |
CORE.warn('SessionClient(0x%x): connection to UMC server failed' % (id(self),)) |
136 |
raise NoSocketError('Connection failed') |
136 |
raise NoSocketError('Connection failed') |
137 |
self._auth_response = None |
137 |
self._auth_response = None |
138 |
self._auth_response_queue = None |
|
|
139 |
self._requestid2response_queue = {} |
138 |
self._requestid2response_queue = {} |
140 |
self._lock = threading.Lock() |
139 |
self._lock = threading.Lock() |
141 |
self.ip = ip |
140 |
self.ip = ip |
Lines 143-162
class SessionClient(object):
|
Link Here
|
---|
|
143 |
def _authenticated(self, success, response): |
142 |
def _authenticated(self, success, response): |
144 |
"""Callback function for 'authenticated' from UMCP-Server.""" |
143 |
"""Callback function for 'authenticated' from UMCP-Server.""" |
145 |
CORE.process('SessionClient(0x%x): _authenticated: success=%s status=%s message=%s result=%r' % (id(self), success, response.status, response.message, response.result)) |
144 |
CORE.process('SessionClient(0x%x): _authenticated: success=%s status=%s message=%s result=%r' % (id(self), success, response.status, response.message, response.result)) |
146 |
self._auth_response = self._auth_response_in |
145 |
self._auth_response = response |
147 |
self._auth_response.status = response.status |
146 |
self._response(response) |
148 |
self._auth_response.result = response.result |
|
|
149 |
self._auth_response.message = response.message |
150 |
self._auth_response_queue.put(self._auth_response) |
151 |
# release queue object |
152 |
self._auth_response_queue = None |
153 |
|
147 |
|
154 |
def authenticate_user(self, request, response_queue): |
148 |
def authenticate_user(self, request, response_queue): |
155 |
"""Send authentication request to UMC server.""" |
149 |
"""Send authentication request to UMC server.""" |
156 |
CORE.info('SessionClient(0x%x): authenticate_user: sending authentication request for user %r' % (id(self), request.body.get('username'))) |
150 |
CORE.info('SessionClient(0x%x): authenticate_user: sending authentication request for user %r' % (id(self), request.body.get('username'))) |
157 |
self._auth_response_in = Response(request) |
151 |
self.send_request(request, response_queue) |
158 |
self._auth_response_queue = response_queue |
|
|
159 |
self.client.authenticate(request) |
160 |
|
152 |
|
161 |
def _response(self, response): |
153 |
def _response(self, response): |
162 |
"""Queue response from UMC server.""" |
154 |
"""Queue response from UMC server.""" |
Lines 182-188
class SessionClient(object):
|
Link Here
|
---|
|
182 |
finally: |
174 |
finally: |
183 |
self._lock.release() |
175 |
self._lock.release() |
184 |
try: |
176 |
try: |
185 |
self.client.request(request) |
177 |
if request.command == 'AUTH': |
|
|
178 |
self.client.authenticate(request) |
179 |
else: |
180 |
self.client.request(request) |
186 |
except IOError: |
181 |
except IOError: |
187 |
CORE.error(traceback.format_exc()) |
182 |
CORE.error(traceback.format_exc()) |
188 |
self.client.disconnect() |
183 |
self.client.disconnect() |
Lines 196-211
class SessionClient(object):
|
Link Here
|
---|
|
196 |
' * service univention-management-console-web-server restart', |
191 |
' * service univention-management-console-web-server restart', |
197 |
'Otherwise please contact an administrator or try again later.' |
192 |
'Otherwise please contact an administrator or try again later.' |
198 |
)) |
193 |
)) |
199 |
if self._auth_response_queue is not None: |
|
|
200 |
self._auth_response.status = SERVICE_UNAVAILABLE |
201 |
self._auth_response.message = message |
202 |
self._auth_response_queue.put(self._auth_response) |
203 |
self._auth_response_queue = None |
204 |
for id, (queue, request) in self._requestid2response_queue.items(): |
194 |
for id, (queue, request) in self._requestid2response_queue.items(): |
205 |
self._requestid2response_queue.pop(id) |
195 |
self._requestid2response_queue.pop(id) |
206 |
response = Response(request) |
196 |
response = Response(request) |
207 |
response.status = SERVICE_UNAVAILABLE |
197 |
response.status = SERVICE_UNAVAILABLE |
208 |
response.message = message |
198 |
response.message = message |
|
|
199 |
if request.command == 'AUTH': |
200 |
self._auth_response = response |
209 |
queue.put(response) |
201 |
queue.put(response) |
210 |
|
202 |
|
211 |
def cleanup_request(self, request): |
203 |
def cleanup_request(self, request): |