#162 Proposed enhancement to address rpm-ostree runroot failures
Merged 2 years ago by mikem. Opened 2 years ago by imcleod.

file modified
+14 -6

@@ -6853,6 +6853,8 @@ 

              help=_("Print the ID of the runroot task"))

      parser.add_option("--use-shell", action="store_true", default=False,

              help=_("Run command through a shell, otherwise uses exec"))

+     parser.add_option("--new-chroot", action="store_true", default=False,

+             help=_("Run command with the --new-chroot (systemd-nspawn) option to mock"))

      parser.add_option("--repo-id", type="int", help=_("ID of the repo to use"))

  

      (opts, args) = parser.parse_args(args)

@@ -6868,12 +6870,18 @@ 

      else:

          command = args[2:]

      try:

-         task_id = session.runroot(tag, arch, command,

-                                 channel=opts.channel_override,

-                                 packages=opts.package, mounts=opts.mount,

-                                 repo_id=opts.repo_id,

-                                 skip_setarch=opts.skip_setarch,

-                                 weight=opts.weight)

+         kwargs = { 'channel':       opts.channel_override,

+                    'packages':      opts.package,

+                    'mounts':        opts.mount,

+                    'repo_id':       opts.repo_id,

+                    'skip_setarch':  opts.skip_setarch,

+                    'weight':        opts.weight }

+         # Only pass this kwarg if it is true - this prevents confusing older

+         # builders with a different function signature

+         if opts.new_chroot:

+             kwargs['new_chroot'] = True

+ 

+         task_id = session.runroot(tag, arch, command, **kwargs)

      except koji.GenericError, e:

          if 'Invalid method' in str(e):

              print "* The runroot plugin appears to not be installed on the",

file modified
+3 -1

@@ -92,7 +92,7 @@ 

              if not path.startswith('/'):

                  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):

+     def handler(self, root, arch, command, keep=False, packages=[], mounts=[], repo_id=None, skip_setarch=False, weight=None, upload_logs=None, new_chroot=False):

          """Create a buildroot and run a command (as root) inside of it

  

          Command may be a string or a list.

@@ -188,6 +188,8 @@ 

              self.do_mounts(rootdir, [self._get_path_params(x) for x in self.config['default_mounts']])

              self.do_extra_mounts(rootdir, mounts)

              mock_cmd = ['chroot']

+             if new_chroot:

+                 mock_cmd.append('--new-chroot')

              if skip_setarch:

                  #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]

no initial comment

Commit cbb05c2 fixes this pull-request

Pull-Request has been merged by mikem@redhat.com

2 years ago
Metadata