From 2f9c217da6b60121ad1ef6f5af87b7b2efe3eacc Mon Sep 17 00:00:00 2001 From: Marc Abramowitz Date: Tue, 28 Mar 2017 10:47:13 -0700 Subject: [PATCH] package: allow removing multiple repos in one command (#925) --- cli/dcoscli/data/help/package.txt | 2 +- cli/dcoscli/package/main.py | 11 ++++++----- cli/tests/integrations/test_package.py | 20 ++++++++++++++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/cli/dcoscli/data/help/package.txt b/cli/dcoscli/data/help/package.txt index 762f105..c308162 100644 --- a/cli/dcoscli/data/help/package.txt +++ b/cli/dcoscli/data/help/package.txt @@ -18,7 +18,7 @@ Usage: dcos package repo add [--index=] dcos package repo import dcos package repo list [--json] - dcos package repo remove + dcos package repo remove ... dcos package search [ --json] dcos package uninstall [--cli | [--app --app-id= --all]] diff --git a/cli/dcoscli/package/main.py b/cli/dcoscli/package/main.py index dee2949..6642339 100644 --- a/cli/dcoscli/package/main.py +++ b/cli/dcoscli/package/main.py @@ -65,7 +65,7 @@ def _cmds(): cmds.Command( hierarchy=['package', 'repo', 'remove'], - arg_keys=[''], + arg_keys=[''], function=_remove_repo), cmds.Command( @@ -232,17 +232,18 @@ def _raise_invalid_repos_file(): '{"repositories": [{"name": "Universe", "uri": "uri-here"}]}') -def _remove_repo(repo_name): +def _remove_repo(repo_names): """Remove package repo and update repo with new repo - :param repo_name: name to call repo - :type repo_name: str + :param repo_names: names of repos + :type repo_name: [str] :returns: Process status :rtype: int """ package_manager = get_package_manager() - package_manager.remove_repo(repo_name) + for repo_name in repo_names: + package_manager.remove_repo(repo_name) return 0 diff --git a/cli/tests/integrations/test_package.py b/cli/tests/integrations/test_package.py index fa31b14..447775b 100644 --- a/cli/tests/integrations/test_package.py +++ b/cli/tests/integrations/test_package.py @@ -110,6 +110,26 @@ def test_repo_remove(): _repo_remove(['Universe'], repo_list) +def test_repo_remove_multi(): + # Add "Universe" repo so we can test removing it + repo_list = bytes("test-universe: {}\nUniverse: {}\n".format( + UNIVERSE_TEST_REPO, UNIVERSE_REPO), 'utf-8') + args = ["Universe", UNIVERSE_REPO] + _repo_add(args, repo_list) + + # Add "1.7-universe" repo so we can test removing it + repo17 = "http://universe.mesosphere.com/repo-1.7" + repo_list = bytes( + "test-universe: {}\n1.7-universe: {}\nUniverse: {}\n".format( + UNIVERSE_TEST_REPO, repo17, UNIVERSE_REPO), 'utf-8') + args = ["1.7-universe", repo17, '--index=1'] + _repo_add(args, repo_list) + + repo_list = bytes( + "test-universe: {}\n".format(UNIVERSE_TEST_REPO), 'utf-8') + _repo_remove(['1.7-universe', 'Universe'], repo_list) + + def test_repo_empty(): assert_command( ['dcos', 'package', 'repo', 'remove', 'test-universe'])