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``
|
# (Re)create ``zun.conf``
|
||||||
rm -f $ZUN_CONF
|
rm -f $ZUN_CONF
|
||||||
if [[ ${ZUN_DRIVER} == "docker" ]]; then
|
if [[ ${ZUN_DRIVER} == "docker" ]]; then
|
||||||
iniset $ZUN_CONF DEFAULT container_driver docker.driver.DockerDriver
|
iniset $ZUN_CONF DEFAULT container_driver docker
|
||||||
fi
|
fi
|
||||||
iniset $ZUN_CONF DEFAULT debug "$ENABLE_DEBUG_LOG_LEVEL"
|
iniset $ZUN_CONF DEFAULT debug "$ENABLE_DEBUG_LOG_LEVEL"
|
||||||
if [[ $SERVICE_IP_VERSION == 6 ]]; then
|
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
|
fake_scheduler = zun.tests.unit.scheduler.fakes:FakeScheduler
|
||||||
filter_scheduler = zun.scheduler.filter_scheduler:FilterScheduler
|
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 =
|
zun.image.driver =
|
||||||
glance = zun.image.glance.driver:GlanceDriver
|
glance = zun.image.glance.driver:GlanceDriver
|
||||||
docker = zun.image.docker.driver:DockerDriver
|
docker = zun.image.docker.driver:DockerDriver
|
||||||
|
@ -15,11 +15,11 @@ from oslo_config import cfg
|
|||||||
|
|
||||||
driver_opts = [
|
driver_opts = [
|
||||||
cfg.StrOpt('container_driver',
|
cfg.StrOpt('container_driver',
|
||||||
default='docker.driver.DockerDriver',
|
default='docker',
|
||||||
help="""Defines which driver to use for controlling container.
|
help="""Defines which driver to use for controlling container.
|
||||||
Possible values:
|
Possible values:
|
||||||
|
|
||||||
* ``docker.driver.DockerDriver``
|
* ``docker``
|
||||||
|
|
||||||
Services which consume this:
|
Services which consume this:
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ import os_resource_classes as orc
|
|||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from oslo_utils import importutils
|
from oslo_utils import importutils
|
||||||
from oslo_utils import units
|
from oslo_utils import units
|
||||||
|
from stevedore import driver as stevedore_driver
|
||||||
|
|
||||||
from zun.common.i18n import _
|
from zun.common.i18n import _
|
||||||
from zun.common import utils
|
from zun.common import utils
|
||||||
@ -51,9 +52,23 @@ def load_container_driver(container_driver=None):
|
|||||||
|
|
||||||
LOG.info("Loading container driver '%s'", container_driver)
|
LOG.info("Loading container driver '%s'", container_driver)
|
||||||
try:
|
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
|
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):
|
if not isinstance(driver, ContainerDriver):
|
||||||
raise Exception(_('Expected driver of type: %s') %
|
raise Exception(_('Expected driver of type: %s') %
|
||||||
str(ContainerDriver))
|
str(ContainerDriver))
|
||||||
|
@ -99,9 +99,7 @@ class TestManager(base.TestCase):
|
|||||||
p.start()
|
p.start()
|
||||||
self.addCleanup(p.stop)
|
self.addCleanup(p.stop)
|
||||||
|
|
||||||
zun.conf.CONF.set_override(
|
zun.conf.CONF.set_override('container_driver', 'fake')
|
||||||
'container_driver',
|
|
||||||
'zun.tests.unit.container.fake_driver.FakeDriver')
|
|
||||||
self.compute_manager = manager.Manager()
|
self.compute_manager = manager.Manager()
|
||||||
self.compute_manager._resource_tracker = FakeResourceTracker()
|
self.compute_manager._resource_tracker = FakeResourceTracker()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user