~andrewjbeach/juju-ci-tools/make-local-patcher

« back to all changes in this revision

Viewing changes to log_check.py

  • Committer: Curtis Hovey
  • Date: 2016-05-25 20:59:08 UTC
  • Revision ID: curtis@canonical.com-20160525205908-1yndw393rgkmxxcc
Revert git_gate.py change.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/env python
2
 
"""Simple looped check over provided file for regex content."""
3
 
from __future__ import print_function
4
 
 
5
 
import argparse
6
 
import os
7
 
import subprocess
8
 
import sys
9
 
import time
10
 
 
11
 
 
12
 
class check_result:
13
 
    success = 0
14
 
    failure = 1
15
 
    exception = 2
16
 
 
17
 
 
18
 
def check_file(check_string, file_path):
19
 
    print('Checking for:\n{}'.format(check_string))
20
 
    for _ in range(0, 10):
21
 
        try:
22
 
            subprocess.check_call(
23
 
                ['sudo', 'egrep', check_string, file_path])
24
 
            print('Log content found. No need to continue.')
25
 
            return check_result.success
26
 
        except subprocess.CalledProcessError as e:
27
 
            if e.returncode == 1:
28
 
                time.sleep(1)
29
 
            else:
30
 
                return check_result.exception
31
 
    print('Unexpected error with file check.')
32
 
    return check_result.failure
33
 
 
34
 
 
35
 
def raise_if_file_not_found(file_path):
36
 
    if not os.path.exists(file_path):
37
 
        raise ValueError('File not found: {}'.format(file_path))
38
 
 
39
 
 
40
 
def parse_args(argv=None):
41
 
    parser = argparse.ArgumentParser(
42
 
        description='File content check.')
43
 
    parser.add_argument(
44
 
        'regex', help='Regex string to check file with.')
45
 
    parser.add_argument(
46
 
        'file_path', help='Path to file to check.')
47
 
    return parser.parse_args(argv)
48
 
 
49
 
 
50
 
def main(argv=None):
51
 
    args = parse_args(argv)
52
 
    try:
53
 
        raise_if_file_not_found(args.file_path)
54
 
    except ValueError as e:
55
 
        print(e)
56
 
        sys.exit(check_result.exception)
57
 
 
58
 
    sys.exit(check_file(args.regex, args.file_path))
59
 
 
60
 
 
61
 
if __name__ == '__main__':
62
 
    sys.exit(main())