args = ['ac-user-create', name, password]
- cmd = generate_ceph_cmd(cluster=cluster, sub_cmd=['dashboard'], args=args, container_image=container_image)
+ cmd = generate_ceph_cmd(sub_cmd=['dashboard'], args=args, cluster=cluster, container_image=container_image)
return cmd
args.extend(roles)
- cmd = generate_ceph_cmd(cluster=cluster, sub_cmd=['dashboard'], args=args, container_image=container_image)
+ cmd = generate_ceph_cmd(sub_cmd=['dashboard'], args=args, cluster=cluster, container_image=container_image)
return cmd
args = ['ac-user-set-password', name, password]
- cmd = generate_ceph_cmd(cluster=cluster, sub_cmd=['dashboard'], args=args, container_image=container_image)
+ cmd = generate_ceph_cmd(sub_cmd=['dashboard'], args=args, cluster=cluster, container_image=container_image)
return cmd
args = ['ac-user-show', name, '--format=json']
- cmd = generate_ceph_cmd(cluster=cluster, sub_cmd=['dashboard'], args=args, container_image=container_image)
+ cmd = generate_ceph_cmd(sub_cmd=['dashboard'], args=args, cluster=cluster, container_image=container_image)
return cmd
args = ['ac-user-delete', name]
- cmd = generate_ceph_cmd(cluster=cluster, sub_cmd=['dashboard'], args=args, container_image=container_image)
+ cmd = generate_ceph_cmd(sub_cmd=['dashboard'], args=args, cluster=cluster, container_image=container_image)
return cmd
args = ['get', name, '--format=json']
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'erasure-code-profile'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'erasure-code-profile'],
args=args,
+ cluster=cluster,
container_image=container_image)
return cmd
if force:
args.append('--force')
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'erasure-code-profile'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'erasure-code-profile'],
args=args,
+ cluster=cluster,
container_image=container_image)
return cmd
args = ['rm', name]
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'erasure-code-profile'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'erasure-code-profile'],
args=args,
+ cluster=cluster,
container_image=container_image)
return cmd
args = ['new', name, metadata, data]
- cmd = generate_ceph_cmd(cluster=cluster, sub_cmd=['fs'], args=args, container_image=container_image)
+ cmd = generate_ceph_cmd(sub_cmd=['fs'], args=args, cluster=cluster, container_image=container_image)
return cmd
args = ['get', name, '--format=json']
- cmd = generate_ceph_cmd(cluster=cluster, sub_cmd=['fs'], args=args, container_image=container_image)
+ cmd = generate_ceph_cmd(sub_cmd=['fs'], args=args, cluster=cluster, container_image=container_image)
return cmd
args = ['rm', name, '--yes-i-really-mean-it']
- cmd = generate_ceph_cmd(cluster=cluster, sub_cmd=['fs'], args=args, container_image=container_image)
+ cmd = generate_ceph_cmd(sub_cmd=['fs'], args=args, cluster=cluster, container_image=container_image)
return cmd
args = ['fail', name]
- cmd = generate_ceph_cmd(cluster=cluster, sub_cmd=['fs'], args=args, container_image=container_image)
+ cmd = generate_ceph_cmd(sub_cmd=['fs'], args=args, cluster=cluster, container_image=container_image)
return cmd
args = ['set', name, 'max_mds', str(max_mds)]
- cmd = generate_ceph_cmd(cluster=cluster, sub_cmd=['fs'], args=args, container_image=container_image)
+ cmd = generate_ceph_cmd(sub_cmd=['fs'], args=args, cluster=cluster, container_image=container_image)
return cmd
args = ['stats', name, '-f', output_format]
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'pool'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'pool'],
args=args,
+ cluster=cluster,
user=user,
user_key=user_key,
container_image=container_image)
args = ['application', 'get', name, '-f', output_format]
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'pool'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'pool'],
args=args,
+ cluster=cluster,
user=user,
user_key=user_key,
container_image=container_image)
args = ['application', 'enable', name, application]
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'pool'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'pool'],
args=args,
+ cluster=cluster,
user=user,
user_key=user_key,
container_image=container_image)
args = ['application', 'disable', name,
application, '--yes-i-really-mean-it']
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'pool'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'pool'],
args=args,
+ cluster=cluster,
user=user,
user_key=user_key,
container_image=container_image)
args = ['ls', 'detail', '-f', output_format]
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'pool'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'pool'],
args=args,
+ cluster=cluster,
user=user,
user_key=user_key,
container_image=container_image)
args.extend(['-f', output_format])
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'pool'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'pool'],
args=args,
+ cluster=cluster,
user=user,
user_key=user_key,
container_image=container_image)
'--autoscale-mode',
user_pool_config['pg_autoscale_mode']['value']])
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'pool'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'pool'],
args=args,
+ cluster=cluster,
user=user,
user_key=user_key,
container_image=container_image)
args = ['rm', name, name, '--yes-i-really-really-mean-it']
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'pool'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'pool'],
args=args,
+ cluster=cluster,
user=user,
user_key=user_key,
container_image=container_image)
delta[key]['cli_set_opt'],
delta[key]['value']]
- cmd = generate_ceph_cmd(cluster=cluster,
- sub_cmd=['osd', 'pool'],
+ cmd = generate_ceph_cmd(sub_cmd=['osd', 'pool'],
args=args,
+ cluster=cluster,
user=user,
user_key=user_key,
container_image=container_image)
import datetime
-def generate_ceph_cmd(cluster, sub_cmd, args, user='client.admin', user_key='/etc/ceph/ceph.client.admin.keyring', container_image=None):
+def generate_ceph_cmd(sub_cmd, args, user_key=None, cluster='ceph', user='client.admin', container_image=None):
'''
Generate 'ceph' command line to execute
'''
+ if not user_key:
+ user_key = '/etc/ceph/{}.{}.keyring'.format(cluster, user)
+
cmd = pre_generate_ceph_cmd(container_image=container_image)
base_cmd = [
import ca_common
import pytest
-fake_binary = 'ceph'
-fake_cluster = 'ceph'
fake_container_binary = 'podman'
fake_container_image = 'docker.io/ceph/daemon:latest'
-fake_container_cmd = [
- fake_container_binary,
- 'run',
- '--rm',
- '--net=host',
- '-v', '/etc/ceph:/etc/ceph:z',
- '-v', '/var/lib/ceph/:/var/lib/ceph/:z',
- '-v', '/var/log/ceph/:/var/log/ceph/:z',
- '--entrypoint=' + fake_binary,
- fake_container_image
-]
class TestCommon(object):
+ def setup_method(self):
+ self.fake_binary = 'ceph'
+ self.fake_cluster = 'ceph'
+ self.fake_container_cmd = [
+ fake_container_binary,
+ 'run',
+ '--rm',
+ '--net=host',
+ '-v', '/etc/ceph:/etc/ceph:z',
+ '-v', '/var/lib/ceph/:/var/lib/ceph/:z',
+ '-v', '/var/log/ceph/:/var/log/ceph/:z',
+ '--entrypoint=' + self.fake_binary,
+ fake_container_image
+ ]
+
@patch.dict(os.environ, {'CEPH_CONTAINER_BINARY': fake_container_binary})
def test_container_exec(self):
- cmd = ca_common.container_exec(fake_binary, fake_container_image)
- assert cmd == fake_container_cmd
+ cmd = ca_common.container_exec(self.fake_binary, fake_container_image)
+ assert cmd == self.fake_container_cmd
def test_not_is_containerized(self):
assert ca_common.is_containerized() is None
@patch.dict(os.environ, {'CEPH_CONTAINER_BINARY': fake_container_binary})
def test_pre_generate_ceph_cmd(self, image):
if image:
- expected_cmd = fake_container_cmd
+ expected_cmd = self.fake_container_cmd
else:
- expected_cmd = [fake_binary]
+ expected_cmd = [self.fake_binary]
assert ca_common.pre_generate_ceph_cmd(image) == expected_cmd
sub_cmd = ['osd', 'pool']
args = ['create', 'foo']
if image:
- expected_cmd = fake_container_cmd
+ expected_cmd = self.fake_container_cmd
else:
- expected_cmd = [fake_binary]
+ expected_cmd = [self.fake_binary]
expected_cmd.extend([
'-n', 'client.admin',
'-k', '/etc/ceph/ceph.client.admin.keyring',
'--cluster',
- fake_cluster,
+ self.fake_cluster,
+ 'osd', 'pool',
+ 'create', 'foo'
+ ])
+ assert ca_common.generate_ceph_cmd(sub_cmd, args, cluster=self.fake_cluster, container_image=image) == expected_cmd
+
+ @pytest.mark.parametrize('image', [None, fake_container_image])
+ @patch.dict(os.environ, {'CEPH_CONTAINER_BINARY': fake_container_binary})
+ def test_generate_ceph_cmd_different_cluster_name(self, image):
+ sub_cmd = ['osd', 'pool']
+ args = ['create', 'foo']
+ if image:
+ expected_cmd = self.fake_container_cmd
+ else:
+ expected_cmd = [self.fake_binary]
+
+ expected_cmd.extend([
+ '-n', 'client.admin',
+ '-k', '/etc/ceph/foo.client.admin.keyring',
+ '--cluster',
+ 'foo',
+ 'osd', 'pool',
+ 'create', 'foo'
+ ])
+ result = ca_common.generate_ceph_cmd(sub_cmd, args, cluster='foo', container_image=image)
+ assert result == expected_cmd
+
+ @pytest.mark.parametrize('image', [None, fake_container_image])
+ @patch.dict(os.environ, {'CEPH_CONTAINER_BINARY': fake_container_binary})
+ def test_generate_ceph_cmd_different_cluster_name_and_user(self, image):
+ sub_cmd = ['osd', 'pool']
+ args = ['create', 'foo']
+ if image:
+ expected_cmd = self.fake_container_cmd
+ else:
+ expected_cmd = [self.fake_binary]
+
+ expected_cmd.extend([
+ '-n', 'client.foo',
+ '-k', '/etc/ceph/foo.client.foo.keyring',
+ '--cluster',
+ 'foo',
+ 'osd', 'pool',
+ 'create', 'foo'
+ ])
+ result = ca_common.generate_ceph_cmd(sub_cmd, args, cluster='foo', user='client.foo', container_image=image)
+ assert result == expected_cmd
+
+ @pytest.mark.parametrize('image', [None, fake_container_image])
+ @patch.dict(os.environ, {'CEPH_CONTAINER_BINARY': fake_container_binary})
+ def test_generate_ceph_cmd_different_user(self, image):
+ sub_cmd = ['osd', 'pool']
+ args = ['create', 'foo']
+ if image:
+ expected_cmd = self.fake_container_cmd
+ else:
+ expected_cmd = [self.fake_binary]
+
+ expected_cmd.extend([
+ '-n', 'client.foo',
+ '-k', '/etc/ceph/ceph.client.foo.keyring',
+ '--cluster',
+ 'ceph',
'osd', 'pool',
'create', 'foo'
])
- assert ca_common.generate_ceph_cmd(fake_cluster, sub_cmd, args, container_image=image) == expected_cmd
+ result = ca_common.generate_ceph_cmd(sub_cmd, args, user='client.foo', container_image=image)
+ assert result == expected_cmd