package: allow removing multiple repos in one command (#925)

This commit is contained in:
Marc Abramowitz
2017-03-28 10:47:13 -07:00
committed by tamarrow
parent 02f4b1a9ba
commit 2f9c217da6
3 changed files with 27 additions and 6 deletions

View File

@@ -18,7 +18,7 @@ Usage:
dcos package repo add <repo-name> <repo-url> [--index=<index>]
dcos package repo import <repos-file>
dcos package repo list [--json]
dcos package repo remove <repo-name>
dcos package repo remove <repo-names>...
dcos package search [<query> --json]
dcos package uninstall <package-name>
[--cli | [--app --app-id=<app-id> --all]]

View File

@@ -65,7 +65,7 @@ def _cmds():
cmds.Command(
hierarchy=['package', 'repo', 'remove'],
arg_keys=['<repo-name>'],
arg_keys=['<repo-names>'],
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

View File

@@ -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'])