diff --git a/MAINTAINERS b/MAINTAINERS index f62289c4..ca9c16bd 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -49,11 +49,6 @@ F: api/ == storage == --- DB2 -- -M: Tong Li (litong) -S: Maintained -F: storage/impl_db2.py - -- HBase -- M: S: Orphan diff --git a/aodh/storage/impl_db2.py b/aodh/storage/impl_db2.py deleted file mode 100644 index 307eabd0..00000000 --- a/aodh/storage/impl_db2.py +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 2012 New Dream Network, LLC (DreamHost) -# Copyright 2013 eNovance -# Copyright 2013 IBM Corp -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -"""DB2 storage backend -""" - -from __future__ import division - -from oslo_log import log -import pymongo - -from aodh import storage -from aodh.storage.mongo import utils as pymongo_utils -from aodh.storage import pymongo_base - -LOG = log.getLogger(__name__) - - -class Connection(pymongo_base.Connection): - """The db2 alarm storage for aodh.""" - - CONNECTION_POOL = pymongo_utils.ConnectionPool() - - def __init__(self, conf, url): - - # Since we are using pymongo, even though we are connecting to DB2 - # we still have to make sure that the scheme which used to distinguish - # db2 driver from mongodb driver be replaced so that pymongo will not - # produce an exception on the scheme. - url = url.replace('db2:', 'mongodb:', 1) - self.conn = self.CONNECTION_POOL.connect( - url, - conf.database.max_retries, - conf.database.retry_interval) - - # Require MongoDB 2.2 to use aggregate(), since we are using mongodb - # as backend for test, the following code is necessary to make sure - # that the test wont try aggregate on older mongodb during the test. - # For db2, the versionArray won't be part of the server_info, so there - # will not be exception when real db2 gets used as backend. - server_info = self.conn.server_info() - if server_info.get('sysInfo'): - self._using_mongodb = True - else: - self._using_mongodb = False - - if self._using_mongodb and server_info.get('versionArray') < [2, 2]: - raise storage.StorageBadVersion("Need at least MongoDB 2.2") - - connection_options = pymongo.uri_parser.parse_uri(url) - self.db = getattr(self.conn, connection_options['database']) - if connection_options.get('username'): - self.db.authenticate(connection_options['username'], - connection_options['password']) - - self.upgrade() - - def clear(self): - # drop_database command does nothing on db2 database since this has - # not been implemented. However calling this method is important for - # removal of all the empty dbs created during the test runs since - # test run is against mongodb on Jenkins - self.conn.drop_database(self.db.name) - self.conn.close() diff --git a/aodh/storage/mongo/utils.py b/aodh/storage/mongo/utils.py index 98dc547d..f277edf7 100644 --- a/aodh/storage/mongo/utils.py +++ b/aodh/storage/mongo/utils.py @@ -13,7 +13,7 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. -"""Common functions for MongoDB and DB2 backends +"""Common functions for MongoDB backend """ import weakref diff --git a/aodh/storage/pymongo_base.py b/aodh/storage/pymongo_base.py index 5fc7fbf6..2e21afe0 100644 --- a/aodh/storage/pymongo_base.py +++ b/aodh/storage/pymongo_base.py @@ -15,7 +15,7 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. -"""Common functions for MongoDB and DB2 backends +"""Common functions for MongoDB backend """ from oslo_log import log @@ -44,7 +44,7 @@ AVAILABLE_STORAGE_CAPABILITIES = { class Connection(base.Connection): - """Base Alarm Connection class for MongoDB and DB2 drivers.""" + """Base Alarm Connection class for MongoDB driver.""" CAPABILITIES = utils.update_nested(base.Connection.CAPABILITIES, COMMON_AVAILABLE_CAPABILITIES) diff --git a/aodh/tests/db.py b/aodh/tests/db.py index e54b808a..849abe8b 100644 --- a/aodh/tests/db.py +++ b/aodh/tests/db.py @@ -127,7 +127,6 @@ class TestBase(testscenarios.testcase.WithScenarios, test_base.BaseTestCase): 'mysql': MySQLManager, 'mysql+pymysql': MySQLManager, 'postgresql': PgSQLManager, - 'db2': MongoDbManager, 'sqlite': SQLiteManager, } if mocks is not None: @@ -210,7 +209,7 @@ class MixinTestsWithBackendScenarios(object): ('sqlite', {'db_url': 'sqlite://'}), ] - for db in ('MONGODB', 'MYSQL', 'PGSQL', 'HBASE', 'DB2', 'ES'): + for db in ('MONGODB', 'MYSQL', 'PGSQL', 'HBASE'): if os.environ.get('AODH_TEST_%s_URL' % db): scenarios.append( (db.lower(), {'db_url': os.environ.get( @@ -222,10 +221,3 @@ class MixinTestsWithBackendScenarios(object): if 'hbase' not in scenarios_db: scenarios.append( ('hbase', {'db_url': 'hbase://__test__'})) - - # Insert default value for db2 test - if 'mongodb' in scenarios_db and 'db2' not in scenarios_db: - scenarios.append( - ('db2', {'db_url': os.environ.get('AODH_TEST_MONGODB_URL', - '').replace('mongodb://', - 'db2://')})) diff --git a/aodh/tests/storage/test_impl_db2.py b/aodh/tests/storage/test_impl_db2.py deleted file mode 100644 index b8e6c860..00000000 --- a/aodh/tests/storage/test_impl_db2.py +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright Ericsson AB 2014. All rights reserved -# -# Authors: Ildiko Vancsa -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -"""Tests for aodh/storage/impl_db2.py - -.. note:: - In order to run the tests against another MongoDB server set the - environment variable aodh_TEST_DB2_URL to point to a DB2 - server before running the tests. - -""" - -from aodh.storage import impl_db2 -from aodh.tests import base as test_base - - -class CapabilitiesTest(test_base.BaseTestCase): - def test_alarm_capabilities(self): - expected_capabilities = { - 'alarms': {'query': {'simple': True, - 'complex': True}, - 'history': {'query': {'simple': True, - 'complex': True}}}, - } - - actual_capabilities = impl_db2.Connection.get_capabilities() - self.assertEqual(expected_capabilities, actual_capabilities) diff --git a/aodh/tests/storage/test_storage_scenarios.py b/aodh/tests/storage/test_storage_scenarios.py index 01d169eb..a5e9be27 100644 --- a/aodh/tests/storage/test_storage_scenarios.py +++ b/aodh/tests/storage/test_storage_scenarios.py @@ -253,7 +253,7 @@ class AlarmTest(AlarmTestBase, self.assertNotEqual(victim.name, s.name) -@tests_db.run_with('sqlite', 'mysql', 'pgsql', 'hbase', 'db2') +@tests_db.run_with('sqlite', 'mysql', 'pgsql', 'hbase') class AlarmHistoryTest(AlarmTestBase, tests_db.MixinTestsWithBackendScenarios): diff --git a/doc/source/install/manual.rst b/doc/source/install/manual.rst index 3968cb0c..9ecdb5b0 100644 --- a/doc/source/install/manual.rst +++ b/doc/source/install/manual.rst @@ -29,9 +29,8 @@ services. You may use one of the listed database backends below to store Aodh data. .. note:: - Please notice, MongoDB (and some other backends like DB2 and HBase) - require pymongo_ to be installed on the system. The required minimum - version of pymongo is 2.4. + Please notice, MongoDB requires pymongo_ to be installed on the system. The + required minimum version of pymongo is 2.4. .. @@ -105,17 +104,6 @@ HBase [database] connection = hbase://hbase-thrift-host:9090 -DB2 ---- - - DB2 installation should follow fresh IBM DB2 NoSQL installation docs. - - To use DB2 as the storage backend, change the 'database' section in - aodh.conf as follows:: - - [database] - connection = db2://username:password@host:27017/aodh - .. _HappyBase: http://happybase.readthedocs.org/en/latest/index.html# .. _MongoDB: http://www.mongodb.org/ diff --git a/setup.cfg b/setup.cfg index 51b71a68..83029501 100644 --- a/setup.cfg +++ b/setup.cfg @@ -34,7 +34,6 @@ aodh.storage = postgresql = aodh.storage.impl_sqlalchemy:Connection sqlite = aodh.storage.impl_sqlalchemy:Connection hbase = aodh.storage.impl_hbase:Connection - db2 = aodh.storage.impl_db2:Connection aodh.alarm.rule = threshold = aodh.api.controllers.v2.alarm_rules.threshold:AlarmThresholdRule