Rename 'uploads' key to 'container_images'

This will allow this file to be used for both uploading and image
building. The old 'uploads' key will continue to work.

Change-Id: Ie09d784119e53b90e5ad0c9028459486cff177c7
This commit is contained in:
Steve Baker 2017-03-20 10:23:00 +13:00
parent 4a84166ca7
commit 75754c4658
5 changed files with 41 additions and 5 deletions

View File

@ -1,4 +1,4 @@
uploads:
container_images:
- imagename: tripleoupstream/centos-binary-aodh-api:latest
- imagename: tripleoupstream/centos-binary-aodh-evaluator:latest
- imagename: tripleoupstream/centos-binary-aodh-notifier:latest

View File

@ -24,7 +24,11 @@ from tripleo_common.image.exception import ImageSpecificationException
class BaseImageManager(object):
logger = log.getLogger(__name__ + '.BaseImageManager')
APPEND_ATTRIBUTES = ['elements', 'options', 'packages']
CONFIG_SECTIONS = ['disk_images', 'uploads']
CONFIG_SECTIONS = (
DISK_IMAGES, UPLOADS, CONTAINER_IMAGES
) = (
'disk_images', 'uploads', 'container_images'
)
def __init__(self, config_files, images=None):
self.config_files = config_files
@ -83,5 +87,5 @@ class BaseImageManager(object):
def json_output(self):
self.logger.info('Using config files: %s' % self.config_files)
disk_images = self.load_config_files(self.CONFIG_SECTIONS[0])
disk_images = self.load_config_files(self.DISK_IMAGES)
print(json.dumps(disk_images))

View File

@ -45,7 +45,7 @@ class ImageBuildManager(BaseImageManager):
self.logger.info('Using config files: %s' % self.config_files)
disk_images = self.load_config_files(self.CONFIG_SECTIONS[0])
disk_images = self.load_config_files(self.DISK_IMAGES)
for image in disk_images:
arch = image.get('arch', 'amd64')

View File

@ -40,7 +40,9 @@ class ImageUploadManager(BaseImageManager):
self.logger.info('Using config files: %s' % self.config_files)
upload_images = self.load_config_files(self.CONFIG_SECTIONS[1])
uploads = self.load_config_files(self.UPLOADS) or []
container_images = self.load_config_files(self.CONTAINER_IMAGES) or []
upload_images = uploads + container_images
default_push_destination = self.get_ctrl_plane_ip() + ':8787'
for item in upload_images:

View File

@ -27,6 +27,19 @@ from tripleo_common.tests.image import fakes
filedata = six.u(
"""container_images:
- imagename: tripleoupstream/heat-docker-agents-centos:latest
push_destination: localhost:8787
- imagename: tripleoupstream/centos-binary-nova-compute:liberty
uploader: docker
pull_source: docker.io
push_destination: localhost:8787
- imagename: tripleoupstream/centos-binary-nova-libvirt:liberty
uploader: docker
pull_source: docker.io
""")
legacy_filedata = six.u(
"""uploads:
- imagename: tripleoupstream/heat-docker-agents-centos:latest
push_destination: localhost:8787
@ -65,6 +78,23 @@ class TestImageUploadManager(base.TestCase):
key=operator.itemgetter('imagename'))
self.assertEqual(sorted_expected_data, sorted_parsed_data)
@mock.patch('tripleo_common.image.base.open',
mock.mock_open(read_data=legacy_filedata), create=True)
@mock.patch('os.path.isfile', return_value=True)
@mock.patch('fcntl.ioctl', side_effect=Exception)
@mock.patch('tripleo_common.image.image_uploader.Client')
def test_legacy_file_parsing(self, mockpath, mockioctl, mockdocker):
manager = ImageUploadManager(self.filelist, debug=True)
parsed_data = manager.upload()
mockpath(self.filelist[0])
expected_data = fakes.create_parsed_upload_images()
sorted_expected_data = sorted(expected_data,
key=operator.itemgetter('imagename'))
sorted_parsed_data = sorted(parsed_data,
key=operator.itemgetter('imagename'))
self.assertEqual(sorted_expected_data, sorted_parsed_data)
class TestImageUploader(base.TestCase):