diff --git a/.gitignore b/.gitignore index ccc22abd..8f8dfb3d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ build *.pyc *.egg-info +.tox diff --git a/rhostest_tempest_plugin/config.py b/rhostest_tempest_plugin/config.py new file mode 100644 index 00000000..a7cade9c --- /dev/null +++ b/rhostest_tempest_plugin/config.py @@ -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."), + + +] diff --git a/rhostest_tempest_plugin/lib/__init__.py b/rhostest_tempest_plugin/lib/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/rhostest_tempest_plugin/lib/mysql.py b/rhostest_tempest_plugin/lib/mysql.py new file mode 100644 index 00000000..3ea66285 --- /dev/null +++ b/rhostest_tempest_plugin/lib/mysql.py @@ -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() diff --git a/rhostest_tempest_plugin/plugin.py b/rhostest_tempest_plugin/plugin.py index 4a7e5299..da4e7b6c 100644 --- a/rhostest_tempest_plugin/plugin.py +++ b/rhostest_tempest_plugin/plugin.py @@ -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