raise an fsid mismatch error when passed differing fsids via `--fsid` and `--config`:
```
self = <tests.test_cephadm.TestCephVolume object at 0x7f1c711961f0>, cephadm_fs = <pyfakefs.fake_filesystem.FakeFilesystem object at 0x7f1c713addc0>
def test_fsid(self, cephadm_fs):
cv_cmd = ['--', 'inventory', '--format', 'json']
fsid = '
00000000-0000-0000-0000-
0000deadbeef'
cmd = ['ceph-volume', '--fsid', fsid] + cv_cmd
with with_cephadm_ctx(cmd) as ctx:
cd.command_ceph_volume(ctx)
assert ctx.fsid == fsid
s = get_ceph_conf(fsid=fsid)
f = cephadm_fs.create_file('ceph.conf', contents=s)
cmd = ['ceph-volume', '--fsid', fsid, '--config', f.path] + cv_cmd
with with_cephadm_ctx(cmd) as ctx:
cd.command_ceph_volume(ctx)
assert ctx.fsid == fsid
cmd = ['ceph-volume', '--fsid', '
10000000-0000-0000-0000-
0000deadbeef', '--config', f.path] + cv_cmd
with with_cephadm_ctx(cmd) as ctx:
err = 'fsid does not match ceph.conf'
with pytest.raises(cd.Error, match=err):
cd.command_ceph_volume(ctx)
> assert ctx.fsid == None
E AssertionError: assert '
10000000-0000-0000-0000-
0000deadbeef' == None
E + where '
10000000-0000-0000-0000-
0000deadbeef' = <cephadm.CephadmContext object at 0x7f1c7121c1c0>.fsid
```
Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit
d9198d8668055fdc9e5c3c58668a6aeeda61df4a)
@infer_image
def command_ceph_volume(ctx):
# type: (CephadmContext) -> None
+ cp = read_config(ctx.config)
+ if cp.has_option('global', 'fsid') and \
+ cp.get('global', 'fsid') != ctx.fsid:
+ raise Error('fsid does not match ceph.conf')
+
if ctx.fsid:
make_log_dir(ctx, ctx.fsid)
cd.command_ceph_volume(ctx)
assert ctx.fsid == fsid
+ cmd = self._get_cmd('--fsid', '10000000-0000-0000-0000-0000deadbeef', '--config', f.path)
+ with with_cephadm_ctx(cmd) as ctx:
+ err = 'fsid does not match ceph.conf'
+ with pytest.raises(cd.Error, match=err):
+ cd.command_ceph_volume(ctx)
+ assert ctx.fsid == None
+
def test_config(self, cephadm_fs):
cmd = self._get_cmd('--config', 'foo')
with with_cephadm_ctx(cmd) as ctx: