コード例 #1
0
ファイル: builds.py プロジェクト: ojeda/infra
def builds_list(cfg: Config, branch: Sequence[str]):
    """List available builds.

    The --> indicates the build currently deployed in this environment."""
    current = get_current_key(cfg) or ''
    releases = get_releases()
    display_releases(current, set(branch), releases)
コード例 #2
0
ファイル: ce.py プロジェクト: emekoi/compiler-explorer-image
def builds_rm_old_cmd(args):
    current = get_all_current()
    all_releases = get_releases()
    max_build = max(x.version for x in all_releases)
    for release in get_releases():
        if release.key in current:
            print("Skipping {} as it is a current version".format(release))
        else:
            age = max_build - release.version
            if age > args['age']:
                if args['dry_run']:
                    print("Would remove build {}".format(release))
                else:
                    print("Removing build {}".format(release))
                    remove_release(release)
            else:
                print("Keeping build {}".format(release))
コード例 #3
0
ファイル: ce.py プロジェクト: emekoi/compiler-explorer-image
def describe_current_release(args):
    current = get_current_key(args)
    if not current:
        return "none"
    r = release_for(get_releases(), current)
    if r:
        return str(r)
    else:
        "non-standard release with s3 key '{}'".format(current)
コード例 #4
0
ファイル: ce_utils.py プロジェクト: ojeda/infra
def describe_current_release(cfg: Config) -> str:
    current = get_current_key(cfg)
    if not current:
        return "none"
    r = release_for(get_releases(), current)
    if r:
        return str(r)
    else:
        return "non-standard release with s3 key '{}'".format(current)
コード例 #5
0
ファイル: builds.py プロジェクト: ojeda/infra
def builds_rm_old(dry_run: bool, max_age: int):
    """Remove all but the last MAX_AGE builds."""
    current = get_all_current()
    max_builds: Dict[str, int] = defaultdict(int)
    for release in get_releases():
        max_builds[release.version.source] = max(
            release.version.number, max_builds[release.version.source])
    for release in get_releases():
        if release.key in current:
            print("Skipping {} as it is a current version".format(release))
        else:
            age = max_builds[release.version.source] - release.version.number
            if age > max_age:
                if dry_run:
                    print("Would remove build {}".format(release))
                else:
                    print("Removing build {}".format(release))
                    remove_release(release)
            else:
                print("Keeping build {}".format(release))
コード例 #6
0
ファイル: ce.py プロジェクト: emekoi/compiler-explorer-image
def builds_list_cmd(args):
    current = get_current_key(args)
    releases = get_releases()
    filter_branches = set(args['branch'].split(',') if args['branch'] is not None else [])
    print(RELEASE_FORMAT.format('Live', 'Branch', 'Version', 'Size', 'Hash'))
    for branch, releases in itertools.groupby(releases, lambda r: r.branch):
        for release in releases:
            if len(filter_branches) == 0 or release.branch in filter_branches:
                print(
                    RELEASE_FORMAT.format(
                        ' -->' if release.key == current else '',
                        release.branch, release.version, sizeof_fmt(release.size), str(release.hash))
                )
コード例 #7
0
ファイル: ce.py プロジェクト: iCodeIN/infra
def builds_rm_old_cmd(args):
    current = get_all_current()
    max_builds = {}
    for release in get_releases():
        if release.version not in max_builds:
            max_builds[release.version.source] = release.version
        else:
            max_builds[release.version.source] = max(
                release.version, max_builds[release.version.source])
    for release in get_releases():
        if release.key in current:
            print("Skipping {} as it is a current version".format(release))
        else:
            age = max_builds[
                release.version.source].number - release.version.number
            if age > args['age']:
                if args['dry_run']:
                    print("Would remove build {}".format(release))
                else:
                    print("Removing build {}".format(release))
                    remove_release(release)
            else:
                print("Keeping build {}".format(release))
コード例 #8
0
def print_instances(instances, number=False):
    if number:
        print '   ',
    releases = get_releases()
    print STATUS_FORMAT.format('Address', 'Instance Id', 'State', 'Type',
                               'ELB', 'Service', 'Version')
    count = 0
    for inst in instances:
        if number:
            print '{: <3}'.format(count),
        count += 1
        running_version = release_for(releases, inst.running_version)
        if running_version:
            running_version = '{} ({})'.format(running_version.version,
                                               running_version.branch)
        else:
            running_version = '(unknown {})'.format(inst.running_version)
        print STATUS_FORMAT.format(
            inst.instance.public_ip_address, inst.instance.id,
            inst.instance.state['Name'], inst.instance.instance_type,
            inst.elb_health, inst.service_status['SubState'], running_version)