]>
git.proxmox.com Git - ceph.git/blob - ceph/qa/tasks/mgr/test_crash.py
149221e9f6075403e77b24359019d3cff99ac7fa
3 from mgr_test_case
import MgrTestCase
9 log
= logging
.getLogger(__name__
)
10 UUID
= 'd5775432-0742-44a3-a435-45095e32e6b1'
11 DATEFMT
= '%Y-%m-%d %H:%M:%S.%f'
14 class TestCrash(MgrTestCase
):
17 super(TestCrash
, self
).setUp()
19 self
._load
_module
('crash')
21 # Whip up some crash data
23 now
= datetime
.datetime
.utcnow()
25 for i
in (0, 1, 3, 4, 8):
26 timestamp
= now
- datetime
.timedelta(days
=i
)
27 timestamp
= timestamp
.strftime(DATEFMT
) + 'Z'
28 crash_id
= '_'.join((timestamp
, UUID
)).replace(' ', '_')
29 self
.crashes
[crash_id
] = {
30 'crash_id': crash_id
, 'timestamp': timestamp
,
35 self
.mgr_cluster
.mon_manager
.raw_cluster_cmd_result(
36 'crash', 'post', '-i', '-',
37 stdin
=json
.dumps(self
.crashes
[crash_id
]),
41 retstr
= self
.mgr_cluster
.mon_manager
.raw_cluster_cmd(
44 log
.warning("setUp: crash ls returns %s" % retstr
)
46 self
.oldest_crashid
= crash_id
49 for crash
in self
.crashes
.values():
50 self
.mgr_cluster
.mon_manager
.raw_cluster_cmd_result(
51 'crash', 'rm', crash
['crash_id']
55 for crash
in self
.crashes
.values():
56 log
.warning('test_info: crash %s' % crash
)
57 retstr
= self
.mgr_cluster
.mon_manager
.raw_cluster_cmd(
60 log
.warning('ls output: %s' % retstr
)
61 retstr
= self
.mgr_cluster
.mon_manager
.raw_cluster_cmd(
62 'crash', 'info', crash
['crash_id'],
64 log
.warning('crash info output: %s' % retstr
)
65 crashinfo
= json
.loads(retstr
)
66 self
.assertIn('crash_id', crashinfo
)
67 self
.assertIn('timestamp', crashinfo
)
70 retstr
= self
.mgr_cluster
.mon_manager
.raw_cluster_cmd(
73 for crash
in self
.crashes
.values():
74 self
.assertIn(crash
['crash_id'], retstr
)
77 crashid
= self
.crashes
.keys()[0]
80 self
.mgr_cluster
.mon_manager
.raw_cluster_cmd_result(
81 'crash', 'rm', crashid
,
85 retstr
= self
.mgr_cluster
.mon_manager
.raw_cluster_cmd(
88 self
.assertNotIn(crashid
, retstr
)
91 retstr
= self
.mgr_cluster
.mon_manager
.raw_cluster_cmd(
94 self
.assertIn('5 crashes recorded', retstr
)
95 self
.assertIn('4 older than 1 days old:', retstr
)
96 self
.assertIn('3 older than 3 days old:', retstr
)
97 self
.assertIn('1 older than 7 days old:', retstr
)
102 self
.mgr_cluster
.mon_manager
.raw_cluster_cmd_result(
103 'crash', 'prune', '5'
106 retstr
= self
.mgr_cluster
.mon_manager
.raw_cluster_cmd(
109 self
.assertNotIn(self
.oldest_crashid
, retstr
)