Merge "Completes upgrade check for monasca webhook data source"
This commit is contained in:
commit
f5abdf741c
@ -17,6 +17,9 @@ import sys
|
|||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
from oslo_upgradecheck import upgradecheck
|
from oslo_upgradecheck import upgradecheck
|
||||||
|
|
||||||
|
from congress.db import api as db
|
||||||
|
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
|
|
||||||
@ -28,17 +31,30 @@ class Checks(upgradecheck.UpgradeCommands):
|
|||||||
and added to _upgrade_checks tuple.
|
and added to _upgrade_checks tuple.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def _sample_check(self):
|
def _check_monasca_webhook_driver(self):
|
||||||
"""This is sample check added to test the upgrade check framework
|
"""Check existence of monasca webhook datasource"""
|
||||||
|
session = db.get_session()
|
||||||
It needs to be removed after adding any real upgrade check
|
result = session.execute(
|
||||||
"""
|
"SELECT count(*) FROM datasources WHERE driver = 'monasca_webhook'"
|
||||||
return upgradecheck.Result(upgradecheck.Code.SUCCESS, 'Sample detail')
|
).scalar()
|
||||||
|
if result == 0:
|
||||||
|
return upgradecheck.Result(
|
||||||
|
upgradecheck.Code.SUCCESS,
|
||||||
|
'No currently configured data source uses the Monasca Webhook '
|
||||||
|
'data source driver, which contains backward-incompatible '
|
||||||
|
'schema changes.')
|
||||||
|
else:
|
||||||
|
return upgradecheck.Result(
|
||||||
|
upgradecheck.Code.WARNING,
|
||||||
|
'There are currently {} configured data source which use the '
|
||||||
|
'Monasca Webhook data source driver. Because this version of '
|
||||||
|
'Congress includes backward-incompatible schema changes to '
|
||||||
|
'the driver, Congress policies referring to Monasca Webhook '
|
||||||
|
'data may need to be adapted to the new schema.'.format(
|
||||||
|
result))
|
||||||
|
|
||||||
_upgrade_checks = (
|
_upgrade_checks = (
|
||||||
# Sample check added for now.
|
('Monasca Webhook Driver', _check_monasca_webhook_driver),
|
||||||
# Whereas in future real checks must be added here in tuple
|
|
||||||
('Sample Check', _sample_check),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,16 +15,34 @@
|
|||||||
from oslo_upgradecheck.upgradecheck import Code
|
from oslo_upgradecheck.upgradecheck import Code
|
||||||
|
|
||||||
from congress.cmd import status
|
from congress.cmd import status
|
||||||
|
from congress.tests.api import base as api_base
|
||||||
from congress.tests import base
|
from congress.tests import base
|
||||||
|
|
||||||
|
|
||||||
class TestUpgradeChecks(base.TestCase):
|
class TestUpgradeChecks(base.SqlTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestUpgradeChecks, self).setUp()
|
super(TestUpgradeChecks, self).setUp()
|
||||||
self.cmd = status.Checks()
|
self.cmd = status.Checks()
|
||||||
|
|
||||||
def test__sample_check(self):
|
def test__check_monasca_webhook_driver_success(self):
|
||||||
check_result = self.cmd._sample_check()
|
check_result = self.cmd._check_monasca_webhook_driver()
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
Code.SUCCESS, check_result.code)
|
Code.SUCCESS, check_result.code)
|
||||||
|
|
||||||
|
def test__check_monasca_webhook_driver_warning(self):
|
||||||
|
services = api_base.setup_config(with_fake_datasource=False)
|
||||||
|
self.datasource_model = services['api']['api-datasource']
|
||||||
|
self.data = services['data']
|
||||||
|
self.node = services['node']
|
||||||
|
self.engine = services['engine']
|
||||||
|
self.ds_manager = services['ds_manager']
|
||||||
|
monasca_setting = {
|
||||||
|
'name': 'datasource_name',
|
||||||
|
'driver': 'monasca_webhook',
|
||||||
|
'config': None,
|
||||||
|
}
|
||||||
|
self.ds_manager.add_datasource(monasca_setting)
|
||||||
|
check_result = self.cmd._check_monasca_webhook_driver()
|
||||||
|
self.assertEqual(
|
||||||
|
Code.WARNING, check_result.code)
|
||||||
|
Loading…
Reference in New Issue
Block a user