From aea3254caeee57ddb2c601063966938e9c098759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Dunand?= <aurelien.dunand@smartjog.com> Date: Fri, 5 Aug 2011 09:28:15 +0200 Subject: [PATCH] Refactoring code for select one repository Signed-off-by: Seblu <sebastien.luttringer@smartjog.com> --- bin/is | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/bin/is b/bin/is index 6234f04..6540ad3 100755 --- a/bin/is +++ b/bin/is @@ -45,6 +45,13 @@ def load_repositories(args): repoman.register(repoconf) return repoman +def select_one_repository(repoman): + if len(repoman) == 0: + raise Exception("No repository selected") + elif len(repoman) > 1: + raise Exception("Please select only one repository") + return repoman[0] + def c_new(parser, args): ''' Create a new source image @@ -87,11 +94,7 @@ def c_add(parser, args): Add an image package into a repository ''' repoman = load_repositories(args) - if len(repoman) == 0: - raise Exception("No repository selected") - elif len(repoman) > 1: - raise Exception("Please select only one repository") - repo = repoman[0] + repo = select_one_repository(repoman) for image in args.path: pkg = PackageImage(image) repo.add(pkg, delete=not args.preserve) @@ -101,12 +104,8 @@ def c_del(parser, args): Remove an image package from a repository ''' repoman = load_repositories(args) - if len(repoman) == 0: - raise Exception("No repository selected") - elif len(repoman) > 1: - raise Exception("Please select only one repository") - repo = repoman[0] - repo.delete(args.image_name, args.image_version) + repo = select_one_repository(repoman) + repo.delete(args.image_name, args.image_version, keep=args.keep) def c_install(parser, args): ''' @@ -191,11 +190,7 @@ def c_update(parser, args): simg = SourceImage(args.path) repoman = load_repositories(args) - if len(repoman) == 0: - raise Exception("No repository selected") - elif len(repoman) > 1: - raise Exception("Please select only one repository") - repo = repoman[0] + repo = select_one_repository(repoman) image = simg.description["name"] version = simg.description["version"] if repo.has(image, version): @@ -244,18 +239,10 @@ def c_copy(parser, args): ''' args.repo_filter = args.repo_src repoman = load_repositories(args) - if len(repoman) == 0: - raise Exception("No repository selected") - elif len(repoman) > 1: - raise Exception("Please select only one repository") - repo_src = repoman[0] + repo_src = select_one_repository(repoman) args.repo_filter = args.repo_dst repoman = load_repositories(args) - if len(repoman) == 0: - raise Exception("No repository selected") - elif len(repoman) > 1: - raise Exception("Please select only one repository") - repo_dst = repoman[0] + repo_dst = select_one_repository(repoman) if args.image_version is None: args.image_version = repo_src.last(args.image) if args.image_version == -1: -- GitLab