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)
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))
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)
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)
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))
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)) )
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))
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)