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