Loading bin/is +4 −2 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ def c_list(parser, args): ''' repoman = load_repositories(args) for pattern in args.image: repoman.show_images(pattern, o_long=args.long, o_json=args.json, repoman.show_images(pattern, all_version=args.all_version, o_long=args.long, o_json=args.json, o_md5=args.md5, o_date=args.date, o_author=args.author, o_size=args.size, o_url=args.url, o_description=args.description) Loading Loading @@ -505,7 +505,9 @@ p_install.set_defaults(func=c_install, subparser=p_install) # list command parser p_list = subparsers.add_parser("list", help=c_list.__doc__.lower()) p_list.add_argument("-a", "--author", action="store_true", default=False, p_list.add_argument("-a", "--all-version", action="store_true", default=False, help="list all versions of the same image") p_list.add_argument("-A", "--author", action="store_true", default=False, help="display image author") p_list.add_argument("-d", "--date", action="store_true", default=False, help="display image date") Loading completion/bash/is +1 −1 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ _is() { (( args > 2 )) && _filedir ;; list) [[ "$cur" == -* ]] && _opt '-h --help -l --long -j --json -m --md5 -s --size -d --date -a --author -u --url -D --description --no-sync' && return 0 [[ "$cur" == -* ]] && _opt '-h --help -l --long -j --json -m --md5 -s --size -d --date -a --all-version -A --author -u --url -D --description --no-sync' && return 0 _remote_image ;; move) Loading installsystems/repository.py +14 −3 Original line number Diff line number Diff line Loading @@ -595,7 +595,7 @@ class RepositoryManager(object): ''' return [ r.config.name for r in self.repos if r.config.offline ] def images(self, pattern): def images(self, pattern, all_version=True): ''' Return a list of available images ''' Loading @@ -609,6 +609,17 @@ class RepositoryManager(object): for k in images.keys(): if not fnmatch.fnmatch(k, pattern): del images[k] # filter multiple versions if not all_version: for repo in set((images[i]["repo"] for i in images)): for img in set((images[i]["name"] for i in images if images[i]["repo"] == repo)): versions = [ images[i]['version'] for i in images if images[i]["repo"] == repo and images[i]["name"] == img ] f = lambda x,y: x if istools.compare_versions(x, y) > 0 else y last = reduce(f, versions) versions.remove(last) for rmv in versions: del images["%s/%s:%s" % (repo, img, rmv)] return images def get(self, name, version=None, best=False): Loading Loading @@ -671,7 +682,7 @@ class RepositoryManager(object): s += " (%s)" % repo.config.path out(s) def show_images(self, pattern, o_json=False, o_long=False, def show_images(self, pattern, all_version=True, o_json=False, o_long=False, o_md5=False, o_date=False, o_author=False, o_size=False, o_url=False, o_description=False): ''' Loading @@ -681,7 +692,7 @@ class RepositoryManager(object): all images parameter can be given in arguments to displayed ''' # get image list images = self.images(pattern) images = self.images(pattern, all_version) # display result if o_json: s = json.dumps(images) Loading Loading
bin/is +4 −2 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ def c_list(parser, args): ''' repoman = load_repositories(args) for pattern in args.image: repoman.show_images(pattern, o_long=args.long, o_json=args.json, repoman.show_images(pattern, all_version=args.all_version, o_long=args.long, o_json=args.json, o_md5=args.md5, o_date=args.date, o_author=args.author, o_size=args.size, o_url=args.url, o_description=args.description) Loading Loading @@ -505,7 +505,9 @@ p_install.set_defaults(func=c_install, subparser=p_install) # list command parser p_list = subparsers.add_parser("list", help=c_list.__doc__.lower()) p_list.add_argument("-a", "--author", action="store_true", default=False, p_list.add_argument("-a", "--all-version", action="store_true", default=False, help="list all versions of the same image") p_list.add_argument("-A", "--author", action="store_true", default=False, help="display image author") p_list.add_argument("-d", "--date", action="store_true", default=False, help="display image date") Loading
completion/bash/is +1 −1 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ _is() { (( args > 2 )) && _filedir ;; list) [[ "$cur" == -* ]] && _opt '-h --help -l --long -j --json -m --md5 -s --size -d --date -a --author -u --url -D --description --no-sync' && return 0 [[ "$cur" == -* ]] && _opt '-h --help -l --long -j --json -m --md5 -s --size -d --date -a --all-version -A --author -u --url -D --description --no-sync' && return 0 _remote_image ;; move) Loading
installsystems/repository.py +14 −3 Original line number Diff line number Diff line Loading @@ -595,7 +595,7 @@ class RepositoryManager(object): ''' return [ r.config.name for r in self.repos if r.config.offline ] def images(self, pattern): def images(self, pattern, all_version=True): ''' Return a list of available images ''' Loading @@ -609,6 +609,17 @@ class RepositoryManager(object): for k in images.keys(): if not fnmatch.fnmatch(k, pattern): del images[k] # filter multiple versions if not all_version: for repo in set((images[i]["repo"] for i in images)): for img in set((images[i]["name"] for i in images if images[i]["repo"] == repo)): versions = [ images[i]['version'] for i in images if images[i]["repo"] == repo and images[i]["name"] == img ] f = lambda x,y: x if istools.compare_versions(x, y) > 0 else y last = reduce(f, versions) versions.remove(last) for rmv in versions: del images["%s/%s:%s" % (repo, img, rmv)] return images def get(self, name, version=None, best=False): Loading Loading @@ -671,7 +682,7 @@ class RepositoryManager(object): s += " (%s)" % repo.config.path out(s) def show_images(self, pattern, o_json=False, o_long=False, def show_images(self, pattern, all_version=True, o_json=False, o_long=False, o_md5=False, o_date=False, o_author=False, o_size=False, o_url=False, o_description=False): ''' Loading @@ -681,7 +692,7 @@ class RepositoryManager(object): all images parameter can be given in arguments to displayed ''' # get image list images = self.images(pattern) images = self.images(pattern, all_version) # display result if o_json: s = json.dumps(images) Loading