Merge "Use Tempest plugin interface"
This commit is contained in:
6
ironic_tempest_plugin/README.rst
Normal file
6
ironic_tempest_plugin/README.rst
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
===============================================
|
||||||
|
Tempest Integration of Ironic
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
This directory contains Tempest tests to cover the Ironic project.
|
||||||
|
|
||||||
0
ironic_tempest_plugin/__init__.py
Normal file
0
ironic_tempest_plugin/__init__.py
Normal file
62
ironic_tempest_plugin/config.py
Normal file
62
ironic_tempest_plugin/config.py
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# Copyright 2015 NEC Corporation
|
||||||
|
# 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
|
||||||
|
|
||||||
|
from tempest import config # noqa
|
||||||
|
|
||||||
|
|
||||||
|
baremetal_group = cfg.OptGroup(name='baremetal',
|
||||||
|
title='Baremetal provisioning service options',
|
||||||
|
help='When enabling baremetal tests, Nova '
|
||||||
|
'must be configured to use the Ironic '
|
||||||
|
'driver. The following parameters for the '
|
||||||
|
'[compute] section must be disabled: '
|
||||||
|
'console_output, interface_attach, '
|
||||||
|
'live_migration, pause, rescue, resize, '
|
||||||
|
'shelve, snapshot, and suspend')
|
||||||
|
|
||||||
|
BaremetalGroup = [
|
||||||
|
cfg.StrOpt('catalog_type',
|
||||||
|
default='baremetal',
|
||||||
|
help="Catalog type of the baremetal provisioning service"),
|
||||||
|
cfg.BoolOpt('driver_enabled',
|
||||||
|
default=True,
|
||||||
|
help="Whether the Ironic nova-compute driver is enabled"),
|
||||||
|
cfg.StrOpt('driver',
|
||||||
|
default='fake',
|
||||||
|
help="Driver name which Ironic uses"),
|
||||||
|
cfg.StrOpt('endpoint_type',
|
||||||
|
default='publicURL',
|
||||||
|
choices=['public', 'admin', 'internal',
|
||||||
|
'publicURL', 'adminURL', 'internalURL'],
|
||||||
|
help="The endpoint type to use for the baremetal provisioning "
|
||||||
|
"service"),
|
||||||
|
cfg.IntOpt('active_timeout',
|
||||||
|
default=300,
|
||||||
|
help="Timeout for Ironic node to completely provision"),
|
||||||
|
cfg.IntOpt('association_timeout',
|
||||||
|
default=30,
|
||||||
|
help="Timeout for association of Nova instance and Ironic "
|
||||||
|
"node"),
|
||||||
|
cfg.IntOpt('power_timeout',
|
||||||
|
default=60,
|
||||||
|
help="Timeout for Ironic power transitions."),
|
||||||
|
cfg.IntOpt('unprovision_timeout',
|
||||||
|
default=300,
|
||||||
|
help="Timeout for unprovisioning an Ironic node. "
|
||||||
|
"Takes longer since Kilo as Ironic performs an extra "
|
||||||
|
"step in Node cleaning.")
|
||||||
|
]
|
||||||
39
ironic_tempest_plugin/plugin.py
Normal file
39
ironic_tempest_plugin/plugin.py
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
# Copyright 2015 NEC Corporation
|
||||||
|
# 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 tempest import config
|
||||||
|
from tempest.test_discover import plugins
|
||||||
|
|
||||||
|
from ironic_tempest_plugin import config as project_config
|
||||||
|
|
||||||
|
|
||||||
|
class IronicTempestPlugin(plugins.TempestPlugin):
|
||||||
|
def load_tests(self):
|
||||||
|
base_path = os.path.split(os.path.dirname(
|
||||||
|
os.path.abspath(__file__)))[0]
|
||||||
|
test_dir = "ironic_tempest_plugin/tests"
|
||||||
|
full_test_dir = os.path.join(base_path, test_dir)
|
||||||
|
return full_test_dir, base_path
|
||||||
|
|
||||||
|
def register_opts(self, conf):
|
||||||
|
config.register_opt_group(conf, project_config.baremetal_group,
|
||||||
|
project_config.BaremetalGroup)
|
||||||
|
|
||||||
|
def get_opt_lists(self):
|
||||||
|
return [(project_config.baremetal_group.name,
|
||||||
|
project_config.BaremetalGroup)]
|
||||||
0
ironic_tempest_plugin/services/__init__.py
Normal file
0
ironic_tempest_plugin/services/__init__.py
Normal file
0
ironic_tempest_plugin/tests/__init__.py
Normal file
0
ironic_tempest_plugin/tests/__init__.py
Normal file
0
ironic_tempest_plugin/tests/api/__init__.py
Normal file
0
ironic_tempest_plugin/tests/api/__init__.py
Normal file
0
ironic_tempest_plugin/tests/scenario/__init__.py
Normal file
0
ironic_tempest_plugin/tests/scenario/__init__.py
Normal file
@@ -86,6 +86,9 @@ ironic.drivers =
|
|||||||
ironic.database.migration_backend =
|
ironic.database.migration_backend =
|
||||||
sqlalchemy = ironic.db.sqlalchemy.migration
|
sqlalchemy = ironic.db.sqlalchemy.migration
|
||||||
|
|
||||||
|
tempest.test_plugins =
|
||||||
|
ironic_tests = ironic_tempest_plugin.plugin:IronicTempestPlugin
|
||||||
|
|
||||||
[pbr]
|
[pbr]
|
||||||
autodoc_index_modules = True
|
autodoc_index_modules = True
|
||||||
autodoc_exclude_modules =
|
autodoc_exclude_modules =
|
||||||
|
|||||||
Reference in New Issue
Block a user