~abentley/ci-director/building-trumps-result

« back to all changes in this revision

Viewing changes to cidirector/update_outcome.py

  • Committer: Aaron Bentley
  • Date: 2016-08-29 15:01:47 UTC
  • mfrom: (179.1.4 log-exceptions)
  • Revision ID: aaron.bentley@canonical.com-20160829150147-547c84wu7unvrao2
Add exception logging to start-builds, update-outcome.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
 
4
4
from argparse import ArgumentParser
5
5
from datetime import (
6
 
    datetime,
7
6
    timedelta,
8
7
    )
9
8
import errno
12
11
import re
13
12
from socket import setdefaulttimeout
14
13
import json
 
14
import sys
15
15
 
16
16
from cidirector import (
17
17
    BaseResultJudge,
42
42
    ensure_dir,
43
43
    from_jenkins_timestamp,
44
44
    locked_open_rw,
 
45
    log_exceptions,
45
46
    )
46
47
 
47
48
 
659
660
        self.write_json(mongo_name, mongo_data, make_dir=True)
660
661
 
661
662
 
662
 
def main():
663
 
    """Entry point for update-outcome script."""
664
 
    args = parse_args()
665
 
    setup_logging(args.log_path, args.log_count, args.verbose)
 
663
def update_outcome():
666
664
    config = ConfigReader.read_config()
667
665
    setdefaulttimeout(30)
668
666
    jenkins = make_jenkins(config)
669
667
    outcome_dir = os.path.join(os.environ['HOME'],
670
668
                               '.config/ci-director-outcome')
671
669
    with OutcomeState(outcome_dir) as state:
672
 
        by_revision_build, cloud_health, new_last_completed = scan_new_builds(
673
 
            state.data, jenkins)
 
670
        snb_result = scan_new_builds(state.data, jenkins)
 
671
        by_revision_build, cloud_health, new_last_completed = snb_result
674
672
        cloud_health_builds = BuildFiles.for_cloud_health(state)
675
673
        list(cloud_health_builds.update_files(cloud_health))
676
674
        revision_build_files = BuildFiles.for_revision_builds(state)
684
682
            health_match_data, cloud_health_build_dict)
685
683
        for revision_build, build_data in by_all_revision_build.items():
686
684
            state.write_mongo_data(
687
 
                revision_build, build_data, last_build_sickly[revision_build],
688
 
                substrates_health)
 
685
                revision_build, build_data,
 
686
                last_build_sickly[revision_build], substrates_health)
689
687
        state.data.update(new_last_completed)
690
688
 
691
689
 
 
690
def main():
 
691
    """Entry point for update-outcome script."""
 
692
    args = parse_args()
 
693
    setup_logging(args.log_path, args.log_count, args.verbose)
 
694
    with log_exceptions(logging.getLogger()) as result:
 
695
        update_outcome()
 
696
    return result.exit_status
 
697
 
 
698
 
692
699
if __name__ == '__main__':
693
 
    main()
 
700
    sys.exit(main())