From e423263f51ea06ee418aaaab576a96d95f4f2ede Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Wed, 5 Jan 2022 15:09:48 +0100 Subject: [PATCH] kiwi: Implant releasever into the kiwi description Related: https://pagure.io/koji/issue/3194 --- plugins/builder/kiwi.py | 17 +++++++++++++---- plugins/cli/kiwi.py | 1 + plugins/hub/kiwi.py | 3 ++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/plugins/builder/kiwi.py b/plugins/builder/kiwi.py index eb61bf14..a8183152 100644 --- a/plugins/builder/kiwi.py +++ b/plugins/builder/kiwi.py @@ -191,7 +191,7 @@ class KiwiCreateImageTask(BaseBuildTask): Methods = ['createKiwiImage'] _taskWeight = 2.0 - def prepareDescription(self, desc_path, name, release, repos): + def prepareDescription(self, desc_path, name, version, release, repos): # TODO: update release in desc kiwi_files = glob.glob('%s/*.kiwi' % desc_path) if len(kiwi_files) != 1: @@ -227,13 +227,22 @@ class KiwiCreateImageTask(BaseBuildTask): image.appendChild(repo_node) image.setAttribute('name', name) + preferences = image.getElementsByTagName('preferences')[0] + try: + preferences.getElementsByTagName('release-version')[0].childNodes[0].data = version + except IndexError: + releasever_node = newxml.createElement('release-version') + text = newxml.createTextNode(version) + releasever_node.appendChild(text) + preferences.appendChild(releasever_node) + # TODO: release is part of version (major.minor.release) - # preferences = image.getElementsByTagName('preferences')[0] # try: # preferences.getElementsByTagName('release')[0].childNodes[0].data = release # except Exception: # rel_node = newxml.createElement('release') - # rel_node.data = release + # text = newxml.createTextNode(release) + # rel_node.appendChild(rel_node) # preferences.appendChild(rel_node) types = [] @@ -353,7 +362,7 @@ class KiwiCreateImageTask(BaseBuildTask): repos.append(baseurl) path = os.path.join(scmsrcdir, desc_path) - desc, types = self.prepareDescription(path, name, release, repos) + desc, types = self.prepareDescription(path, name, version, release, repos) self.uploadFile(desc) cmd = ['kiwi-ng'] diff --git a/plugins/cli/kiwi.py b/plugins/cli/kiwi.py index c2fb6afd..9ae9046d 100644 --- a/plugins/cli/kiwi.py +++ b/plugins/cli/kiwi.py @@ -61,6 +61,7 @@ def handle_kiwi_build(goptions, session, args): arches=arches, desc_url=scm, desc_path=path, + repos=options.repo, **kwargs) if not goptions.quiet: diff --git a/plugins/hub/kiwi.py b/plugins/hub/kiwi.py index be51bb01..2ab0cdd6 100644 --- a/plugins/hub/kiwi.py +++ b/plugins/hub/kiwi.py @@ -16,7 +16,7 @@ koji.tasks.LEGACY_SIGNATURES['createKiwiImage'] = [ @export def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile=None, - scratch=False, priority=None): + scratch=False, priority=None, repos=None): context.session.assertPerm('image') taskOpts = { 'channel': 'image', @@ -32,6 +32,7 @@ def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile 'optional_arches': optional_arches, 'profile': profile, 'scratch': scratch, + 'repos': repos or [], } return kojihub.make_task('kiwiBuild', [target, arches, desc_url, desc_path, opts],