Adds a mysql client lib

The lib reads the connection options from the config file and creates a
normal pymysql client. More info can be read in the doc:

    http://mysql-python.sourceforge.net/MySQLdb.html#mysqldb
This commit is contained in:
Joe H. Rahme 2016-09-26 18:06:44 +02:00
parent c4e455c660
commit 9d03706ba8
5 changed files with 79 additions and 1 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
build
*.pyc
*.egg-info
.tox

View File

@ -0,0 +1,32 @@
# Copyright 2016
# All Rights Reserved.
#
# 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.
from oslo_config import cfg
whitebox_plugin_group = cfg.OptGroup(name="whitebox_plugin",
title="Whitebox config options")
WhiteboxPluginGroup = [
cfg.StrOpt("nova_db_hostname",
help="Hostname or address of the nova db host."),
cfg.StrOpt("nova_db_username",
help="Username for the database connection."),
cfg.StrOpt("nova_db_password",
help="Password for the database connection."),
cfg.StrOpt("nova_db_database",
help="The database name for the nova database connection."),
]

View File

View File

@ -0,0 +1,41 @@
# Copyright 2016
# All Rights Reserved.
#
# 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.
import MySQLdb
from tempest import config
CONF = config.CONF
class Client(object):
def __init__(self, dbconf=CONF):
self.db_config = {
"username": dbconf.whitebox_plugin.nova_db_username,
"password": dbconf.whitebox_plugin.nova_db_password,
"host": dbconf.whitebox_plugin.nova_db_hostname,
"database": dbconf.whitebox_plugin.nova_db_database,
}
def connect(self):
return MySQLdb.connect(
self.db_config['host'],
self.db_config['username'],
self.db_config['password'],
self.db_config['database'],
)
default_client = Client()

View File

@ -16,8 +16,11 @@
import os
from tempest import config
from tempest.test_discover import plugins
from rhostest_tempest_plugin import config as project_config
class RHOSTempestPlugin(plugins.TempestPlugin):
def load_tests(self):
@ -28,7 +31,8 @@ class RHOSTempestPlugin(plugins.TempestPlugin):
return full_test_dir, base_path
def register_opts(self, conf):
pass
config.register_opt_group(conf, project_config.whitebox_plugin_group,
project_config.WhiteboxPluginGroup)
def get_opt_lists(self):
pass