From 39e4dbc299f4f3cdf3b2af4ffe1bacb66dae9041 Mon Sep 17 00:00:00 2001 From: Sebastien Luttringer <sebastien.luttringer@smartjog.com> Date: Thu, 3 Nov 2011 14:46:03 +0100 Subject: [PATCH] Allow del command to keep payload inside repository new option --preserve, -p is added --- bin/is | 4 +++- completion/bash/is | 2 +- installsystems/repository.py | 7 +++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/bin/is b/bin/is index 9af1d94..e4c91e3 100755 --- a/bin/is +++ b/bin/is @@ -163,7 +163,7 @@ def c_del(parser, args): repo.config.name)) if not confirm(): raise Exception("Aborted!") - repo.delete(img.name, img.version) + repo.delete(img.name, img.version, payloads=not args.preserve) def c_diff(parser, args): ''' @@ -412,6 +412,8 @@ p_del.add_argument("-b", "--best", action="store_true", default=False, help="in best mode, image is the most recent in all repositories") p_del.add_argument("-f", "--force", action="store_true", default=False, help="delete image without confirmation") +p_del.add_argument("-p", "--preserve", action="store_true", default=False, + help="preserve payloads. doesn't remove it from repository") p_del.set_defaults(func=c_del) # diff command parser diff --git a/completion/bash/is b/completion/bash/is index a9b1eea..e91f87f 100644 --- a/completion/bash/is +++ b/completion/bash/is @@ -79,7 +79,7 @@ _is() { (( args > 2 )) && _image && _repo ;; del) - [[ "$cur" == -* ]] && _opt '-h --help -b --best -f --force' && return 0 + [[ "$cur" == -* ]] && _opt '-h --help -b --best -f --force -p --preserve' && return 0 _image ;; diff) diff --git a/installsystems/repository.py b/installsystems/repository.py index e10d389..d1811bc 100644 --- a/installsystems/repository.py +++ b/installsystems/repository.py @@ -287,7 +287,7 @@ class Repository(object): else: arrow("Nothing to clean") - def delete(self, name, version): + def delete(self, name, version, payloads=True): ''' Delete an image from repository ''' @@ -307,8 +307,11 @@ class Repository(object): self.db.ask("DELETE FROM image WHERE md5 = ?", (md5s[0],)).fetchone() self.db.commit() - # Removing script image + # Removing files arrow("Removing files from pool") + # if asked don't remove payloads + if not payloads: + md5s = [ md5s[0] ] arrowlevel(1) for md5 in md5s: self._remove_file(md5) -- GitLab