(http://ceph.com/ceph-deploy/docs/conf.html)
"""
calamari_parser = parser.add_subparsers(dest='subcommand')
+ calamari_parser.required = True
calamari_connect = calamari_parser.add_parser(
'connect',
metavar='COMMAND',
help='description',
)
+ sub.required = True
entry_points = [
(ep.name, ep.load())
for ep in pkg_resources.iter_entry_points('ceph_deploy.cli')
# flag if the default release is being used
p.set_defaults(default_release=False)
fn(p)
+ p.required = True
parser.set_defaults(
cluster='ceph',
)
Copy ceph.conf to/from remote host(s)
"""
config_parser = parser.add_subparsers(dest='subcommand')
+ config_parser.required = True
config_push = config_parser.add_parser(
'push',
Ceph MDS daemon management
"""
mds_parser = parser.add_subparsers(dest='subcommand')
+ mds_parser.required = True
mds_create = mds_parser.add_parser(
'create',
parser.formatter_class = ToggleRawTextHelpFormatter
mon_parser = parser.add_subparsers(dest='subcommand')
+ mon_parser.required = True
mon_add = mon_parser.add_parser(
'add',
parser.description = sub_command_help
osd_parser = parser.add_subparsers(dest='subcommand')
+ osd_parser.required = True
osd_list = osd_parser.add_parser(
'list',
Manage disks on a remote host.
"""
disk_parser = parser.add_subparsers(dest='subcommand')
+ disk_parser.required = True
disk_zap = disk_parser.add_parser(
'zap',
Ceph RGW daemon management
"""
rgw_parser = parser.add_subparsers(dest='subcommand')
+ rgw_parser.required = True
rgw_create = rgw_parser.add_parser(
'create',
help='Create an RGW instance'
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
class TestParserAdmin(object):
with pytest.raises(SystemExit):
self.parser.parse_args('admin'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_admin_one_host(self):
args = self.parser.parse_args('admin host1'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
class TestParserCalamari(object):
with pytest.raises(SystemExit):
self.parser.parse_args('calamari connect'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_calamari_connect_one_host(self):
args = self.parser.parse_args('calamari connect host1'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
SUBCMDS_WITH_ARGS = ['push', 'pull']
with pytest.raises(SystemExit):
self.parser.parse_args('config push'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_config_push_one_host(self):
args = self.parser.parse_args('config push host1'.split())
with pytest.raises(SystemExit):
self.parser.parse_args('config pull'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_config_pull_one_host(self):
args = self.parser.parse_args('config pull host1'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
SUBCMDS_WITH_ARGS = ['list', 'prepare', 'activate', 'zap']
with pytest.raises(SystemExit):
self.parser.parse_args('disk list'.split())
out, err = capsys.readouterr()
- assert 'too few arguments' in err
+ assert_too_few_arguments(err)
def test_disk_list_single_host(self):
args = self.parser.parse_args('disk list host1'.split())
with pytest.raises(SystemExit):
self.parser.parse_args('disk prepare'.split())
out, err = capsys.readouterr()
- assert 'too few arguments' in err
+ assert_too_few_arguments(err)
def test_disk_prepare_single_host(self):
args = self.parser.parse_args('disk prepare host1:sdb'.split())
with pytest.raises(SystemExit):
self.parser.parse_args('disk activate'.split())
out, err = capsys.readouterr()
- assert 'too few arguments' in err
+ assert_too_few_arguments(err)
def test_disk_activate_single_host(self):
args = self.parser.parse_args('disk activate host1:sdb1'.split())
with pytest.raises(SystemExit):
self.parser.parse_args('disk zap'.split())
out, err = capsys.readouterr()
- assert 'too few arguments' in err
+ assert_too_few_arguments(err)
def test_disk_zap_single_host(self):
args = self.parser.parse_args('disk zap host1:sdb'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
class TestParserGatherKeys(object):
with pytest.raises(SystemExit):
self.parser.parse_args('gatherkeys'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_gatherkeys_one_host(self):
args = self.parser.parse_args('gatherkeys host1'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
COMP_FLAGS = [
'mon', 'mds', 'rgw', 'osd', 'common', 'all'
with pytest.raises(SystemExit):
self.parser.parse_args('install'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_install_one_host(self):
args = self.parser.parse_args('install host1'.split())
import ceph_deploy
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
+
SUBCMDS_WITH_ARGS = [
'new', 'install', 'rgw', 'mds', 'mon', 'gatherkeys', 'disk', 'osd',
with pytest.raises(SystemExit):
self.parser.parse_args('--version'.split())
out, err = capsys.readouterr()
- assert err.strip() == ceph_deploy.__version__
+ assert ceph_deploy.__version__ in (out.strip(), err.strip())
def test_custom_username(self):
args = self.parser.parse_args('--username trhoden forgetkeys'.split())
with pytest.raises(SystemExit):
self.parser.parse_args(['%s' % cmd])
out, err = capsys.readouterr()
- assert 'too few arguments' in err
+ assert_too_few_arguments(err)
assert 'invalid choice' not in err
@pytest.mark.parametrize('cmd', SUBCMDS_WITHOUT_ARGS)
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
class TestParserMDS(object):
with pytest.raises(SystemExit):
self.parser.parse_args('mds create'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_mds_create_one_host(self):
args = self.parser.parse_args('mds create host1'.split())
from ceph_deploy.cli import get_parser
from ceph_deploy.tests.fakes import fake_arg_val_hostname
+from ceph_deploy.tests.util import assert_too_few_arguments
@patch('ceph_deploy.util.arg_validators.Hostname.__call__', fake_arg_val_hostname)
class TestParserNew(object):
with pytest.raises(SystemExit):
self.parser.parse_args('new'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_new_one_mon(self):
hostnames = ['test1']
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
SUBCMDS_WITH_ARGS = ['list', 'create', 'prepare', 'activate']
with pytest.raises(SystemExit):
self.parser.parse_args('osd list'.split())
out, err = capsys.readouterr()
- assert 'too few arguments' in err
+ assert_too_few_arguments(err)
def test_osd_list_single_host(self):
args = self.parser.parse_args('osd list host1'.split())
with pytest.raises(SystemExit):
self.parser.parse_args('osd create'.split())
out, err = capsys.readouterr()
- assert 'too few arguments' in err
+ assert_too_few_arguments(err)
def test_osd_create_single_host(self):
args = self.parser.parse_args('osd create host1:sdb'.split())
with pytest.raises(SystemExit):
self.parser.parse_args('osd prepare'.split())
out, err = capsys.readouterr()
- assert 'too few arguments' in err
+ assert_too_few_arguments(err)
def test_osd_prepare_single_host(self):
args = self.parser.parse_args('osd prepare host1:sdb'.split())
with pytest.raises(SystemExit):
self.parser.parse_args('osd activate'.split())
out, err = capsys.readouterr()
- assert 'too few arguments' in err
+ assert_too_few_arguments(err)
def test_osd_activate_single_host(self):
args = self.parser.parse_args('osd activate host1:sdb1'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
class TestParserPkg(object):
with pytest.raises(SystemExit):
self.parser.parse_args('pkg --install pkg1'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_pkg_install_one_host(self):
args = self.parser.parse_args('pkg --install pkg1 host1'.split())
with pytest.raises(SystemExit):
self.parser.parse_args('pkg --remove pkg1'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_pkg_remove_one_host(self):
args = self.parser.parse_args('pkg --remove pkg1 host1'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
class TestParserPurge(object):
with pytest.raises(SystemExit):
self.parser.parse_args('purge'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_purge_one_host(self):
args = self.parser.parse_args('purge host1'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
class TestParserPurgeData(object):
with pytest.raises(SystemExit):
self.parser.parse_args('purgedata'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_purgedata_one_host(self):
args = self.parser.parse_args('purgedata host1'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
class TestParserRepo(object):
with pytest.raises(SystemExit):
self.parser.parse_args('repo'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_repo_host_required(self, capsys):
with pytest.raises(SystemExit):
self.parser.parse_args('repo ceph'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_repo_one_host(self):
args = self.parser.parse_args('repo ceph host1'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
class TestParserRGW(object):
with pytest.raises(SystemExit):
self.parser.parse_args('rgw create'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_rgw_create_one_host(self):
args = self.parser.parse_args('rgw create host1'.split())
import pytest
from ceph_deploy.cli import get_parser
+from ceph_deploy.tests.util import assert_too_few_arguments
class TestParserUninstall(object):
with pytest.raises(SystemExit):
self.parser.parse_args('uninstall'.split())
out, err = capsys.readouterr()
- assert "error: too few arguments" in err
+ assert_too_few_arguments(err)
def test_uninstall_one_host(self):
args = self.parser.parse_args('uninstall host1'.split())
from ceph_deploy.cli import _main as main
from ceph_deploy.tests.directory import directory
+from ceph_deploy.tests.util import assert_too_few_arguments
#TODO: This test does check that things fail if the .conf file is missing
) as p:
result = p.stderr.read().decode('utf-8')
assert 'usage: ceph-deploy' in result
- assert 'too few arguments' in result
+ assert_too_few_arguments(result)
assert err.value.status == 2
def __init__(self, **kw):
for k, v in kw.items():
setattr(self, k, v)
+
+
+def assert_too_few_arguments(err):
+ assert ("error: too few arguments" in err or
+ "error: the following argument" in err)