Skip to content
Snippets Groups Projects
Commit 39e4dbc2 authored by Sebastien Luttringer's avatar Sebastien Luttringer
Browse files

Allow del command to keep payload inside repository

new option --preserve, -p is added
parent 360723ab
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
......@@ -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)
......
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment