From e79150fc4be64af176283fb2b9c81a0d490dc931 Mon Sep 17 00:00:00 2001 From: Adar Nimrod <nimrod@shore.co.il> Date: Sun, 6 Mar 2016 22:34:44 +0200 Subject: [PATCH] - Added TODO item of dry_run mode. - Starting work on command arguments. --- README.rst | 2 +- eb_prune/__init__.py | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/README.rst b/README.rst index 86bb719..4faab8c 100644 --- a/README.rst +++ b/README.rst @@ -10,4 +10,4 @@ TODO - Changelog. - README, - Testing with different Python versions with tox and flake8. -- Specify number of versions to keep. +- Specify number of versions to keep, dry-run option. diff --git a/eb_prune/__init__.py b/eb_prune/__init__.py index 8d8d7f5..c13e76c 100644 --- a/eb_prune/__init__.py +++ b/eb_prune/__init__.py @@ -6,6 +6,8 @@ from botocore import session def main(): + versions_to_keep = 400 + dry_run = False print('Pruning Elastic Beanstalk versions.') aws_session = session.get_session() beanstalk_client = aws_session.create_client('elasticbeanstalk') @@ -21,16 +23,18 @@ def main(): lambda x: (not x['VersionLabel'] in active_versions) and x['Status'] == 'UNPROCESSED', versions) old_versions = sorted(previous_versions, - key=lambda x: x.get('DateCreated'))[:-400] + key=lambda x: + x.get('DateCreated'))[:-versions_to_keep] for version in old_versions: - response = beanstalk_client.delete_application_version( - ApplicationName=version['ApplicationName'], - VersionLabel=version['VersionLabel'], - DeleteSourceBundle=True) - if response['ResponseMetadata']['HTTPStatusCode'] != 200: - raise RuntimeError( - 'Failed to delete version {0}.'.format( - version['VersionLabel'])) + if not dry_run: + response = beanstalk_client.delete_application_version( + ApplicationName=version['ApplicationName'], + VersionLabel=version['VersionLabel'], + DeleteSourceBundle=True) + if response['ResponseMetadata']['HTTPStatusCode'] != 200: + raise RuntimeError( + 'Failed to delete version {0}.'.format( + version['VersionLabel'])) print('Deleted version {0} of {1}.'.format(version['VersionLabel'], version['ApplicationName'])) print('Deleted {0} versions.'.format(len(old_versions))) -- GitLab