예제 #1
0
    def test_consumers_resumed(self):
        # Setup
        consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)
        new_consumer = {
            'id': 'fake-consumer',
            'description': 'fake-description',
            'key_value_pairs': {
                'a': 'a'
            },
            'capabilities': {},
            'certificate': 'ABCDE',
            'repoids': ['repo-1', 'repo-2'],
            'package_profile': ['some RPMs and stuff']
        }
        self.v1_test_db.database.consumers.insert(new_consumer)

        new_consumer_history = {
            'consumer_id': 'fake-consumer',
            'originator': 'admin',
            'type_name': 'install',
            'details': 'installed stuff',
            'timestamp': '10-23-2012',
        }
        self.v1_test_db.database.consumer_history.insert(new_consumer_history)

        # Test
        report = consumers.upgrade(self.v1_test_db.database,
                                   self.tmp_test_db.database)

        # Verify
        self.assertTrue(isinstance(report, UpgradeStepReport))
        self.assertTrue(report.success)

        v1_entries = list(self.v1_test_db.database.consumer_history.find())
        v2_entries = list(self.tmp_test_db.database.consumer_history.find())
        self.assertEqual(len(v1_entries), len(v2_entries))

        v1_consumers = list(self.v1_test_db.database.consumers.find())
        v2_consumers = list(self.tmp_test_db.database.consumers.find())
        self.assertEqual(len(v1_consumers), len(v2_consumers))

        binding_coll = self.tmp_test_db.database.consumer_bindings
        for v1_consumer in v1_consumers:
            for repo_id in v1_consumer['repoids']:
                binding = binding_coll.find_one({
                    'consumer_id':
                    v1_consumer['id'],
                    'repo_id':
                    repo_id
                })
                self.assertTrue(binding is not None)
                self.assertEqual(binding['distributor_id'],
                                 consumers.YUM_DISTRIBUTOR_ID)

        profile_coll = self.tmp_test_db.database.consumer_unit_profiles
        for v1_consumer in v1_consumers:
            if v1_consumer['package_profile']:
                profile = profile_coll.find_one(
                    {'consumer_id': v1_consumer['id']})
                self.assertTrue(profile is not None)
예제 #2
0
    def test_consumers_idempotency(self):
        # Setup
        consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)

        # Test
        report = consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)

        # Verify
        self.assertTrue(isinstance(report, UpgradeStepReport))
        self.assertTrue(report.success)

        v1_entries = list(self.v1_test_db.database.consumer_history.find())
        v2_entries = list(self.tmp_test_db.database.consumer_history.find())
        self.assertEqual(len(v1_entries), len(v2_entries))

        v1_consumers = list(self.v1_test_db.database.consumers.find())
        v2_consumers = list(self.tmp_test_db.database.consumers.find())
        self.assertEqual(len(v1_consumers), len(v2_consumers))

        binding_coll = self.tmp_test_db.database.consumer_bindings
        for v1_consumer in v1_consumers:
            for repo_id in v1_consumer["repoids"]:
                binding = binding_coll.find_one({"consumer_id": v1_consumer["id"], "repo_id": repo_id})
                self.assertTrue(binding is not None)
                self.assertEqual(binding["distributor_id"], consumers.YUM_DISTRIBUTOR_ID)

        profile_coll = self.tmp_test_db.database.consumer_unit_profiles
        for v1_consumer in v1_consumers:
            if v1_consumer["package_profile"]:
                profile = profile_coll.find_one({"consumer_id": v1_consumer["id"]})
                self.assertTrue(profile is not None)
예제 #3
0
    def test_update_idempotency(self):

        # Test
        consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)
        consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)

        # Verify
        v2_coll = self.tmp_test_db.database.consumer_groups
        all_groups_cursor = v2_coll.find({})
        self.assertEqual(2, all_groups_cursor.count())
예제 #4
0
    def test_update_idempotency(self):

        # Test
        consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)
        consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)

        # Verify
        v2_coll = self.tmp_test_db.database.consumer_groups
        all_groups_cursor = v2_coll.find({})
        self.assertEqual(2, all_groups_cursor.count())
예제 #5
0
    def test_consumers_resumed(self):
        # Setup
        consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)
        new_consumer = {
            "id": "fake-consumer",
            "description": "fake-description",
            "key_value_pairs": {"a": "a"},
            "capabilities": {},
            "certificate": "ABCDE",
            "repoids": ["repo-1", "repo-2"],
            "package_profile": ["some RPMs and stuff"],
        }
        self.v1_test_db.database.consumers.insert(new_consumer)

        new_consumer_history = {
            "consumer_id": "fake-consumer",
            "originator": "admin",
            "type_name": "install",
            "details": "installed stuff",
            "timestamp": "10-23-2012",
        }
        self.v1_test_db.database.consumer_history.insert(new_consumer_history)

        # Test
        report = consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)

        # Verify
        self.assertTrue(isinstance(report, UpgradeStepReport))
        self.assertTrue(report.success)

        v1_entries = list(self.v1_test_db.database.consumer_history.find())
        v2_entries = list(self.tmp_test_db.database.consumer_history.find())
        self.assertEqual(len(v1_entries), len(v2_entries))

        v1_consumers = list(self.v1_test_db.database.consumers.find())
        v2_consumers = list(self.tmp_test_db.database.consumers.find())
        self.assertEqual(len(v1_consumers), len(v2_consumers))

        binding_coll = self.tmp_test_db.database.consumer_bindings
        for v1_consumer in v1_consumers:
            for repo_id in v1_consumer["repoids"]:
                binding = binding_coll.find_one({"consumer_id": v1_consumer["id"], "repo_id": repo_id})
                self.assertTrue(binding is not None)
                self.assertEqual(binding["distributor_id"], consumers.YUM_DISTRIBUTOR_ID)

        profile_coll = self.tmp_test_db.database.consumer_unit_profiles
        for v1_consumer in v1_consumers:
            if v1_consumer["package_profile"]:
                profile = profile_coll.find_one({"consumer_id": v1_consumer["id"]})
                self.assertTrue(profile is not None)
예제 #6
0
    def test_consumers(self):
        # Test
        report = consumers.upgrade(self.v1_test_db.database,
                                   self.tmp_test_db.database)

        # Verify
        self.assertTrue(isinstance(report, UpgradeStepReport))
        self.assertTrue(report.success)

        # - Consumer History -
        v1_entries = list(self.v1_test_db.database.consumer_history.find())
        v2_entries = list(self.tmp_test_db.database.consumer_history.find())
        self.assertEqual(len(v1_entries), len(v2_entries))

        for v1_entry, v2_entry in zip(v1_entries, v2_entries):
            self.assertEqual(v1_entry.pop('type_name'), v2_entry.pop('type'))
            self.assertEqual(v1_entry, v2_entry)

        # - Consumers -
        v1_consumers = list(self.v1_test_db.database.consumers.find())
        v2_consumers = list(self.tmp_test_db.database.consumers.find())
        self.assertEqual(len(v1_consumers), len(v2_consumers))

        for v1_consumer, v2_consumer in zip(v1_consumers, v2_consumers):
            self.assertTrue(isinstance(v2_consumer['_id'], ObjectId))
            self.assertEqual(v1_consumer['id'], v2_consumer['id'])
            self.assertEqual(v1_consumer['id'], v2_consumer['display_name'])
            self.assertEqual(v1_consumer['key_value_pairs'],
                             v2_consumer['notes'])
            self.assertEqual(v1_consumer['capabilities'],
                             v2_consumer['capabilities'])
            self.assertEqual(v1_consumer['certificate'],
                             v2_consumer['certificate'])

        # - Consumer Bindings -
        binding_coll = self.tmp_test_db.database.consumer_bindings
        for v1_consumer in v1_consumers:
            for repo_id in v1_consumer['repoids']:
                binding = binding_coll.find_one({
                    'consumer_id':
                    v1_consumer['id'],
                    'repo_id':
                    repo_id
                })
                self.assertTrue(binding is not None)
                self.assertEqual(binding['distributor_id'],
                                 consumers.YUM_DISTRIBUTOR_ID)

        # - Unit Profile -
        profile_coll = self.tmp_test_db.database.consumer_unit_profiles
        for v1_consumer in v1_consumers:
            if v1_consumer['package_profile']:
                profile = profile_coll.find_one(
                    {'consumer_id': v1_consumer['id']})
                self.assertEqual(profile['consumer_id'], v1_consumer['id'])
                self.assertEqual(profile['content_type'], consumers.RPM_TYPE)
                self.assertEqual(profile['profile'],
                                 v1_consumer['package_profile'])
예제 #7
0
    def test_consumers_idempotency(self):
        # Setup
        consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)

        # Test
        report = consumers.upgrade(self.v1_test_db.database,
                                   self.tmp_test_db.database)

        # Verify
        self.assertTrue(isinstance(report, UpgradeStepReport))
        self.assertTrue(report.success)

        v1_entries = list(self.v1_test_db.database.consumer_history.find())
        v2_entries = list(self.tmp_test_db.database.consumer_history.find())
        self.assertEqual(len(v1_entries), len(v2_entries))

        v1_consumers = list(self.v1_test_db.database.consumers.find())
        v2_consumers = list(self.tmp_test_db.database.consumers.find())
        self.assertEqual(len(v1_consumers), len(v2_consumers))

        binding_coll = self.tmp_test_db.database.consumer_bindings
        for v1_consumer in v1_consumers:
            for repo_id in v1_consumer['repoids']:
                binding = binding_coll.find_one({
                    'consumer_id':
                    v1_consumer['id'],
                    'repo_id':
                    repo_id
                })
                self.assertTrue(binding is not None)
                self.assertEqual(binding['distributor_id'],
                                 consumers.YUM_DISTRIBUTOR_ID)

        profile_coll = self.tmp_test_db.database.consumer_unit_profiles
        for v1_consumer in v1_consumers:
            if v1_consumer['package_profile']:
                profile = profile_coll.find_one(
                    {'consumer_id': v1_consumer['id']})
                self.assertTrue(profile is not None)
예제 #8
0
    def test_update(self):

        # Test
        consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)

        # Verify
        v2_coll = self.tmp_test_db.database.consumer_groups
        all_groups_cursor = v2_coll.find({})
        self.assertEqual(2, all_groups_cursor.count())

        for i in range(1, 3):
            group_x = v2_coll.find_one({'id': 'group-%s' % i})
            self.assertTrue(group_x is not None)
            self.assertEqual(group_x['display_name'], 'group-%s' % i)
            self.assertEqual(group_x['description'], 'desc-%s' % i)
            self.assertEqual(group_x['notes'], {'key': 'value-%s' % i})
            self.assertEqual(group_x['scratchpad'], None)
            expected_consumers = ['consumer-%s' % i for i in range(i, 10, 2)]
            self.assertEqual(group_x['consumer_ids'], expected_consumers)

        # Make sure consumer-0 isn't stuffed into a group by accident
        zero_groups = v2_coll.find({'$in': {'consumer_ids': 'consumer-0'}})
        self.assertEqual(0, zero_groups.count())
예제 #9
0
    def test_update(self):

        # Test
        consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)

        # Verify
        v2_coll = self.tmp_test_db.database.consumer_groups
        all_groups_cursor = v2_coll.find({})
        self.assertEqual(2, all_groups_cursor.count())

        for i in range(1, 3):
            group_x = v2_coll.find_one({"id": "group-%s" % i})
            self.assertTrue(group_x is not None)
            self.assertEqual(group_x["display_name"], "group-%s" % i)
            self.assertEqual(group_x["description"], "desc-%s" % i)
            self.assertEqual(group_x["notes"], {"key": "value-%s" % i})
            self.assertEqual(group_x["scratchpad"], None)
            expected_consumers = ["consumer-%s" % i for i in range(i, 10, 2)]
            self.assertEqual(group_x["consumer_ids"], expected_consumers)

        # Make sure consumer-0 isn't stuffed into a group by accident
        zero_groups = v2_coll.find({"$in": {"consumer_ids": "consumer-0"}})
        self.assertEqual(0, zero_groups.count())
예제 #10
0
    def test_consumers(self):
        # Test
        report = consumers.upgrade(self.v1_test_db.database, self.tmp_test_db.database)

        # Verify
        self.assertTrue(isinstance(report, UpgradeStepReport))
        self.assertTrue(report.success)

        # - Consumer History -
        v1_entries = list(self.v1_test_db.database.consumer_history.find())
        v2_entries = list(self.tmp_test_db.database.consumer_history.find())
        self.assertEqual(len(v1_entries), len(v2_entries))

        for v1_entry, v2_entry in zip(v1_entries, v2_entries):
            self.assertEqual(v1_entry.pop("type_name"), v2_entry.pop("type"))
            self.assertEqual(v1_entry, v2_entry)

        # - Consumers -
        v1_consumers = list(self.v1_test_db.database.consumers.find())
        v2_consumers = list(self.tmp_test_db.database.consumers.find())
        self.assertEqual(len(v1_consumers), len(v2_consumers))

        for v1_consumer, v2_consumer in zip(v1_consumers, v2_consumers):
            self.assertTrue(isinstance(v2_consumer["_id"], ObjectId))
            self.assertEqual(v1_consumer["id"], v2_consumer["id"])
            self.assertEqual(v1_consumer["id"], v2_consumer["display_name"])
            self.assertEqual(v1_consumer["key_value_pairs"], v2_consumer["notes"])
            self.assertEqual(v1_consumer["capabilities"], v2_consumer["capabilities"])
            self.assertEqual(v1_consumer["certificate"], v2_consumer["certificate"])

        # - Consumer Bindings -
        binding_coll = self.tmp_test_db.database.consumer_bindings
        for v1_consumer in v1_consumers:
            for repo_id in v1_consumer["repoids"]:
                binding = binding_coll.find_one({"consumer_id": v1_consumer["id"], "repo_id": repo_id})
                self.assertTrue(binding is not None)
                self.assertEqual(binding["distributor_id"], consumers.YUM_DISTRIBUTOR_ID)

        # - Unit Profile -
        profile_coll = self.tmp_test_db.database.consumer_unit_profiles
        for v1_consumer in v1_consumers:
            if v1_consumer["package_profile"]:
                profile = profile_coll.find_one({"consumer_id": v1_consumer["id"]})
                self.assertEqual(profile["consumer_id"], v1_consumer["id"])
                self.assertEqual(profile["content_type"], consumers.RPM_TYPE)
                self.assertEqual(profile["profile"], v1_consumer["package_profile"])