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:
madhusudhan-kandadai 2016-02-17 14:53:56 -08:00 committed by Franklin Naval
parent bc190504ee
commit 058dbb3097
5 changed files with 90 additions and 0 deletions

View File

@ -0,0 +1,6 @@
===============================================
Tempest Integration of octavia
===============================================
This directory contains Tempest tests to cover the octavia project.

View File

View 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.'),
]

View 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])]

View File

@ -73,3 +73,5 @@ octavia.plugins =
hot_plug_plugin = octavia.controller.worker.controller_worker:ControllerWorker
oslo.config.opts =
octavia = octavia.opts:list_opts
tempest.test_plugins =
octavia = octavia.tests.tempest.plugin:OctaviaTempestPlugin