diff --git a/bin/is b/bin/is index 9ec371fd19bc46d2ec272b842451799831bd1791..7d1c463c98e8d5d1ed9235bae77b9bdadb7aa81e 100755 --- a/bin/is +++ b/bin/is @@ -252,6 +252,26 @@ def c_copy(parser, args): dstrepo.add(srcimg) arrowlevel(-1) +def c_move(parser, args): + ''' + Move an image from a repository to another one + ''' + # load repositories + repoman = load_repositories(args) + srcrepo = repoman[args.repo_src] + dstrepo = repoman[args.repo_dst] + # load source image + srcimg = srcrepo.get(args.image, args.image_version) + # Advertise + arrow("Copying %s v%s from %s to %s" % (srcimg.name, + srcimg.version, + srcrepo.config.name, + dstrepo.config.name)) + arrowlevel(1) + dstrepo.add(srcimg) + srcrepo.delete(srcimg.name, srcimg.version) + arrowlevel(-1) + def c_help(parser, args): ''' Show help @@ -388,6 +408,14 @@ p_copy.add_argument("image", help="image name") p_copy.add_argument("image_version", nargs="?", help="image version") p_copy.set_defaults(func=c_copy) +# move command parser +p_move = subparsers.add_parser("move", help=c_move.__doc__.lower()) +p_move.add_argument("repo_src", help="name of source repository") +p_move.add_argument("repo_dst", help="name of destination repository") +p_move.add_argument("image", help="image name") +p_move.add_argument("image_version", nargs="?", help="image version") +p_move.set_defaults(func=c_move) + # help command parser p_help = subparsers.add_parser("help", help=c_help.__doc__.lower()) p_help.add_argument("command", choices=subparsers.choices, nargs="?",