(self, logfile, log, pos, ctime, ecode=None, enc='utf-8')
| 482 | return None |
| 483 | |
| 484 | def read_log(self, logfile, log, pos, ctime, ecode=None, enc='utf-8'): |
| 485 | import re |
| 486 | completed = True |
| 487 | idx = 0 |
| 488 | c = re.compile(r"(\d+),(.*$)") |
| 489 | |
| 490 | # If file is not present then |
| 491 | if not os.path.isfile(logfile): |
| 492 | return 0, True |
| 493 | |
| 494 | with open(logfile, 'rb') as f: |
| 495 | eofs = os.path.getsize(logfile) |
| 496 | f.seek(pos, 0) |
| 497 | if pos == eofs and ecode is None: |
| 498 | completed = False |
| 499 | |
| 500 | while pos < eofs: |
| 501 | idx += 1 |
| 502 | line = f.readline() |
| 503 | line = line.decode(enc, 'replace') |
| 504 | r = c.split(line) |
| 505 | if len(r) < 3: |
| 506 | # ignore this line |
| 507 | pos = f.tell() |
| 508 | continue |
| 509 | if r[1] > ctime: |
| 510 | completed = False |
| 511 | break |
| 512 | log.append([r[1], r[2]]) |
| 513 | pos = f.tell() |
| 514 | if idx >= 1024: |
| 515 | completed = False |
| 516 | break |
| 517 | if pos == eofs: |
| 518 | if ecode is None: |
| 519 | completed = False |
| 520 | break |
| 521 | |
| 522 | return pos, completed |
| 523 | |
| 524 | def update_cloud_details(self): |
| 525 | """ |
no test coverage detected