Allow t use new/old-chroot in runroot

Fixes: https://pagure.io/koji/issue/772
This commit is contained in:
Tomas Kopecek 2018-02-28 14:36:00 +01:00 committed by Mike McLean
parent 0d72403ca5
commit d0238943be
2 changed files with 8 additions and 4 deletions

View file

@ -96,7 +96,7 @@ class RunRootTask(koji.tasks.BaseTaskHandler):
if not path.startswith('/'): if not path.startswith('/'):
raise koji.GenericError("bad config: all paths (default_mounts, safe_roots, path_subs) needs to be absolute: %s" % path) raise koji.GenericError("bad config: all paths (default_mounts, safe_roots, path_subs) needs to be absolute: %s" % path)
def handler(self, root, arch, command, keep=False, packages=[], mounts=[], repo_id=None, skip_setarch=False, weight=None, upload_logs=None, new_chroot=False): def handler(self, root, arch, command, keep=False, packages=[], mounts=[], repo_id=None, skip_setarch=False, weight=None, upload_logs=None, new_chroot=None):
"""Create a buildroot and run a command (as root) inside of it """Create a buildroot and run a command (as root) inside of it
Command may be a string or a list. Command may be a string or a list.
@ -193,6 +193,8 @@ class RunRootTask(koji.tasks.BaseTaskHandler):
mock_cmd = ['chroot'] mock_cmd = ['chroot']
if new_chroot: if new_chroot:
mock_cmd.append('--new-chroot') mock_cmd.append('--new-chroot')
elif new_chroot is False: # None -> no option added
mock_cmd.append('--old-chroot')
if skip_setarch: if skip_setarch:
#we can't really skip it, but we can set it to the current one instead of of the chroot one #we can't really skip it, but we can set it to the current one instead of of the chroot one
myarch = platform.uname()[5] myarch = platform.uname()[5]

View file

@ -25,8 +25,10 @@ def handle_runroot(options, session, args):
help=_("Print the ID of the runroot task")) help=_("Print the ID of the runroot task"))
parser.add_option("--use-shell", action="store_true", default=False, parser.add_option("--use-shell", action="store_true", default=False,
help=_("Run command through a shell, otherwise uses exec")) help=_("Run command through a shell, otherwise uses exec"))
parser.add_option("--new-chroot", action="store_true", default=False, parser.add_option("--new-chroot", action="store_true", default=None,
help=_("Run command with the --new-chroot (systemd-nspawn) option to mock")) help=_("Run command with the --new-chroot (systemd-nspawn) option to mock"))
parser.add_option("--old-chroot", action="store_false", default=None, dest='new_chroot',
help=_("Run command with the --old-chroot (systemd-nspawn) option to mock"))
parser.add_option("--repo-id", type="int", help=_("ID of the repo to use")) parser.add_option("--repo-id", type="int", help=_("ID of the repo to use"))
parser.add_option("--nowait", action="store_false", dest="wait", parser.add_option("--nowait", action="store_false", dest="wait",
default=True, help=_("Do not wait on task")) default=True, help=_("Do not wait on task"))
@ -57,8 +59,8 @@ def handle_runroot(options, session, args):
'weight': opts.weight } 'weight': opts.weight }
# Only pass this kwarg if it is true - this prevents confusing older # Only pass this kwarg if it is true - this prevents confusing older
# builders with a different function signature # builders with a different function signature
if opts.new_chroot: if opts.new_chroot is not None:
kwargs['new_chroot'] = True kwargs['new_chroot'] = opts.new_chroot
task_id = session.runroot(tag, arch, command, **kwargs) task_id = session.runroot(tag, arch, command, **kwargs)
except koji.GenericError as e: except koji.GenericError as e: