]>
git.proxmox.com Git - ceph.git/blob - ceph/qa/tasks/mgr/test_cache.py
3 from .mgr_test_case
import MgrTestCase
5 class TestCache(MgrTestCase
):
8 super(TestCache
, self
).setUp()
10 self
._load
_module
("cli_api")
12 self
.enable_cache(self
.ttl
)
17 def get_hit_miss_ratio(self
):
18 perf_dump_command
= f
"daemon mgr.{self.mgr_cluster.get_active_id()} perf dump"
19 perf_dump_res
= self
.cluster_cmd(perf_dump_command
)
20 perf_dump
= json
.loads(perf_dump_res
)
21 h
= perf_dump
["mgr"]["cache_hit"]
22 m
= perf_dump
["mgr"]["cache_miss"]
25 def enable_cache(self
, ttl
):
26 set_ttl
= f
"config set mgr mgr_ttl_cache_expire_seconds {ttl}"
27 self
.cluster_cmd(set_ttl
)
29 def disable_cache(self
):
30 set_ttl
= "config set mgr mgr_ttl_cache_expire_seconds 0"
31 self
.cluster_cmd(set_ttl
)
34 def test_init_cache(self
):
35 get_ttl
= "config get mgr mgr_ttl_cache_expire_seconds"
36 res
= self
.cluster_cmd(get_ttl
)
37 self
.assertEquals(int(res
), 10)
39 def test_health_not_cached(self
):
40 get_health
= "mgr api get health"
42 h_start
, m_start
= self
.get_hit_miss_ratio()
43 self
.cluster_cmd(get_health
)
44 h
, m
= self
.get_hit_miss_ratio()
46 self
.assertEquals(h
, h_start
)
47 self
.assertEquals(m
, m_start
)
49 def test_osdmap(self
):
50 get_osdmap
= "mgr api get osd_map"
53 self
.cluster_cmd(get_osdmap
)
55 res
= self
.cluster_cmd(get_osdmap
)
56 osd_map
= json
.loads(res
)
57 self
.assertIn("osds", osd_map
)
58 self
.assertGreater(len(osd_map
["osds"]), 0)
59 self
.assertIn("epoch", osd_map
)
63 def test_hit_miss_ratio(self
):
64 get_osdmap
= "mgr api get osd_map"
66 hit_start
, miss_start
= self
.get_hit_miss_ratio()
69 self
.cluster_cmd(get_osdmap
)
70 _
, m
= self
.get_hit_miss_ratio()
71 return m
== miss_start
+ 1
73 # Miss, add osd_map to cache
74 self
.wait_until_true(wait_miss
, self
.ttl
+ 5)
75 h
, m
= self
.get_hit_miss_ratio()
76 self
.assertEquals(h
, hit_start
)
77 self
.assertEquals(m
, miss_start
+1)
79 # Hit, get osd_map from cache
80 self
.cluster_cmd(get_osdmap
)
81 h
, m
= self
.get_hit_miss_ratio()
82 self
.assertEquals(h
, hit_start
+1)
83 self
.assertEquals(m
, miss_start
+1)