Octavia: Implement Tempest Plugin
This patch discovers Tempest tests via tempest plugin. Also included is are the config opt parameters needed for testing. Co-Authored-By: Franklin Naval <franklin.naval@gmail.com> Change-Id: I5c99fc5aa3caeb6bd1a9c90c27d956cf0372180b
This commit is contained in:
parent
bc190504ee
commit
058dbb3097
6
octavia/tests/tempest/README.rst
Normal file
6
octavia/tests/tempest/README.rst
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
===============================================
|
||||||
|
Tempest Integration of octavia
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
This directory contains Tempest tests to cover the octavia project.
|
||||||
|
|
0
octavia/tests/tempest/__init__.py
Normal file
0
octavia/tests/tempest/__init__.py
Normal file
41
octavia/tests/tempest/config.py
Normal file
41
octavia/tests/tempest/config.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# Copyright 2016 Rackspace Inc.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
"""
|
||||||
|
For running Octavia tests, it is assumed that the following option is
|
||||||
|
defined in the [service_available] section of etc/tempest.conf
|
||||||
|
octavia = True
|
||||||
|
"""
|
||||||
|
service_option = cfg.BoolOpt('octavia',
|
||||||
|
default=False,
|
||||||
|
help="Whether or not Octavia is expected to be "
|
||||||
|
"available"),
|
||||||
|
|
||||||
|
octavia_group = cfg.OptGroup(name='octavia', title='Octavia Service')
|
||||||
|
|
||||||
|
OctaviaGroup = [
|
||||||
|
cfg.StrOpt('catalog_type',
|
||||||
|
default='network',
|
||||||
|
help='Catalog type of the Octavia service.'),
|
||||||
|
cfg.IntOpt('lb_build_interval',
|
||||||
|
default=15,
|
||||||
|
help='Time in seconds between build status checks.'),
|
||||||
|
cfg.IntOpt('lb_build_timeout',
|
||||||
|
default=900,
|
||||||
|
help='Timeout in seconds to wait for a '
|
||||||
|
'load balancer to build.'),
|
||||||
|
]
|
41
octavia/tests/tempest/plugin.py
Normal file
41
octavia/tests/tempest/plugin.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# Copyright 2016 Hewlett Packard Enterprise Development Company
|
||||||
|
# Copyright 2016 Rackspace Inc.
|
||||||
|
# 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 os
|
||||||
|
|
||||||
|
from octavia.tests.tempest import config as octavia_config
|
||||||
|
|
||||||
|
from tempest.test_discover import plugins
|
||||||
|
|
||||||
|
|
||||||
|
class OctaviaTempestPlugin(plugins.TempestPlugin):
|
||||||
|
|
||||||
|
def load_tests(self):
|
||||||
|
base_path = os.path.split(os.path.dirname(
|
||||||
|
os.path.abspath(__file__)))[0]
|
||||||
|
test_dir = "octavia/tests/tempest/v1"
|
||||||
|
full_test_dir = os.path.join(base_path, test_dir)
|
||||||
|
return full_test_dir, base_path
|
||||||
|
|
||||||
|
def register_opts(self, conf):
|
||||||
|
conf.register_group(octavia_config.octavia_group)
|
||||||
|
conf.register_opts(octavia_config.OctaviaGroup, group='octavia')
|
||||||
|
conf.register_opts(octavia_config.service_option,
|
||||||
|
group='service_available')
|
||||||
|
|
||||||
|
def get_opt_lists(self):
|
||||||
|
return [('octavia', octavia_config.OctaviaGroup),
|
||||||
|
('service_available', [octavia_config.service_option])]
|
@ -73,3 +73,5 @@ octavia.plugins =
|
|||||||
hot_plug_plugin = octavia.controller.worker.controller_worker:ControllerWorker
|
hot_plug_plugin = octavia.controller.worker.controller_worker:ControllerWorker
|
||||||
oslo.config.opts =
|
oslo.config.opts =
|
||||||
octavia = octavia.opts:list_opts
|
octavia = octavia.opts:list_opts
|
||||||
|
tempest.test_plugins =
|
||||||
|
octavia = octavia.tests.tempest.plugin:OctaviaTempestPlugin
|
||||||
|
Loading…
Reference in New Issue
Block a user