Introduce a config for default image driver
This allows caller to load an image driver without specifying a specific driver. If the image driver is not provided by caller, the default image driver will be loaded. Change-Id: Iab1fc6ffa8093d74354a541a9900201b24120456
This commit is contained in:
parent
69d9ba2f69
commit
6a2d628d47
|
@ -27,7 +27,11 @@ Services which consume this:
|
|||
* ``zun-compute``
|
||||
Interdependencies to other options:
|
||||
* None
|
||||
""")
|
||||
"""),
|
||||
cfg.StrOpt(
|
||||
'default_image_driver',
|
||||
default='docker',
|
||||
help='The default container image driver to use.'),
|
||||
]
|
||||
|
||||
sandbox_opts = [
|
||||
|
|
|
@ -35,6 +35,8 @@ def load_image_driver(image_driver=None):
|
|||
:param image_driver: container image driver name to override config opt
|
||||
:returns: a ContainerImageDriver instance
|
||||
"""
|
||||
if not image_driver:
|
||||
image_driver = CONF.default_image_driver
|
||||
if not image_driver:
|
||||
LOG.error("Container image driver option required, "
|
||||
"but not specified")
|
||||
|
|
|
@ -13,7 +13,9 @@
|
|||
# under the License.
|
||||
|
||||
import zun.conf
|
||||
from zun.image.docker import driver as docker_driver
|
||||
from zun.image import driver
|
||||
from zun.image.glance import driver as glance_driver
|
||||
from zun.tests import base
|
||||
|
||||
CONF = zun.conf.CONF
|
||||
|
@ -24,10 +26,15 @@ class TestDriver(base.BaseTestCase):
|
|||
super(TestDriver, self).setUp()
|
||||
|
||||
def test_load_image_driver_failure(self):
|
||||
CONF.set_override('default_image_driver', None)
|
||||
self.assertRaises(SystemExit, driver.load_image_driver)
|
||||
self.assertRaises(SystemExit, driver.load_image_driver,
|
||||
'UnknownDriver')
|
||||
|
||||
def test_load_image_driver(self):
|
||||
image_driver = driver.load_image_driver()
|
||||
self.assertIsInstance(image_driver, docker_driver.DockerDriver)
|
||||
|
||||
CONF.set_override('images_directory', None, group='glance')
|
||||
self.assertTrue(driver.load_image_driver, 'glance.GlanceDriver')
|
||||
image_driver = driver.load_image_driver('glance')
|
||||
self.assertIsInstance(image_driver, glance_driver.GlanceDriver)
|
||||
|
|
Loading…
Reference in New Issue