From 81d84a030b6ef3243cf77df238260d76b418b561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= Date: Fri, 8 Apr 2016 09:29:05 +0200 Subject: [PATCH] [ostree-installer] Put lorax output into work dir MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Lubomír Sedlář --- pungi/phases/ostree_installer.py | 16 ++++++++-------- tests/test_ostree_installer_phase.py | 10 ++++++---- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/pungi/phases/ostree_installer.py b/pungi/phases/ostree_installer.py index a781c4f9..df6096d7 100644 --- a/pungi/phases/ostree_installer.py +++ b/pungi/phases/ostree_installer.py @@ -51,13 +51,15 @@ class OstreeInstallerThread(WorkerThread): source_variant = compose.variants[config['source_repo_from']] source_repo = translate_path( compose, compose.paths.compose.repository(arch, source_variant, create_dir=False)) + output_dir = os.path.join(compose.paths.work.topdir(arch), variant.uid, 'ostree_installer') + util.makedirs(os.path.dirname(output_dir)) - self._run_ostree_cmd(compose, variant, arch, config, source_repo) + self._run_ostree_cmd(compose, variant, arch, config, source_repo, output_dir) disc_type = compose.conf.get('disc_types', {}).get('dvd', 'dvd') filename = compose.get_image_name(arch, variant, disc_type=disc_type, format=config.get('filename')) - self._copy_image(compose, variant, arch, filename) + self._copy_image(compose, variant, arch, filename, output_dir) self._add_to_manifest(compose, variant, arch, filename) self.pool.log_info('[DONE ] %s' % msg) @@ -66,10 +68,9 @@ class OstreeInstallerThread(WorkerThread): return compose.image_release return config.get('release', None) - def _copy_image(self, compose, variant, arch, filename): + def _copy_image(self, compose, variant, arch, filename, output_dir): iso_path = compose.paths.compose.iso_path(arch, variant, filename) - source_dir = compose.paths.compose.os_tree(arch, variant) - boot_iso = os.path.join(source_dir, 'images', 'boot.iso') + boot_iso = os.path.join(output_dir, 'images', 'boot.iso') try: os.link(boot_iso, iso_path) @@ -100,15 +101,14 @@ class OstreeInstallerThread(WorkerThread): pass compose.im.add(variant.uid, arch, img) - def _run_ostree_cmd(self, compose, variant, arch, config, source_repo): - image_dir = compose.paths.compose.os_tree(arch, variant, create_dir=False) + def _run_ostree_cmd(self, compose, variant, arch, config, source_repo, output_dir): lorax_wrapper = lorax.LoraxWrapper() cmd = lorax_wrapper.get_lorax_cmd( compose.conf['release_name'], compose.conf["release_version"], self._get_release(compose, config), repo_baseurl=source_repo, - output_dir=image_dir, + output_dir=output_dir, variant=variant.uid, nomacboot=True, buildinstallpackages=config.get('installpkgs'), diff --git a/tests/test_ostree_installer_phase.py b/tests/test_ostree_installer_phase.py index add45280..21fd3d51 100644 --- a/tests/test_ostree_installer_phase.py +++ b/tests/test_ostree_installer_phase.py @@ -143,7 +143,7 @@ class OstreeThreadTest(helpers.PungiTestCase): '--source=file://{}/compose/Everything/x86_64/os'.format(self.topdir), '--variant=Everything', '--nomacboot', - self.topdir + '/compose/Everything/x86_64/os'], + self.topdir + '/work/x86_64/Everything/ostree_installer'], channel=None, mounts=[self.topdir], packages=['pungi', 'lorax'], task_id=True, use_shell=True)]) @@ -151,7 +151,7 @@ class OstreeThreadTest(helpers.PungiTestCase): [mock.call(koji.get_runroot_cmd.return_value, log_file=self.topdir + '/logs/x86_64/ostree/runroot.log')]) self.assertEqual(link.call_args_list, - [mock.call(self.topdir + '/compose/Everything/x86_64/os/images/boot.iso', + [mock.call(self.topdir + '/work/x86_64/Everything/ostree_installer/images/boot.iso', final_iso_path)]) self.assertEqual(get_file_size.call_args_list, [mock.call(final_iso_path)]) self.assertEqual(get_mtime.call_args_list, [mock.call(final_iso_path)]) @@ -159,6 +159,8 @@ class OstreeThreadTest(helpers.PungiTestCase): self.assertEqual(compose.get_image_name.call_args_list, [mock.call('x86_64', compose.variants['Everything'], disc_type='dvd', format='Fedora-Atomic.iso')]) + self.assertTrue(os.path.isdir(self.topdir + '/work/x86_64/Everything/')) + self.assertFalse(os.path.isdir(self.topdir + '/work/x86_64/Everything/ostree_installer')) @mock.patch('productmd.images.Image') @mock.patch('pungi.util.get_mtime') @@ -222,7 +224,7 @@ class OstreeThreadTest(helpers.PungiTestCase): '--add-arch-template-var=ostree_repo=https://kojipkgs.fedoraproject.org/compose/atomic/Rawhide/', '--add-arch-template-var=ostree_osname=fedora-atomic', '--add-arch-template-var=ostree_ref=fedora-atomic/Rawhide/x86_64/docker-host', - self.topdir + '/compose/Everything/x86_64/os'], + self.topdir + '/work/x86_64/Everything/ostree_installer'], channel=None, mounts=[self.topdir], packages=['pungi', 'lorax'], task_id=True, use_shell=True)]) @@ -230,7 +232,7 @@ class OstreeThreadTest(helpers.PungiTestCase): [mock.call(koji.get_runroot_cmd.return_value, log_file=self.topdir + '/logs/x86_64/ostree/runroot.log')]) self.assertEqual(link.call_args_list, - [mock.call(self.topdir + '/compose/Everything/x86_64/os/images/boot.iso', + [mock.call(self.topdir + '/work/x86_64/Everything/ostree_installer/images/boot.iso', final_iso_path)]) self.assertEqual(get_file_size.call_args_list, [mock.call(final_iso_path)]) self.assertEqual(get_mtime.call_args_list, [mock.call(final_iso_path)])