mirror of https://github.com/ceph/ceph-ansible.git
tests: add mimic support for test_rbd_mirror_is_up()
prior mimic, the data structure returned by `ceph -s -f json` used to
gather information about rbd-mirror daemons looked like below:
```
"servicemap": {
"epoch": 8,
"modified": "2018-07-05 13:21:06.207483",
"services": {
"rbd-mirror": {
"daemons": {
"summary": "",
"ceph-nano-luminous-faa32aebf00b": {
"start_epoch": 8,
"start_stamp": "2018-07-05 13:21:04.668450",
"gid": 14107,
"addr": "172.17.0.2:0/2229952892",
"metadata": {
"arch": "x86_64",
"ceph_version": "ceph version 12.2.5 (cad919881333ac92274171586c827e01f554a70a) luminous (stable)",
"cpu": "Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz",
"distro": "centos",
"distro_description": "CentOS Linux 7 (Core)",
"distro_version": "7",
"hostname": "ceph-nano-luminous-faa32aebf00b",
"instance_id": "14107",
"kernel_description": "#1 SMP Wed Mar 14 15:12:16 UTC 2018",
"kernel_version": "4.9.87-linuxkit-aufs",
"mem_swap_kb": "1048572",
"mem_total_kb": "2046652",
"os": "Linux"
}
}
}
}
}
}
```
This part has changed from mimic and became:
```
"servicemap": {
"epoch": 2,
"modified": "2018-07-04 09:54:36.164786",
"services": {
"rbd-mirror": {
"daemons": {
"summary": "",
"14151": {
"start_epoch": 2,
"start_stamp": "2018-07-04 09:54:35.541272",
"gid": 14151,
"addr": "192.168.1.80:0/240942528",
"metadata": {
"arch": "x86_64",
"ceph_release": "mimic",
"ceph_version": "ceph version 13.2.0 (79a10589f1f80dfe21e8f9794365ed98143071c4) mimic (stable)",
"ceph_version_short": "13.2.0",
"cpu": "Intel(R) Xeon(R) CPU X5650 @ 2.67GHz",
"distro": "centos",
"distro_description": "CentOS Linux 7 (Core)",
"distro_version": "7",
"hostname": "ceph-rbd-mirror0",
"id": "ceph-rbd-mirror0",
"instance_id": "14151",
"kernel_description": "#1 SMP Wed May 9 18:05:47 UTC 2018",
"kernel_version": "3.10.0-862.2.3.el7.x86_64",
"mem_swap_kb": "1572860",
"mem_total_kb": "1015548",
"os": "Linux"
}
}
}
}
}
}
```
This patch modifies the function `test_rbd_mirror_is_up()` in
`test_rbd_mirror.py` so it works with `mimic` and keeps backward compatibility
with `luminous`
(cherry picked from commit 09d795b5b7
)
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
pull/2812/head
parent
f8a4c57c03
commit
06392b276a
|
@ -107,6 +107,7 @@ def node(host, request):
|
|||
docker=docker,
|
||||
osds=osds,
|
||||
ceph_stable_release=ceph_stable_release,
|
||||
ceph_release_num=ceph_release_num,
|
||||
)
|
||||
return data
|
||||
|
||||
|
|
|
@ -61,6 +61,15 @@ class TestRbdMirrors(object):
|
|||
@pytest.mark.no_docker
|
||||
@pytest.mark.from_luminous
|
||||
def test_rbd_mirror_is_up(self, node, host):
|
||||
ceph_release_num=node['ceph_release_num']
|
||||
ceph_stable_release=node['ceph_stable_release']
|
||||
hostname=node["vars"]["inventory_hostname"]
|
||||
cluster=node["cluster_name"]
|
||||
daemons = []
|
||||
if node['docker']:
|
||||
docker_exec_cmd = 'docker exec ceph-rbd-mirror-{hostname}'.format(hostname=hostname)
|
||||
else:
|
||||
docker_exec_cmd = ''
|
||||
hostname = node["vars"]["inventory_hostname"]
|
||||
cluster = node['cluster_name']
|
||||
cmd = "sudo ceph --name client.bootstrap-rbd --keyring /var/lib/ceph/bootstrap-rbd/{cluster}.keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
|
||||
|
@ -81,5 +90,12 @@ class TestRbdMirrors(object):
|
|||
cluster=cluster
|
||||
)
|
||||
output = host.check_output(cmd)
|
||||
daemons = [i for i in json.loads(output)["servicemap"]["services"]["rbd-mirror"]["daemons"]]
|
||||
assert hostname in daemons
|
||||
status = json.loads(output)
|
||||
daemon_ids = [i for i in status["servicemap"]["services"]["rbd-mirror"]["daemons"].keys() if i != "summary"]
|
||||
if ceph_release_num[ceph_stable_release] > ceph_release_num['luminous']:
|
||||
for daemon_id in daemon_ids:
|
||||
daemons.append(status["servicemap"]["services"]["rbd-mirror"]["daemons"][daemon_id]["metadata"]["hostname"])
|
||||
result = hostname in daemons
|
||||
else:
|
||||
result = hostname in daemon_ids
|
||||
assert result
|
Loading…
Reference in New Issue