Exemplo n.º 1
0
 def test_migrate_instance_groups_skips_existing(self):
     self._api_group(uuid=uuids.group)
     self._main_group(uuid=uuids.group)
     total, done = instance_group.migrate_instance_groups_to_api_db(
                     self.context, 100)
     self.assertEqual(1, total)
     self.assertEqual(1, done)
     total, done = instance_group.migrate_instance_groups_to_api_db(
                     self.context, 100)
     self.assertEqual(0, total)
     self.assertEqual(0, done)
Exemplo n.º 2
0
    def test_migrate_instance_groups(self):
        self._api_group(name='apigroup')
        orig_main_models = []
        orig_main_models.append(self._main_group(name='maingroup1'))
        orig_main_models.append(self._main_group(name='maingroup2'))
        orig_main_models.append(self._main_group(name='maingroup3'))

        total, done = instance_group.migrate_instance_groups_to_api_db(
                        self.context, 2)
        self.assertEqual(2, total)
        self.assertEqual(2, done)

        # This only fetches from the api db
        api_groups = objects.InstanceGroupList._get_from_db(self.context)
        self.assertEqual(3, len(api_groups))

        # This only fetches from the main db
        main_groups = db_api.instance_group_get_all(self.context)
        self.assertEqual(1, len(main_groups))

        self.assertEqual((1, 1),
                         instance_group.migrate_instance_groups_to_api_db(
                                self.context, 100))
        self.assertEqual((0, 0),
                         instance_group.migrate_instance_groups_to_api_db(
                                self.context, 100))

        # Verify the api_models have all their attributes set properly
        api_models = objects.InstanceGroupList._get_from_db(self.context)
        # Filter out the group that was created in the api db originally
        api_models = [x for x in api_models if x.name != 'apigroup']
        key_func = lambda model: model.uuid
        api_models = sorted(api_models, key=key_func)
        orig_main_models = sorted(orig_main_models, key=key_func)
        ignore_fields = ('id', 'hosts', 'deleted', 'deleted_at', 'created_at',
                         'updated_at')
        for i in range(len(api_models)):
            for field in instance_group.InstanceGroup.fields:
                if field not in ignore_fields:
                    self.assertEqual(orig_main_models[i][field],
                                     api_models[i][field])