Make container list optional for builds
Since we can generate the list of containers from a jinja file, we don't need to specify the static file from tripleo-common. This change adds the ability to fall back to the jinja version of the overcloud containers list if the container config file is not specified. Change-Id: I931a83cd2f3aa5026c863771e3d80be42f0a5976
This commit is contained in:
parent
e7103f96d5
commit
c1a6348174
|
@ -447,7 +447,12 @@ class KollaImageBuilder(base.BaseImageManager):
|
|||
cmd.append('--config-file')
|
||||
cmd.append(f)
|
||||
|
||||
container_images = self.load_config_files(self.CONTAINER_IMAGES) or []
|
||||
if len(self.config_files) == 0:
|
||||
self.config_files = [DEFAULT_TEMPLATE_FILE]
|
||||
container_images = self.container_images_from_template()
|
||||
else:
|
||||
container_images = self.load_config_files(self.CONTAINER_IMAGES) \
|
||||
or []
|
||||
container_images.sort(key=lambda i: i.get('imagename'))
|
||||
for i in container_images:
|
||||
# Do not attempt to build containers that are not from kolla or
|
||||
|
|
|
@ -18,7 +18,6 @@ import mock
|
|||
import os
|
||||
import requests
|
||||
import six
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import yaml
|
||||
|
@ -163,16 +162,20 @@ class TestKollaImageBuilder(base.TestCase):
|
|||
calls = [call1, call2]
|
||||
mock_popen.assert_has_calls(calls, any_order=True)
|
||||
|
||||
@mock.patch('tripleo_common.image.kolla_builder.KollaImageBuilder.'
|
||||
'container_images_from_template')
|
||||
@mock.patch('subprocess.Popen')
|
||||
def test_build_images_no_conf(self, mock_popen):
|
||||
def test_build_images_no_conf(self, mock_popen, mock_images_from_template):
|
||||
process = mock.Mock()
|
||||
process.returncode = 0
|
||||
process.communicate.return_value = 'done', ''
|
||||
mock_popen.return_value = process
|
||||
mock_images_from_template.return_value = []
|
||||
|
||||
builder = kb.KollaImageBuilder([])
|
||||
self.assertEqual('done', builder.build_images([]))
|
||||
env = os.environ.copy()
|
||||
mock_images_from_template.assert_called_once()
|
||||
mock_popen.assert_called_once_with([
|
||||
'kolla-build',
|
||||
], env=env, stdout=-1, universal_newlines=True)
|
||||
|
@ -200,22 +203,6 @@ class TestKollaImageBuilder(base.TestCase):
|
|||
'image-with-missing-tag',
|
||||
], env=env, stdout=-1, universal_newlines=True)
|
||||
|
||||
@mock.patch('subprocess.Popen')
|
||||
def test_build_images_fail(self, mock_popen):
|
||||
process = mock.Mock()
|
||||
process.returncode = 1
|
||||
process.communicate.return_value = '', 'ouch'
|
||||
mock_popen.return_value = process
|
||||
|
||||
builder = kb.KollaImageBuilder([])
|
||||
self.assertRaises(subprocess.CalledProcessError,
|
||||
builder.build_images,
|
||||
[])
|
||||
env = os.environ.copy()
|
||||
mock_popen.assert_called_once_with([
|
||||
'kolla-build',
|
||||
], env=env, stdout=-1, universal_newlines=True)
|
||||
|
||||
|
||||
class TestKollaImageBuilderTemplate(base.TestCase):
|
||||
|
||||
|
|
Loading…
Reference in New Issue