ceph/qa/tasks/mgr/dashboard/test_telemetry.py
Sage Weil 4bf8a539ba qa/tasks/mgr/dashboard: identify cluster in telemetry test
Set org to 'ceph-qa'.

Signed-off-by: Sage Weil <sage@newdream.net>
2021-02-11 17:45:02 -05:00

99 lines
2.8 KiB
Python

from .helper import DashboardTestCase, JObj
class TelemetryTest(DashboardTestCase):
pre_enabled_status = True
@classmethod
def setUpClass(cls):
super(TelemetryTest, cls).setUpClass()
data = cls._get('/api/mgr/module/telemetry')
cls.pre_enabled_status = data['enabled']
# identify ourselves so we can filter these reports out on the server side
cls._put(
'/api/settings',
{
'mgr/telemetry/channel_ident': True,
'mgr/telemetry/organization': 'ceph-qa',
}
)
@classmethod
def tearDownClass(cls):
if cls.pre_enabled_status:
cls._enable_module()
else:
cls._disable_module()
super(TelemetryTest, cls).tearDownClass()
def test_disable_module(self):
self._enable_module()
self._check_telemetry_enabled(True)
self._disable_module()
self._check_telemetry_enabled(False)
def test_enable_module_correct_license(self):
self._disable_module()
self._check_telemetry_enabled(False)
self._put('/api/telemetry', {
'enable': True,
'license_name': 'sharing-1-0'
})
self.assertStatus(200)
self._check_telemetry_enabled(True)
def test_enable_module_empty_license(self):
self._disable_module()
self._check_telemetry_enabled(False)
self._put('/api/telemetry', {
'enable': True,
'license_name': ''
})
self.assertStatus(400)
self.assertError(code='telemetry_enable_license_missing')
self._check_telemetry_enabled(False)
def test_enable_module_invalid_license(self):
self._disable_module()
self._check_telemetry_enabled(False)
self._put('/api/telemetry', {
'enable': True,
'license_name': 'invalid-license'
})
self.assertStatus(400)
self.assertError(code='telemetry_enable_license_missing')
self._check_telemetry_enabled(False)
def test_get_report(self):
self._enable_module()
data = self._get('/api/telemetry/report')
self.assertStatus(200)
schema = JObj({
'report': JObj({}, allow_unknown=True),
'device_report': JObj({}, allow_unknown=True)
})
self.assertSchema(data, schema)
@classmethod
def _enable_module(cls):
cls._put('/api/telemetry', {
'enable': True,
'license_name': 'sharing-1-0'
})
@classmethod
def _disable_module(cls):
cls._put('/api/telemetry', {
'enable': False
})
def _check_telemetry_enabled(self, enabled):
data = self._get('/api/mgr/module/telemetry')
self.assertStatus(200)
self.assertEqual(data['enabled'], enabled)