Added metadata rpm files to all builders
rpm packages and verification information is now added to all builder results. Fixes #13
This commit is contained in:
parent
3a2c3554fc
commit
37ae59cbc1
@ -20,6 +20,7 @@ import platform
|
||||
# project
|
||||
from .defaults import Defaults
|
||||
from .archive_tar import ArchiveTar
|
||||
from .system_setup import SystemSetup
|
||||
from .checksum import Checksum
|
||||
from .logger import log
|
||||
from .result import Result
|
||||
@ -39,6 +40,9 @@ class ArchiveBuilder(object):
|
||||
self.xml_state = xml_state
|
||||
self.requested_archive_type = xml_state.get_build_type_name()
|
||||
self.result = Result(xml_state)
|
||||
self.system_setup = SystemSetup(
|
||||
xml_state=xml_state, description_dir=None, root_dir=self.root_dir
|
||||
)
|
||||
self.filename = self.__target_file_for('tar.xz')
|
||||
self.checksum = self.__target_file_for('md5')
|
||||
|
||||
@ -64,6 +68,18 @@ class ArchiveBuilder(object):
|
||||
self.result.add(
|
||||
'root_archive_md5', self.checksum
|
||||
)
|
||||
self.result.add(
|
||||
'image_packages',
|
||||
self.system_setup.export_rpm_package_list(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
self.result.add(
|
||||
'image_verified',
|
||||
self.system_setup.export_rpm_package_verification(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
return self.result
|
||||
|
||||
def __target_file_for(self, suffix):
|
||||
|
||||
@ -20,6 +20,7 @@ import platform
|
||||
# project
|
||||
from .container_image import ContainerImage
|
||||
from .container_setup import ContainerSetup
|
||||
from .system_setup import SystemSetup
|
||||
from .logger import log
|
||||
from .result import Result
|
||||
|
||||
@ -30,8 +31,12 @@ class ContainerBuilder(object):
|
||||
"""
|
||||
def __init__(self, xml_state, target_dir, root_dir):
|
||||
self.root_dir = root_dir
|
||||
self.target_dir = target_dir
|
||||
self.requested_container_name = xml_state.build_type.get_container()
|
||||
self.requested_container_type = xml_state.get_build_type_name()
|
||||
self.system_setup = SystemSetup(
|
||||
xml_state=xml_state, description_dir=None, root_dir=self.root_dir
|
||||
)
|
||||
self.filename = ''.join(
|
||||
[
|
||||
target_dir, '/',
|
||||
@ -69,4 +74,16 @@ class ContainerBuilder(object):
|
||||
self.result.add(
|
||||
'container', self.filename
|
||||
)
|
||||
self.result.add(
|
||||
'image_packages',
|
||||
self.system_setup.export_rpm_package_list(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
self.result.add(
|
||||
'image_verified',
|
||||
self.system_setup.export_rpm_package_verification(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
return self.result
|
||||
|
||||
@ -293,6 +293,20 @@ class DiskBuilder(object):
|
||||
disk_format.get_target_name_for_format(self.image_format)
|
||||
)
|
||||
|
||||
# create image root metadata
|
||||
self.result.add(
|
||||
'image_packages',
|
||||
self.system_setup.export_rpm_package_list(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
self.result.add(
|
||||
'image_verified',
|
||||
self.system_setup.export_rpm_package_verification(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
|
||||
return self.result
|
||||
|
||||
def __install_image_requested(self):
|
||||
|
||||
@ -22,6 +22,7 @@ from .filesystem import FileSystem
|
||||
from .loop_device import LoopDevice
|
||||
from .device_provider import DeviceProvider
|
||||
from .filesystem_setup import FileSystemSetup
|
||||
from .system_setup import SystemSetup
|
||||
from .defaults import Defaults
|
||||
from .logger import log
|
||||
from .result import Result
|
||||
@ -39,6 +40,7 @@ class FileSystemBuilder(object):
|
||||
self.custom_args = None
|
||||
self.label = None
|
||||
self.root_dir = root_dir
|
||||
self.target_dir = target_dir
|
||||
self.requested_image_type = xml_state.get_build_type_name()
|
||||
if self.requested_image_type == 'pxe':
|
||||
self.requested_filesystem = xml_state.build_type.get_filesystem()
|
||||
@ -49,6 +51,9 @@ class FileSystemBuilder(object):
|
||||
'No filesystem configured in %s type' %
|
||||
self.requested_image_type
|
||||
)
|
||||
self.system_setup = SystemSetup(
|
||||
xml_state=xml_state, description_dir=None, root_dir=self.root_dir
|
||||
)
|
||||
self.filename = ''.join(
|
||||
[
|
||||
target_dir, '/',
|
||||
@ -81,6 +86,18 @@ class FileSystemBuilder(object):
|
||||
self.result.add(
|
||||
'filesystem_image', self.filename
|
||||
)
|
||||
self.result.add(
|
||||
'image_packages',
|
||||
self.system_setup.export_rpm_package_list(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
self.result.add(
|
||||
'image_verified',
|
||||
self.system_setup.export_rpm_package_verification(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
return self.result
|
||||
|
||||
def __operate_on_loop(self):
|
||||
|
||||
@ -196,6 +196,18 @@ class LiveImageBuilder(object):
|
||||
self.result.add(
|
||||
'live_image', self.isoname
|
||||
)
|
||||
self.result.add(
|
||||
'image_packages',
|
||||
self.system_setup.export_rpm_package_list(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
self.result.add(
|
||||
'image_verified',
|
||||
self.system_setup.export_rpm_package_verification(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
return self.result
|
||||
|
||||
def __create_live_iso_kernel_and_initrd(self):
|
||||
|
||||
@ -15,6 +15,8 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with kiwi. If not, see <http://www.gnu.org/licenses/>
|
||||
#
|
||||
import platform
|
||||
|
||||
# project
|
||||
from .internal_boot_image_task import BootImageTask
|
||||
from .filesystem_builder import FileSystemBuilder
|
||||
@ -40,7 +42,6 @@ class PxeBuilder(object):
|
||||
def __init__(self, xml_state, target_dir, root_dir):
|
||||
self.target_dir = target_dir
|
||||
self.compressed = xml_state.build_type.get_compressed()
|
||||
self.image_name = xml_state.xml_data.get_name()
|
||||
self.machine = xml_state.get_build_type_machine_section()
|
||||
self.pxedeploy = xml_state.get_build_type_pxedeploy_section()
|
||||
self.filesystem = FileSystemBuilder(
|
||||
@ -52,6 +53,14 @@ class PxeBuilder(object):
|
||||
self.boot_image_task = BootImageTask(
|
||||
'kiwi', xml_state, target_dir
|
||||
)
|
||||
self.image_name = ''.join(
|
||||
[
|
||||
target_dir, '/',
|
||||
xml_state.xml_data.get_name(),
|
||||
'.' + platform.machine(),
|
||||
'-' + xml_state.get_image_version(),
|
||||
]
|
||||
)
|
||||
self.kernel_filename = None
|
||||
self.hypervisor_filename = None
|
||||
self.result = Result(xml_state)
|
||||
@ -130,6 +139,20 @@ class PxeBuilder(object):
|
||||
'filesystem_md5', self.filesystem_checksum
|
||||
)
|
||||
|
||||
# create image root metadata
|
||||
self.result.add(
|
||||
'image_packages',
|
||||
self.system_setup.export_rpm_package_list(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
self.result.add(
|
||||
'image_verified',
|
||||
self.system_setup.export_rpm_package_verification(
|
||||
self.target_dir
|
||||
)
|
||||
)
|
||||
|
||||
if self.pxedeploy:
|
||||
log.warning(
|
||||
'Creation of client config file from pxedeploy not implemented'
|
||||
|
||||
@ -2,6 +2,7 @@ from nose.tools import *
|
||||
from mock import patch
|
||||
|
||||
import mock
|
||||
import kiwi
|
||||
|
||||
from . import nose_helper
|
||||
|
||||
@ -23,6 +24,10 @@ class TestArchiveBuilder(object):
|
||||
self.xml_state.xml_data.get_name = mock.Mock(
|
||||
return_value='myimage'
|
||||
)
|
||||
self.setup = mock.Mock()
|
||||
kiwi.archive_builder.SystemSetup = mock.Mock(
|
||||
return_value=self.setup
|
||||
)
|
||||
self.archive = ArchiveBuilder(
|
||||
self.xml_state, 'target_dir', 'root_dir'
|
||||
)
|
||||
@ -66,3 +71,9 @@ class TestArchiveBuilder(object):
|
||||
checksum.md5.assert_called_once_with(
|
||||
'target_dir/myimage.x86_64-1.2.3.md5'
|
||||
)
|
||||
self.setup.export_rpm_package_verification.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
self.setup.export_rpm_package_list.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
from nose.tools import *
|
||||
from mock import patch
|
||||
|
||||
from mock import call
|
||||
import mock
|
||||
import kiwi
|
||||
|
||||
from . import nose_helper
|
||||
|
||||
@ -25,6 +26,10 @@ class TestContainerBuilder(object):
|
||||
xml_state.xml_data.get_name = mock.Mock(
|
||||
return_value='image_name'
|
||||
)
|
||||
self.setup = mock.Mock()
|
||||
kiwi.container_builder.SystemSetup = mock.Mock(
|
||||
return_value=self.setup
|
||||
)
|
||||
self.container = ContainerBuilder(
|
||||
xml_state, 'target_dir', 'root_dir'
|
||||
)
|
||||
@ -37,6 +42,8 @@ class TestContainerBuilder(object):
|
||||
mock_setup.return_value = container_setup
|
||||
container_image = mock.Mock()
|
||||
mock_image.return_value = container_image
|
||||
self.setup.export_rpm_package_verification.return_value = '.verified'
|
||||
self.setup.export_rpm_package_list.return_value = '.packages'
|
||||
self.container.create()
|
||||
mock_setup.assert_called_once_with(
|
||||
'docker', 'root_dir', {'container_name': 'my-container'}
|
||||
@ -48,6 +55,23 @@ class TestContainerBuilder(object):
|
||||
container_image.create.assert_called_once_with(
|
||||
'target_dir/image_name.x86_64-1.2.3.docker.tar.xz'
|
||||
)
|
||||
self.container.result.add.assert_called_once_with(
|
||||
'container', 'target_dir/image_name.x86_64-1.2.3.docker.tar.xz'
|
||||
assert self.container.result.add.call_args_list == [
|
||||
call(
|
||||
'container',
|
||||
'target_dir/image_name.x86_64-1.2.3.docker.tar.xz'
|
||||
),
|
||||
call(
|
||||
'image_packages',
|
||||
self.setup.export_rpm_package_list.return_value
|
||||
),
|
||||
call(
|
||||
'image_verified',
|
||||
self.setup.export_rpm_package_verification.return_value
|
||||
)
|
||||
]
|
||||
self.setup.export_rpm_package_verification.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
self.setup.export_rpm_package_list.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
|
||||
@ -116,9 +116,9 @@ class TestDiskBuilder(object):
|
||||
kiwi.disk_builder.FirmWare = mock.Mock(
|
||||
return_value=self.firmware
|
||||
)
|
||||
self.system_setup = mock.Mock()
|
||||
self.setup = mock.Mock()
|
||||
kiwi.disk_builder.SystemSetup = mock.Mock(
|
||||
return_value=self.system_setup
|
||||
return_value=self.setup
|
||||
)
|
||||
self.install_image = mock.Mock()
|
||||
kiwi.disk_builder.InstallImageBuilder = mock.Mock(
|
||||
@ -174,8 +174,8 @@ class TestDiskBuilder(object):
|
||||
|
||||
self.disk_builder.create()
|
||||
|
||||
self.system_setup.create_recovery_archive.assert_called_once_with()
|
||||
self.system_setup.export_modprobe_setup.assert_called_once_with(
|
||||
self.setup.create_recovery_archive.assert_called_once_with()
|
||||
self.setup.export_modprobe_setup.assert_called_once_with(
|
||||
'boot_dir'
|
||||
)
|
||||
self.disk_setup.get_disksize_mbytes.assert_called_once_with()
|
||||
@ -200,11 +200,11 @@ class TestDiskBuilder(object):
|
||||
self.bootloader_config.setup_disk_image_config.assert_called_once_with(
|
||||
'0815'
|
||||
)
|
||||
self.system_setup.call_edit_boot_config_script.assert_called_once_with(
|
||||
self.setup.call_edit_boot_config_script.assert_called_once_with(
|
||||
'btrfs', 1
|
||||
)
|
||||
self.bootloader_install.install.assert_called_once_with()
|
||||
self.system_setup.call_edit_boot_install_script.assert_called_once_with(
|
||||
self.setup.call_edit_boot_install_script.assert_called_once_with(
|
||||
'target_dir/LimeJeOS-openSUSE-13.2.x86_64-1.13.2.raw',
|
||||
'/dev/boot-device'
|
||||
)
|
||||
@ -254,6 +254,12 @@ class TestDiskBuilder(object):
|
||||
self.kernel.copy_xen_hypervisor.assert_called_once_with(
|
||||
'root_dir', '/boot/xen.gz'
|
||||
)
|
||||
self.setup.export_rpm_package_list.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
self.setup.export_rpm_package_verification.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
|
||||
@patch('kiwi.disk_builder.FileSystem')
|
||||
@patch('builtins.open')
|
||||
|
||||
@ -2,6 +2,7 @@ from nose.tools import *
|
||||
from mock import patch
|
||||
|
||||
import mock
|
||||
import kiwi
|
||||
|
||||
from . import nose_helper
|
||||
|
||||
@ -44,6 +45,11 @@ class TestFileSystemBuilder(object):
|
||||
return_value=42
|
||||
)
|
||||
|
||||
self.setup = mock.Mock()
|
||||
kiwi.filesystem_builder.SystemSetup = mock.Mock(
|
||||
return_value=self.setup
|
||||
)
|
||||
|
||||
@raises(KiwiFileSystemSetupError)
|
||||
def test_create_unknown_filesystem(self):
|
||||
self.xml_state.get_build_type_name = mock.Mock(
|
||||
@ -92,6 +98,12 @@ class TestFileSystemBuilder(object):
|
||||
self.filesystem.sync_data.assert_called_once_with(
|
||||
['image', '.profile', '.kconfig', 'var/cache/kiwi']
|
||||
)
|
||||
self.setup.export_rpm_package_verification.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
self.setup.export_rpm_package_list.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
|
||||
@patch('kiwi.filesystem_builder.FileSystem')
|
||||
@patch('kiwi.filesystem_builder.DeviceProvider')
|
||||
@ -116,3 +128,9 @@ class TestFileSystemBuilder(object):
|
||||
self.filesystem.create_on_file.assert_called_once_with(
|
||||
'target_dir/myimage.x86_64-1.2.3.squashfs', None
|
||||
)
|
||||
self.setup.export_rpm_package_verification.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
self.setup.export_rpm_package_list.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
|
||||
@ -21,9 +21,9 @@ class TestLiveImageBuilder(object):
|
||||
kiwi.live_image_builder.FirmWare = mock.Mock(
|
||||
return_value=self.firmware
|
||||
)
|
||||
self.system_setup = mock.Mock()
|
||||
self.setup = mock.Mock()
|
||||
kiwi.live_image_builder.SystemSetup = mock.Mock(
|
||||
return_value=self.system_setup
|
||||
return_value=self.setup
|
||||
)
|
||||
self.boot_image_task = mock.Mock()
|
||||
self.boot_image_task.boot_root_directory = 'initrd_dir'
|
||||
@ -128,11 +128,13 @@ class TestLiveImageBuilder(object):
|
||||
return_value=8192
|
||||
)
|
||||
mock_size.return_value = rootsize
|
||||
self.setup.export_rpm_package_verification.return_value = '.verified'
|
||||
self.setup.export_rpm_package_list.return_value = '.packages'
|
||||
|
||||
self.live_image.create()
|
||||
|
||||
self.live_image.boot_image_task.prepare.assert_called_once_with()
|
||||
self.system_setup.export_modprobe_setup.assert_called_once_with(
|
||||
self.setup.export_modprobe_setup.assert_called_once_with(
|
||||
'initrd_dir'
|
||||
)
|
||||
mock_fs.assert_called_once_with(
|
||||
@ -210,8 +212,16 @@ class TestLiveImageBuilder(object):
|
||||
mock_hybrid.assert_called_once_with(
|
||||
'offset', self.mbrid, 'target_dir/result-image.x86_64-1.2.3.iso'
|
||||
)
|
||||
self.result.add.assert_called_once_with(
|
||||
'live_image', 'target_dir/result-image.x86_64-1.2.3.iso'
|
||||
assert self.result.add.call_args_list == [
|
||||
call('live_image', 'target_dir/result-image.x86_64-1.2.3.iso'),
|
||||
call('image_packages', '.packages'),
|
||||
call('image_verified', '.verified')
|
||||
]
|
||||
self.setup.export_rpm_package_verification.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
self.setup.export_rpm_package_list.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
|
||||
@patch('kiwi.live_image_builder.mkdtemp')
|
||||
|
||||
@ -17,9 +17,9 @@ class TestPxeBuilder(object):
|
||||
@patch('kiwi.pxe_builder.FileSystemBuilder')
|
||||
@patch('kiwi.pxe_builder.BootImageTask')
|
||||
def setup(self, mock_boot, mock_filesystem):
|
||||
self.system_setup = mock.Mock()
|
||||
self.setup = mock.Mock()
|
||||
kiwi.pxe_builder.SystemSetup = mock.Mock(
|
||||
return_value=self.system_setup
|
||||
return_value=self.setup
|
||||
)
|
||||
self.boot_image_task = mock.MagicMock()
|
||||
self.boot_image_task.boot_root_directory = 'initrd_dir'
|
||||
@ -27,7 +27,13 @@ class TestPxeBuilder(object):
|
||||
self.filesystem = mock.MagicMock()
|
||||
self.filesystem.filename = 'myimage'
|
||||
mock_filesystem.return_value = self.filesystem
|
||||
self.xml_state = mock.MagicMock()
|
||||
self.xml_state = mock.Mock()
|
||||
self.xml_state.get_image_version = mock.Mock(
|
||||
return_value='1.2.3'
|
||||
)
|
||||
self.xml_state.xml_data.get_name = mock.Mock(
|
||||
return_value='some-image'
|
||||
)
|
||||
kernel_type = namedtuple(
|
||||
'kernel', ['filename', 'version']
|
||||
)
|
||||
@ -70,10 +76,16 @@ class TestPxeBuilder(object):
|
||||
compress.xz.assert_called_once_with()
|
||||
checksum.md5.assert_called_once_with('myimage.md5')
|
||||
self.boot_image_task.prepare.assert_called_once_with()
|
||||
self.system_setup.export_modprobe_setup.assert_called_once_with(
|
||||
self.setup.export_modprobe_setup.assert_called_once_with(
|
||||
'initrd_dir'
|
||||
)
|
||||
self.boot_image_task.create_initrd.assert_called_once_with()
|
||||
self.setup.export_rpm_package_list.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
self.setup.export_rpm_package_verification.assert_called_once_with(
|
||||
'target_dir'
|
||||
)
|
||||
# warning for not implemented pxedeploy handling
|
||||
assert mock_log_warn.called
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user