Load container driver from entry point
Change-Id: I66fed92c4f67b4552aca3bd8d81b6dda32d70442
This commit is contained in:
parent
b0f8488d95
commit
9f7922a7ca
@ -174,7 +174,7 @@ function create_zun_conf {
|
||||
# (Re)create ``zun.conf``
|
||||
rm -f $ZUN_CONF
|
||||
if [[ ${ZUN_DRIVER} == "docker" ]]; then
|
||||
iniset $ZUN_CONF DEFAULT container_driver docker.driver.DockerDriver
|
||||
iniset $ZUN_CONF DEFAULT container_driver docker
|
||||
fi
|
||||
iniset $ZUN_CONF DEFAULT debug "$ENABLE_DEBUG_LOG_LEVEL"
|
||||
if [[ $SERVICE_IP_VERSION == 6 ]]; then
|
||||
|
11
releasenotes/notes/container_driver-e82fe9c64c9b994b.yaml
Normal file
11
releasenotes/notes/container_driver-e82fe9c64c9b994b.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
upgrade:
|
||||
- |
|
||||
Starting from this release, container driver is loaded from entry point.
|
||||
Deployers should specify the entry point (i.e. ``docker``) in config option
|
||||
``container_driver`` under ``[DEFAULT]`` session.
|
||||
deprecations:
|
||||
- |
|
||||
Specifying container driver class via config option ``container_driver``
|
||||
is deprecated. Use driver name in entry point ``zun.container.driver``
|
||||
instead.
|
@ -68,6 +68,10 @@ zun.scheduler.driver =
|
||||
fake_scheduler = zun.tests.unit.scheduler.fakes:FakeScheduler
|
||||
filter_scheduler = zun.scheduler.filter_scheduler:FilterScheduler
|
||||
|
||||
zun.container.driver =
|
||||
docker = zun.container.docker.driver:DockerDriver
|
||||
fake = zun.tests.unit.container.fake_driver:FakeDriver
|
||||
|
||||
zun.image.driver =
|
||||
glance = zun.image.glance.driver:GlanceDriver
|
||||
docker = zun.image.docker.driver:DockerDriver
|
||||
|
@ -15,11 +15,11 @@ from oslo_config import cfg
|
||||
|
||||
driver_opts = [
|
||||
cfg.StrOpt('container_driver',
|
||||
default='docker.driver.DockerDriver',
|
||||
default='docker',
|
||||
help="""Defines which driver to use for controlling container.
|
||||
Possible values:
|
||||
|
||||
* ``docker.driver.DockerDriver``
|
||||
* ``docker``
|
||||
|
||||
Services which consume this:
|
||||
|
||||
|
@ -18,6 +18,7 @@ import os_resource_classes as orc
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import importutils
|
||||
from oslo_utils import units
|
||||
from stevedore import driver as stevedore_driver
|
||||
|
||||
from zun.common.i18n import _
|
||||
from zun.common import utils
|
||||
@ -51,9 +52,23 @@ def load_container_driver(container_driver=None):
|
||||
|
||||
LOG.info("Loading container driver '%s'", container_driver)
|
||||
try:
|
||||
if not container_driver.startswith('zun.'):
|
||||
if container_driver.startswith('docker.driver.'):
|
||||
# case 1: (deprecated) CONF.container_driver is
|
||||
# 'docker.driver.DockerDriver'
|
||||
container_driver = 'zun.container.%s' % container_driver
|
||||
driver = importutils.import_object(container_driver)
|
||||
driver = importutils.import_object(container_driver)
|
||||
elif container_driver.startswith('zun.'):
|
||||
# case 2: (deprecated) CONF.container_driver is
|
||||
# 'zun.container.docker.driver.DockerDriver'
|
||||
driver = importutils.import_object(container_driver)
|
||||
else:
|
||||
# case 3: CONF.container_driver is (for example) 'docker'
|
||||
# load from entry point in this case.
|
||||
driver = stevedore_driver.DriverManager(
|
||||
"zun.container.driver",
|
||||
container_driver,
|
||||
invoke_on_load=True).driver
|
||||
|
||||
if not isinstance(driver, ContainerDriver):
|
||||
raise Exception(_('Expected driver of type: %s') %
|
||||
str(ContainerDriver))
|
||||
|
@ -99,9 +99,7 @@ class TestManager(base.TestCase):
|
||||
p.start()
|
||||
self.addCleanup(p.stop)
|
||||
|
||||
zun.conf.CONF.set_override(
|
||||
'container_driver',
|
||||
'zun.tests.unit.container.fake_driver.FakeDriver')
|
||||
zun.conf.CONF.set_override('container_driver', 'fake')
|
||||
self.compute_manager = manager.Manager()
|
||||
self.compute_manager._resource_tracker = FakeResourceTracker()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user