Revision 64a3c0de kamaki/clients/__init__.py

b/kamaki/clients/__init__.py
100 100

  
101 101
    LOG_TOKEN = False
102 102
    LOG_DATA = False
103
    LOG_PID = False
103 104

  
104 105

  
105 106
class RequestManager(Logged):
......
143 144
        self.scheme, self.netloc = self._connection_info(url, path, params)
144 145

  
145 146
    def dump_log(self):
146
        sendlog.info('%s %s://%s%s\t[%s]' % (
147
            self.method, self.scheme, self.netloc, self.path, self))
147
        plog = '\t[%s]' if self.LOG_PID else ''
148
        sendlog.info('- -  -   -     -        -             -')
149
        sendlog.info('%s %s://%s%s%s' % (
150
            self.method, self.scheme, self.netloc, self.path, plog))
148 151
        for key, val in self.headers.items():
149 152
            if (not self.LOG_TOKEN) and key.lower() == 'x-auth-token':
150 153
                continue
151
            sendlog.info('  %s: %s\t[%s]' % (key, val, self))
154
            sendlog.info('  %s: %s%s' % (key, val, plog))
152 155
        if self.data:
153
            sendlog.info('data size:%s\t[%s]' % (len(self.data), self))
156
            sendlog.info('data size:%s%s' % (len(self.data), plog))
154 157
            if self.LOG_DATA:
155 158
                sendlog.info(self.data)
156 159
        else:
157
            sendlog.info('data size:0\t[%s]' % self)
160
            sendlog.info('data size:0%s' % plog)
158 161
        sendlog.info('')
159 162

  
160 163
    def perform(self, conn):
......
177 180
                wait = 0.03 * random()
178 181
                sleep(wait)
179 182
                keep_trying -= wait
180
        logmsg = 'Kamaki Timeout %s %s\t[%s]' % (self.method, self.path, self)
183
        plog = '\t[%s]' if self.LOG_PID else ''
184
        logmsg = 'Kamaki Timeout %s %s%s' % (self.method, self.path, plog)
181 185
        recvlog.debug(logmsg)
182 186
        raise ClientError('HTTPResponse takes too long - kamaki timeout')
183 187

  
......
210 214
                        **pool_kw) as connection:
211 215
                    self.request.LOG_TOKEN = self.LOG_TOKEN
212 216
                    self.request.LOG_DATA = self.LOG_DATA
217
                    self.request.LOG_PID = self.LOG_PID
213 218
                    r = self.request.perform(connection)
214
                    recvlog.info('\n%s <-- %s <-- [req: %s]\n' % (
215
                        self, r, self.request))
219
                    plog = ''
220
                    if self.LOG_PID:
221
                        recvlog.info('\n%s <-- %s <-- [req: %s]\n' % (
222
                            self, r, self.request))
223
                        plog = '\t[%s]' % self
216 224
                    self._request_performed = True
217 225
                    self._status_code, self._status = r.status, unquote(
218 226
                        r.reason)
219 227
                    recvlog.info(
220
                        '%d %s\t[p: %s]' % (
221
                            self.status_code, self.status, self))
228
                        '%d %s%s' % (
229
                            self.status_code, self.status, plog))
222 230
                    self._headers = dict()
223 231
                    for k, v in r.getheaders():
224 232
                        if (not self.LOG_TOKEN) and (
......
226 234
                            continue
227 235
                        v = unquote(v)
228 236
                        self._headers[k] = v
229
                        recvlog.info('  %s: %s\t[p: %s]' % (k, v, self))
237
                        recvlog.info('  %s: %s%s' % (k, v, plog))
230 238
                    self._content = r.read()
231
                    recvlog.info('data size: %s\t[p: %s]' % (
232
                        len(self._content) if self._content else 0,
233
                        self))
239
                    recvlog.info('data size: %s%s' % (
240
                        len(self._content) if self._content else 0, plog))
234 241
                    if self.LOG_DATA and self._content:
235
                        recvlog.info('%s\t[p: %s]' % (self._content, self))
242
                        recvlog.info('%s%s' % (self._content, plog))
243
                    sendlog.info('-             -        -     -   -  - -')
236 244
                break
237 245
            except Exception as err:
238 246
                if isinstance(err, HTTPException):
......
246 254
                        '\n'.join(['%s' % type(err)] + format_stack()))
247 255
                    raise ClientError(
248 256
                        'Failed while http-connecting to %s (%s)' % (
249
                            self.request.url,
250
                            err))
257
                            self.request.url, err))
251 258

  
252 259
    @property
253 260
    def status_code(self):
......
317 324
            self._exception = e
318 325

  
319 326

  
320
class Client(object):
327
class Client(Logged):
321 328

  
322 329
    MAX_THREADS = 7
323 330
    DATE_FORMATS = ['%a %b %d %H:%M:%S %Y', ]
324
    LOG_TOKEN = False
325
    LOG_DATA = False
326 331
    CONNECTION_RETRY_LIMIT = 0
327 332

  
328 333
    def __init__(self, base_url, token):
......
405 410
            if data:
406 411
                headers.setdefault('Content-Length', '%s' % len(data))
407 412

  
408
            sendlog.debug('\n\nCMT %s@%s\t[%s]', method, self.base_url, self)
413
            plog = '\t[%s]' if self.LOG_PID else ''
414
            sendlog.debug('\n\nCMT %s@%s%s', method, self.base_url, plog)
409 415
            req = RequestManager(
410 416
                method, self.base_url, path,
411 417
                data=data, headers=headers, params=params)
412 418
            #  req.log()
413 419
            r = ResponseManager(
414 420
                req, connection_retry_limit=self.CONNECTION_RETRY_LIMIT)
415
            r.LOG_TOKEN, r.LOG_DATA = self.LOG_TOKEN, self.LOG_DATA
421
            r.LOG_TOKEN, r.LOG_DATA, r.LOG_PID = (
422
                self.LOG_TOKEN, self.LOG_DATA, self.LOG_PID)
416 423
        finally:
417 424
            self.headers = dict()
418 425
            self.params = dict()

Also available in: Unified diff