def test_init(self):
        fid = self.write_tempfile(self.repo_cfg)
        ostree_config = model.OstreeRepoConfig(repo_file_path=fid.name)
        new_ostree_config = model.OstreeRepoConfig(repo_file_path=fid.name)

        updates = model.OstreeConfigUpdates(ostree_config, new_ostree_config)
        updates.apply()
        self.assertEquals(updates.orig, updates.new)

        updates.save()
    def test_gi_wrapper_script_error(self):
        repo_cfg = """
[remote "awesome-ostree"]
url=http://awesome.example.com.not.real/
branches=awesome-ostree/awesome7/x86_64/controller/docker;
gpg-verify=false

"""

        origin_cfg = """
[origin]
refspec=origremote:awesome-ostree/awesomeos8/x86_64/controller/docker
"""

        self.repo_cfg_path = self.write_tempfile(repo_cfg)
        self.repo_config = model.OstreeRepoConfig(
            repo_file_path=self.repo_cfg_path.name)
        self.repo_config.load()

        self.updater = model.OstreeOriginUpdater(self.repo_config)

        self.origin_cfg_path = self.write_tempfile(origin_cfg)

        spe = subprocess.CalledProcessError(
            returncode=1, cmd=['gi_wrapper.py', '--some-options'])
        self.updater._get_deployed_origin = \
            mock.Mock(side_effect=model.OstreeGIWrapperError.from_called_process_error(spe))

        res = self.updater.run()
        self.assertTrue(res is None)
    def setUp(self):
        super(TestOstreeConfigRepoFileWriter, self).setUp()

        self.repo_cfg_path = self.write_tempfile(self.repo_cfg)
        self.repo_config = model.OstreeRepoConfig(
            repo_file_path=self.repo_cfg_path.name)
        self.repo_config.load()
    def _setup_config(self, repo_cfg, origin_cfg):
        self.repo_cfg_path = self.write_tempfile(repo_cfg)
        self.repo_config = model.OstreeRepoConfig(
            repo_file_path=self.repo_cfg_path.name)
        self.repo_config.load()

        self.updater = model.OstreeOriginUpdater(self.repo_config)

        self.origin_cfg_path = self.write_tempfile(origin_cfg)
        self.original_get_deployed_origin = self.updater._get_deployed_origin
        self.updater._get_deployed_origin = mock.Mock(
            return_value=self.origin_cfg_path.name)
    def update_repo_config(self):
        ostree_repo_config = model.OstreeRepoConfig()

        # populate config, handle exceptions
        self.load_config(ostree_repo_config)

        # return the composed set of EntitledContents
        entitled_contents = find_content(self.ent_source,
                                         content_type=OSTREE_CONTENT_TYPE)

        # update repo configs
        report = self.update_config(ostree_repo_config,
                                    contents=entitled_contents)

        # reload the new config, so we have fresh remotes, etc
        self.load_config(ostree_repo_config)

        log.debug("Ostree update report: %s" % report)
        return report
    def test_get_deployed_origin(self):
        if not hasattr(subprocess, 'check_output'):
            # We wouldn't need gi_wrapper on rhel6
            #  a) There is no ostree on rhel6
            #  b) rhel6 is pygtk not pygobject
            raise SkipTest(
                'This version of python does not have subprocess.check_output, so ostree gi_wrapper wont work.'
            )

        repo_cfg = """
[remote "awesome-ostree"]
url=http://awesome.example.com.not.real/
branches=awesome-ostree/awesome7/x86_64/controller/docker;
gpg-verify=false

"""

        origin_cfg = """
[origin]
refspec=origremote:awesome-ostree/awesomeos8/x86_64/controller/docker
"""

        self.repo_cfg_path = self.write_tempfile(repo_cfg)
        self.repo_config = model.OstreeRepoConfig(
            repo_file_path=self.repo_cfg_path.name)
        self.repo_config.load()

        self.updater = model.OstreeOriginUpdater(self.repo_config)

        self.origin_cfg_path = self.write_tempfile(origin_cfg)

        sub_mock = mock.Mock(
            side_effect=subprocess.CalledProcessError(1, 'gi_wrapper.py'))
        with mock.patch(
                'subscription_manager.plugin.ostree.model.subprocess.check_output',
                sub_mock):
            self.assertRaises(model.OstreeGIWrapperError,
                              self.updater._get_deployed_origin)
예제 #7
0
    def update_repo_config(self):
        ostree_repo_config = model.OstreeRepoConfig()

        # populate config, handle exceptions
        self.load_config(ostree_repo_config)

        # return the composed set of EntitledContents
        entitled_contents = find_content(self.ent_source,
                                         content_type=OSTREE_CONTENT_TYPE)

        # update repo configs
        report = self.update_config(ostree_repo_config,
                                     contents=entitled_contents)

        # reload the new config, so we have fresh remotes, etc
        self.load_config(ostree_repo_config)

        # Now that we've updated the ostree repo config, we need to
        # update the currently deployed osname tree .origin file:
        self.update_origin_file(ostree_repo_config)

        log.debug("Ostree update report: %s" % report)
        return report