#827 ostree: Add force_new_commit option - test added
Merged 6 years ago by onosek. Opened 6 years ago by onosek.

file modified
+3
@@ -1220,6 +1220,9 @@ 

        deliverable is not release blocking.

      * ``update_summary`` -- (*bool*) Update summary metadata after tree composing.

        Defaults to ``False``.

+     * ``force_new_commit`` -- (*bool*) Do not use rpm-ostree's built-in change

+       detection.

+       Defaults to ``False``.

      * ``version`` -- (*str*) Version string to be added as versioning metadata.

        If this option is set to ``!OSTREE_VERSION_FROM_LABEL_DATE_TYPE_RESPIN``,

        a value will be generated automatically as ``$VERSION.$RELEASE``.

file modified
+1
@@ -884,6 +884,7 @@ 

                                      "arches": {"$ref": "#/definitions/list_of_strings"},

                                      "failable": {"$ref": "#/definitions/list_of_strings"},

                                      "update_summary": {"type": "boolean"},

+                                     "force_new_commit": {"type": "boolean"},

                                      "version": {"type": "string"},

                                      "config_branch": {"type": "string"},

                                      "tag_ref": {"type": "boolean"},

@@ -42,6 +42,8 @@ 

                         help='update summary metadata')

      treep.add_argument('--ostree-ref', metavar='PATH',

                         help='override ref value from treefile')

+     treep.add_argument('--force-new-commit', action='store_true',

+                        help='do not use rpm-ostree\'s built-in change detection')

  

      installerp = subparser.add_parser("installer", help="Create an OSTree installer image")

      installerp.set_defaults(_class=Installer, func='run')

file modified
+5
@@ -33,6 +33,10 @@ 

          if self.version:

              # Add versioning metadata

              cmd.append('--add-metadata-string=version=%s' % self.version)

+         # Note renamed from rpm-ostree --force-nocache since it's a better

+         # name; more clearly describes what we're doing here.

+         if self.force_new_commit:

+             cmd.append('--force-nocache')

          cmd.append(self.treefile)

  

          shortcuts.run(cmd, show_cmd=True, stdout=True, logfile=log_file)
@@ -84,6 +88,7 @@ 

          self.update_summary = self.args.update_summary

          self.extra_config = self.args.extra_config

          self.ostree_ref = self.args.ostree_ref

+         self.force_new_commit = self.args.force_new_commit

  

          if self.extra_config or self.ostree_ref:

              if self.extra_config:

file modified
+3
@@ -126,6 +126,9 @@ 

          if ostree_ref:

              cmd.append('--ostree-ref=%s' % ostree_ref)

  

+         if config.get('force_new_commit', False):

+             cmd.append('--force-new-commit')

+ 

          runroot_channel = compose.conf.get("runroot_channel")

          runroot_tag = compose.conf["runroot_tag"]

  

file modified
+25 -2
@@ -106,7 +106,7 @@ 

          self.assertItemsEqual(

              run.call_args_list,

              [mock.call(['rpm-ostree', 'compose', 'tree', '--repo=%s' % repo,

-                        '--write-commitid-to=%s' % (self.topdir + '/logs/Atomic/commitid.log'),

+                         '--write-commitid-to=%s' % (self.topdir + '/logs/Atomic/commitid.log'),

                          self.topdir + '/fedora-atomic-docker-host.json'],

                         logfile=self.topdir + '/logs/Atomic/create-ostree-repo.log', show_cmd=True, stdout=True),

               mock.call(['ostree', 'summary', '-u', '--repo=%s' % repo],
@@ -128,7 +128,7 @@ 

          self.assertItemsEqual(

              run.call_args_list,

              [mock.call(['rpm-ostree', 'compose', 'tree', '--repo=%s' % repo,

-                        '--write-commitid-to=%s' % (self.topdir + '/logs/Atomic/commitid.log'),

+                         '--write-commitid-to=%s' % (self.topdir + '/logs/Atomic/commitid.log'),

                          '--add-metadata-string=version=24',

                          self.topdir + '/fedora-atomic-docker-host.json'],

                         logfile=self.topdir + '/logs/Atomic/create-ostree-repo.log', show_cmd=True, stdout=True)])
@@ -164,6 +164,29 @@ 

          # repos should stay unchanged

          self.assertEqual(original_repos, new_repos)

  

+     @mock.patch('kobo.shortcuts.run')

+     def test_force_new_commit(self, run):

+         repo = os.path.join(self.topdir, 'atomic')

+ 

+         helpers.touch(os.path.join(repo, 'initialized'))

+ 

+         ostree.main([

+             'tree',

+             '--repo=%s' % repo,

+             '--log-dir=%s' % os.path.join(self.topdir, 'logs', 'Atomic'),

+             '--treefile=%s/fedora-atomic-docker-host.json' % self.topdir,

+             '--force-new-commit',

+         ])

+ 

+         self.maxDiff = None

+         self.assertItemsEqual(

+             run.call_args_list,

+             [mock.call(['rpm-ostree', 'compose', 'tree', '--repo=%s' % repo,

+                         '--write-commitid-to=%s' % (self.topdir + '/logs/Atomic/commitid.log'),

+                         '--force-nocache',

+                         self.topdir + '/fedora-atomic-docker-host.json'],

+                        logfile=self.topdir + '/logs/Atomic/create-ostree-repo.log', show_cmd=True, stdout=True)])

+ 

      @mock.patch('pungi.ostree.utils.datetime')

      @mock.patch('kobo.shortcuts.run')

      def test_extra_config_with_extra_repos(self, run, time):