コード例 #1
0
    def test_clone_is_updated_if_remote_changes(self):
        h1_path = self._create_fake_hostgroup('h1', ['qa', 'boom'])
        m1_path = self._create_fake_module('m1', ['qa', 'boom'])

        ensure_environment(self.settings, 'test', 'master',
            hostgroups=['h1:boom'], modules=['m1:boom'])

        self._jens_update()

        self.assertBare('hostgroups/h1')
        self.assertBare('modules/m1')
        for branch in MANDATORY_BRANCHES:
            self.assertClone('hostgroups/h1/%s' % branch)
            self.assertClone('modules/m1/%s' % branch)

        h1_commit_id = add_commit_to_branch(self.settings, h1_path, 'qa')
        m1_commit_id = add_commit_to_branch(self.settings, m1_path, 'master')
        h1_boom_commit_id = add_commit_to_branch(self.settings, h1_path, 'boom')
        m1_boom_commit_id = add_commit_to_branch(self.settings, m1_path, 'boom')

        self._jens_update()

        self.assertClone('hostgroups/h1/qa', pointsto=h1_commit_id)
        self.assertClone('modules/m1/master', pointsto=m1_commit_id)
        self.assertClone('hostgroups/h1/boom', pointsto=h1_boom_commit_id)
        self.assertClone('modules/m1/boom', pointsto=m1_boom_commit_id)
コード例 #2
0
ファイル: test_metadata.py プロジェクト: claucece/jens
    def test_basic_updates(self):
        self._jens_refresh_metadata()

        fname = 'basic_updates_1'
        new_commit = add_commit_to_branch(self.environments, 'master', fname=fname)
        self._jens_refresh_metadata()
        self.assertEquals(get_repository_head(self.settings.ENV_METADATADIR), new_commit)
        # The reset is --hard
        self.assertTrue(os.path.isfile("%s/%s" %
            (self.settings.ENV_METADATADIR, fname)))
        new_commit = add_commit_to_branch(self.environments, 'master', fname=fname,
                                          remove=True)
        self._jens_refresh_metadata()
        self.assertFalse(os.path.isfile("%s/%s" %
            (self.settings.ENV_METADATADIR, fname)))

        fname = 'basic_updates_2'
        new_commit = add_commit_to_branch(self.repositories, 'master', fname=fname)
        self._jens_refresh_metadata()
        self.assertEquals(get_repository_head(self.settings.REPO_METADATADIR),
                          new_commit)
        self.assertTrue(os.path.isfile("%s/%s" %
            (self.settings.REPO_METADATADIR, fname)))

        new_commit = add_commit_to_branch(self.repositories, 'master', fname=fname,
                                          remove=True)
        self._jens_refresh_metadata()
        self.assertEquals(get_repository_head(self.settings.REPO_METADATADIR), new_commit)
        self.assertFalse(os.path.isfile("%s/%s" %
            (self.settings.REPO_METADATADIR, fname)))
コード例 #3
0
ファイル: test_metadata.py プロジェクト: cernops/jens
    def test_basic_updates(self):
        self._jens_refresh_metadata()

        fname = 'basic_updates_1'
        new_commit = add_commit_to_branch(self.environments, 'master', fname=fname)
        self._jens_refresh_metadata()
        self.assertEqual(get_repository_head(self.settings.ENV_METADATADIR), new_commit)
        # The reset is --hard
        self.assertTrue(os.path.isfile("%s/%s" %
            (self.settings.ENV_METADATADIR, fname)))
        new_commit = add_commit_to_branch(self.environments, 'master', fname=fname,
                                          remove=True)
        self._jens_refresh_metadata()
        self.assertFalse(os.path.isfile("%s/%s" %
            (self.settings.ENV_METADATADIR, fname)))

        fname = 'basic_updates_2'
        new_commit = add_commit_to_branch(self.repositories, 'master', fname=fname)
        self._jens_refresh_metadata()
        self.assertEqual(get_repository_head(self.settings.REPO_METADATADIR),
                          new_commit)
        self.assertTrue(os.path.isfile("%s/%s" %
            (self.settings.REPO_METADATADIR, fname)))

        new_commit = add_commit_to_branch(self.repositories, 'master', fname=fname,
                                          remove=True)
        self._jens_refresh_metadata()
        self.assertEqual(get_repository_head(self.settings.REPO_METADATADIR), new_commit)
        self.assertFalse(os.path.isfile("%s/%s" %
            (self.settings.REPO_METADATADIR, fname)))
コード例 #4
0
ファイル: update.py プロジェクト: nbarrientos/jens
    def test_clone_is_updated_if_remote_changes(self):
        h1_path = self._create_fake_hostgroup('h1', ['qa', 'boom'])
        m1_path = self._create_fake_module('m1', ['qa', 'boom'])

        ensure_environment(self.settings, 'test', 'master',
            hostgroups=['h1:boom'], modules=['m1:boom'])

        self._jens_update()

        self.assertBare('hostgroups/h1')
        self.assertBare('modules/m1')
        for branch in MANDATORY_BRANCHES:
            self.assertClone('hostgroups/h1/%s' % branch)
            self.assertClone('modules/m1/%s' % branch)

        h1_commit_id = add_commit_to_branch(self.settings, h1_path, 'qa')
        m1_commit_id = add_commit_to_branch(self.settings, m1_path, 'master')
        h1_boom_commit_id = add_commit_to_branch(self.settings, h1_path, 'boom')
        m1_boom_commit_id = add_commit_to_branch(self.settings, m1_path, 'boom')

        self._jens_update()

        self.assertClone('hostgroups/h1/qa', pointsto=h1_commit_id)
        self.assertClone('modules/m1/master', pointsto=m1_commit_id)
        self.assertClone('hostgroups/h1/boom', pointsto=h1_boom_commit_id)
        self.assertClone('modules/m1/boom', pointsto=m1_boom_commit_id)
コード例 #5
0
    def test_clone_is_updated_if_remotes_history_is_mangled(self):
        h1_path = self._create_fake_hostgroup('h1', ['qa', 'boom'])

        ensure_environment(self.settings, 'test', 'master',
            hostgroups=['h1:boom'])

        self._jens_update()

        self.assertBare('hostgroups/h1')

        bombs = []
        for x in range(0,4):
            bombs.append(add_commit_to_branch(self.settings, h1_path, 'boom'))

        self._jens_update()

        self.assertClone('hostgroups/h1/boom', pointsto=bombs[-1])

        reset_branch_to(self.settings, h1_path, "boom", bombs[0])
        new_commit = add_commit_to_branch(self.settings,
            h1_path, 'boom', force=True)

        self._jens_update()

        self.assertClone('hostgroups/h1/boom', pointsto=new_commit)
コード例 #6
0
ファイル: update.py プロジェクト: nbarrientos/jens
    def test_clone_is_updated_if_remotes_history_is_mangled(self):
        h1_path = self._create_fake_hostgroup('h1', ['qa', 'boom'])

        ensure_environment(self.settings, 'test', 'master',
            hostgroups=['h1:boom'])

        self._jens_update()

        self.assertBare('hostgroups/h1')

        bombs = []
        for x in range(0,4):
            bombs.append(add_commit_to_branch(self.settings, h1_path, 'boom'))

        self._jens_update()

        self.assertClone('hostgroups/h1/boom', pointsto=bombs[-1])

        reset_branch_to(self.settings, h1_path, "boom", bombs[0])
        new_commit = add_commit_to_branch(self.settings,
            h1_path, 'boom', force=True)

        self._jens_update()

        self.assertClone('hostgroups/h1/boom', pointsto=new_commit)
コード例 #7
0
ファイル: test_metadata.py プロジェクト: cernops/jens
    def test_metadata_updates_if_ondemand_mode_is_enabled(self):
        self.settings.MODE = "ONDEMAND"
        self._jens_refresh_metadata()

        new_commit = add_commit_to_branch(self.environments, 'master')
        self._jens_refresh_metadata()
        self.assertEqual(get_repository_head(self.settings.ENV_METADATADIR), new_commit)

        new_commit = add_commit_to_branch(self.repositories, 'master')
        self._jens_refresh_metadata()
        self.assertEqual(get_repository_head(self.settings.REPO_METADATADIR), new_commit)
コード例 #8
0
ファイル: test_metadata.py プロジェクト: claucece/jens
    def test_metadata_updates_if_ondemand_mode_is_enabled(self):
        self.settings.MODE = "ONDEMAND"
        self._jens_refresh_metadata()

        new_commit = add_commit_to_branch(self.environments, 'master')
        self._jens_refresh_metadata()
        self.assertEquals(get_repository_head(self.settings.ENV_METADATADIR), new_commit)

        new_commit = add_commit_to_branch(self.repositories, 'master')
        self._jens_refresh_metadata()
        self.assertEquals(get_repository_head(self.settings.REPO_METADATADIR), new_commit)
コード例 #9
0
ファイル: test_metadata.py プロジェクト: bavaria95/jens
    def test_basic_updates(self):
        self._jens_refresh_metadata()

        new_commit = add_commit_to_branch(self.settings, \
            self.environments, 'master')
        self._jens_refresh_metadata()
        self.assertEquals(get_repository_head(self.settings,\
            self.settings.ENV_METADATADIR), new_commit)

        new_commit = add_commit_to_branch(self.settings, \
            self.repositories, 'master')
        self._jens_refresh_metadata()
        self.assertEquals(get_repository_head(self.settings,\
            self.settings.REPO_METADATADIR), new_commit)
コード例 #10
0
    def test_basic_updates(self):
        self._jens_refresh_metadata()

        new_commit = add_commit_to_branch(self.settings, \
            self.environments, 'master')
        self._jens_refresh_metadata()
        self.assertEquals(get_repository_head(self.settings,\
            self.settings.ENV_METADATADIR), new_commit)

        new_commit = add_commit_to_branch(self.settings, \
            self.repositories, 'master')
        self._jens_refresh_metadata()
        self.assertEquals(get_repository_head(self.settings,\
            self.settings.REPO_METADATADIR), new_commit)
コード例 #11
0
ファイル: test_update.py プロジェクト: bavaria95/jens
    def test_hint_readded_to_the_queue_if_fetch_fails(self):
        self.settings.MODE = "ONDEMAND"
        yi_path = self._create_fake_hostgroup('yi', ['qa'])
        old_yi_qa = get_refs(yi_path + '/.git')['qa']
        yi_path_bare = yi_path.replace('/user/', '/bare/')

        self._jens_update()

        self.assertBare('hostgroups/yi')
        self.assertClone('hostgroups/yi/qa')

        new_yi_qa = add_commit_to_branch(self.settings, yi_path, 'qa')

        # ---- Make it temporary unavailable
        shutil.move("%s/refs" % yi_path_bare, "%s/goat" % yi_path_bare)

        self.assertEqual(0, count_pending_hints(self.settings))
        self._jens_update(hints={'hostgroups': ['yi']}, errorsExpected=True)
        self.assertEqual(1, count_pending_hints(self.settings))

        self.assertBare('hostgroups/yi')
        self.assertClone('hostgroups/yi/qa', pointsto=old_yi_qa)

        # ---- Bring it back
        shutil.move("%s/goat" % yi_path_bare, "%s/refs" % yi_path_bare)

        self._jens_update(hints={'hostgroups': ['yi']})
        self.assertClone('hostgroups/yi/qa', pointsto=new_yi_qa)
コード例 #12
0
ファイル: test_update.py プロジェクト: bavaria95/jens
    def test_environments_are_created_and_known_branches_expanded_regardless_of_update_hints(self):
        self.settings.MODE = "ONDEMAND"
        h1_path = self._create_fake_hostgroup('h1', ['qa', 'boom'])
        old_h1_qa = get_refs(h1_path + '/.git')['qa']
        m1_path = self._create_fake_module('m1', ['qa', 'boom'])

        self._jens_update()

        ensure_environment(self.settings, 'test', 'master',
            hostgroups=['h1:boom'], modules=['m1:boom'])
        new_h1_qa = add_commit_to_branch(self.settings, h1_path, 'qa')

        self._jens_update(hints={'hostgroups': ['other']})

        self.assertClone('hostgroups/h1/qa', pointsto=old_h1_qa)
        self.assertEnvironmentLinks("test")
        self.assertEnvironmentOverride("test", 'modules/m1', 'boom')
        self.assertEnvironmentOverride("test", 'hostgroups/hg_h1', 'boom')

        self._jens_update(hints={'modules': ['m1'], 'hostgroups': ['h1']})

        self.assertClone('hostgroups/h1/qa', pointsto=new_h1_qa)
        self.assertEnvironmentLinks("test")
        self.assertEnvironmentOverride("test", 'modules/m1', 'boom')
        self.assertEnvironmentOverride("test", 'hostgroups/hg_h1', 'boom')
コード例 #13
0
ファイル: test_metadata.py プロジェクト: cernops/jens
    def test_environments_is_history_is_mangled(self):
        self._jens_refresh_metadata()

        bombs = []
        for x in range(0,4):
            bombs.append(add_commit_to_branch(self.environments, 'master'))

        self._jens_refresh_metadata()

        self.assertEqual(get_repository_head(self.environments), bombs[-1])

        reset_branch_to(self.environments, "master", bombs[0])
        new_commit = add_commit_to_branch(self.environments, \
            'master', force=True)

        self._jens_refresh_metadata()

        # Should be the same if it did a reset
        self.assertEqual(get_repository_head(self.settings.ENV_METADATADIR), new_commit)
コード例 #14
0
ファイル: test_metadata.py プロジェクト: claucece/jens
    def test_environments_is_history_is_mangled(self):
        self._jens_refresh_metadata()

        bombs = []
        for x in range(0,4):
            bombs.append(add_commit_to_branch(self.environments, 'master'))

        self._jens_refresh_metadata()

        self.assertEquals(get_repository_head(self.environments), bombs[-1])

        reset_branch_to(self.environments, "master", bombs[0])
        new_commit = add_commit_to_branch(self.environments, \
            'master', force=True)

        self._jens_refresh_metadata()

        # Should be the same if it did a reset
        self.assertEquals(get_repository_head(self.settings.ENV_METADATADIR), new_commit)
コード例 #15
0
ファイル: test_update.py プロジェクト: bavaria95/jens
    def test_clones_refreshed_if_bare_in_hints(self):
        self.settings.MODE = "ONDEMAND"
        murdock_path = self._create_fake_module('murdock', ['qa'])
        old_qa = get_refs(murdock_path + '/.git')['qa']
        old_site_qa = get_refs(self.site_user + '/.git')['qa']
        old_hieradata_qa = get_refs(self.hieradata_user + '/.git')['qa']
        ensure_environment(self.settings, 'test', 'master',
            modules=["murdock:qa"])

        self._jens_update()

        self.assertClone('modules/murdock/qa', pointsto=old_qa)
        self.assertEnvironmentOverride("test", 'modules/murdock', 'qa')

        new_qa = add_commit_to_branch(self.settings, murdock_path, 'qa')
        new_site_qa = add_commit_to_branch(self.settings, self.site_user, 'qa')
        new_hieradata_qa = add_commit_to_branch(self.settings, self.hieradata_user, 'qa')

        # Test that it actually intersects existing and hints
        self._jens_update(hints={'modules': ['foo']})

        self.assertClone('modules/murdock/qa', pointsto=old_qa)
        self.assertClone('common/site/qa', pointsto=old_site_qa)
        self.assertClone('common/hieradata/qa', pointsto=old_hieradata_qa)
        self.assertEnvironmentOverride("test", 'modules/murdock', 'qa')

        self._jens_update(hints=
            {'modules': ['murdock', 'foo'], 'hostgroups': ['foo'], 'common': ['site']})

        self.assertClone('modules/murdock/qa', pointsto=new_qa)
        self.assertClone('common/site/qa', pointsto=new_site_qa)
        self.assertClone('common/hieradata/qa', pointsto=old_hieradata_qa)
        self.assertEnvironmentOverride("test", 'modules/murdock', 'qa')

        self._jens_update(hints= {'common': ['hieradata']})
        self.assertClone('common/hieradata/qa', pointsto=new_hieradata_qa)
コード例 #16
0
ファイル: test_update.py プロジェクト: bavaria95/jens
    def test_clones_not_refreshed_if_constaints_enabled_but_no_partition_declared(self):
        self.settings.MODE = "ONDEMAND"
        murdock_path = self._create_fake_module('murdock', ['qa'])
        old_qa = get_refs(murdock_path + '/.git')['qa']
        ensure_environment(self.settings, 'test', 'master',
            modules=["murdock:qa"])

        self._jens_update()

        self.assertBare('modules/murdock')
        self.assertClone('modules/murdock/qa', pointsto=old_qa)
        self.assertEnvironmentOverride("test", 'modules/murdock', 'qa')

        new_qa = add_commit_to_branch(self.settings, murdock_path, 'qa')

        self._jens_update(hints={'hostgroups': ['foo']})

        self.assertClone('modules/murdock/qa', pointsto=old_qa)
コード例 #17
0
ファイル: update.py プロジェクト: nbarrientos/jens
    def test_override_to_commit_is_static(self):
        murdock_path = self._create_fake_hostgroup('murdock', ['qa'])
        commit_id = get_refs(murdock_path + '/.git')['qa']
        override = "{0}{1}".format(COMMIT_PREFIX, commit_id)
        ensure_environment(self.settings, 'test', 'master',
            hostgroups=["murdock:%s" % override])

        self._jens_update()

        # Check that the clone points to commit_id
        self.assertClone('hostgroups/murdock/qa', pointsto=commit_id)
        self.assertClone('hostgroups/murdock/.%s' % commit_id, pointsto=commit_id)
        self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', override)

        new_qa = add_commit_to_branch(self.settings, murdock_path, 'qa')

        self._jens_update()

        self.assertClone('hostgroups/murdock/qa', pointsto=new_qa)
        self.assertClone('hostgroups/murdock/.%s' % commit_id, pointsto=commit_id)
        self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', override)
コード例 #18
0
    def test_override_to_commit_is_static(self):
        murdock_path = self._create_fake_hostgroup('murdock', ['qa'])
        commit_id = get_refs(murdock_path + '/.git')['qa']
        override = "{0}{1}".format(COMMIT_PREFIX, commit_id)
        ensure_environment(self.settings, 'test', 'master',
            hostgroups=["murdock:%s" % override])

        self._jens_update()

        # Check that the clone points to commit_id
        self.assertClone('hostgroups/murdock/qa', pointsto=commit_id)
        self.assertClone('hostgroups/murdock/.%s' % commit_id, pointsto=commit_id)
        self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', override)

        new_qa = add_commit_to_branch(self.settings, murdock_path, 'qa')

        self._jens_update()

        self.assertClone('hostgroups/murdock/qa', pointsto=new_qa)
        self.assertClone('hostgroups/murdock/.%s' % commit_id, pointsto=commit_id)
        self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', override)
コード例 #19
0
ファイル: test_update.py プロジェクト: bavaria95/jens
    def test_clones_not_refreshed_if_bare_not_in_hints(self):
        self.settings.MODE = "ONDEMAND"
        murdock_path = self._create_fake_hostgroup('murdock', ['qa'])
        old_qa = get_refs(murdock_path + '/.git')['qa']
        ensure_environment(self.settings, 'test', 'master',
            hostgroups=["murdock:qa"])

        self._jens_update()

        self.assertClone('hostgroups/murdock/qa', pointsto=old_qa)
        self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', 'qa')

        new_qa = add_commit_to_branch(self.settings, murdock_path, 'qa')

        self._jens_update(hints={'hostgroups': ['other']})

        self.assertClone('hostgroups/murdock/qa', pointsto=old_qa)
        self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', 'qa')

        self._jens_update(hints=None)

        self.assertClone('hostgroups/murdock/qa', pointsto=new_qa)
        self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', 'qa')