2018-02-05 13:56:46 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from __future__ import absolute_import
|
|
|
|
|
2018-02-28 22:14:35 +00:00
|
|
|
from .helper import DashboardTestCase, authenticate
|
2018-02-05 13:56:46 +00:00
|
|
|
|
|
|
|
|
2018-02-28 22:14:35 +00:00
|
|
|
class PerfCountersControllerTest(DashboardTestCase):
|
2018-02-05 13:56:46 +00:00
|
|
|
|
|
|
|
@authenticate
|
|
|
|
def test_perf_counters_list(self):
|
|
|
|
data = self._get('/api/perf_counters')
|
|
|
|
self.assertStatus(200)
|
|
|
|
|
|
|
|
self.assertIsInstance(data, dict)
|
2018-02-28 22:14:35 +00:00
|
|
|
for mon in self.mons():
|
|
|
|
self.assertIn('mon.{}'.format(mon), data)
|
|
|
|
|
|
|
|
osds = self.ceph_cluster.mon_manager.get_osd_dump()
|
|
|
|
for osd in osds:
|
|
|
|
self.assertIn('osd.{}'.format(osd['osd']), data)
|
2018-02-05 13:56:46 +00:00
|
|
|
|
2018-03-22 13:00:22 +00:00
|
|
|
def _validate_perf(self, srv_id, srv_type, data, allow_empty):
|
|
|
|
self.assertIsInstance(data, dict)
|
|
|
|
self.assertEqual(srv_type, data['service']['type'])
|
|
|
|
self.assertEqual(str(srv_id), data['service']['id'])
|
|
|
|
self.assertIsInstance(data['counters'], list)
|
|
|
|
if not allow_empty:
|
|
|
|
self.assertGreater(len(data['counters']), 0)
|
|
|
|
for counter in data['counters'][0:1]:
|
|
|
|
self.assertIsInstance(counter, dict)
|
|
|
|
self.assertIn('description', counter)
|
|
|
|
self.assertIn('name', counter)
|
|
|
|
self.assertIn('unit', counter)
|
|
|
|
self.assertIn('value', counter)
|
|
|
|
|
|
|
|
|
2018-02-05 13:56:46 +00:00
|
|
|
@authenticate
|
2018-03-07 15:39:27 +00:00
|
|
|
def test_perf_counters_mon_get(self):
|
|
|
|
mon = self.mons()[0]
|
|
|
|
data = self._get('/api/perf_counters/mon/{}'.format(mon))
|
2018-02-05 13:56:46 +00:00
|
|
|
self.assertStatus(200)
|
2018-03-22 13:00:22 +00:00
|
|
|
self._validate_perf(mon, 'mon', data, allow_empty=False)
|
2018-03-07 15:39:27 +00:00
|
|
|
|
|
|
|
@authenticate
|
|
|
|
def test_perf_counters_mgr_get(self):
|
|
|
|
mgr = self.mgr_cluster.mgr_ids[0]
|
|
|
|
data = self._get('/api/perf_counters/mgr/{}'.format(mgr))
|
|
|
|
self.assertStatus(200)
|
2018-03-22 13:00:22 +00:00
|
|
|
self._validate_perf(mgr, 'mgr', data, allow_empty=False)
|
2018-03-07 15:39:27 +00:00
|
|
|
|
2018-03-22 13:00:22 +00:00
|
|
|
@authenticate
|
|
|
|
def test_perf_counters_mds_get(self):
|
|
|
|
for mds in self.mds_cluster.mds_ids:
|
|
|
|
data = self._get('/api/perf_counters/mds/{}'.format(mds))
|
|
|
|
self.assertStatus(200)
|
|
|
|
self._validate_perf(mds, 'mds', data, allow_empty=True)
|
|
|
|
|
|
|
|
@authenticate
|
|
|
|
def test_perf_counters_osd_get(self):
|
|
|
|
for osd in self.ceph_cluster.mon_manager.get_osd_dump():
|
|
|
|
osd = osd['osd']
|
|
|
|
data = self._get('/api/perf_counters/osd/{}'.format(osd))
|
|
|
|
self.assertStatus(200)
|
|
|
|
self._validate_perf(osd, 'osd', data, allow_empty=False)
|