Пример #1
0
    def create(self, name, version):
        """
        Create and return a MigrationTracker with specified name and version.

        :param name:    The name of the package that the MigrationTracker is tracking.
        :type  name:    str
        :param version: The version we want to store on the new MigrationTracker.
        :type  version: int
        :rtype:         pulp.server.db.model.migration_tracker.MigrationTracker
        """
        new_mt = MigrationTracker(name=name, version=version)
        new_mt.save()
        return new_mt
Пример #2
0
    def get(self, name):
        """
        Retrieve a MigrationTracker from the database by name.

        :param name: The name of the MigrationTracker that we wish to retrieve.
        :type  name: str
        :rtype:      pulp.server.db.model.migration_tracker.MigrationTracker
        """
        migration_tracker = self._collection.find_one({'name': name})
        if migration_tracker is not None:
            migration_tracker = MigrationTracker(
                name=migration_tracker['name'],
                version=migration_tracker['version'])
            return migration_tracker
        raise DoesNotExist('MigrationTracker with id %s does not exist.')
Пример #3
0
 def test_save(self):
     # Make sure we are starting off clean
     self.assertEquals(MigrationTracker.get_collection().find({}).count(), 0)
     # Instantiate a MigrationTracker
     mt = MigrationTracker('meaning_of_life', 41)
     # At this point there should not be a MigrationTracker in the database
     self.assertEquals(mt.get_collection().find({}).count(), 0)
     # saving the mt should add it to the DB
     mt.save()
     self.assertEquals(mt.get_collection().find({}).count(), 1)
     mt_bson = mt.get_collection().find_one({'name': 'meaning_of_life'})
     self.assertEquals(mt_bson['name'], 'meaning_of_life')
     self.assertEquals(mt_bson['version'], 41)
     # now let's update the version to 42, the correct meaning of life
     mt.version = 42
     mt.save()
     # see if the updated meaning of life made it to the DB
     self.assertEquals(mt.get_collection().find({}).count(), 1)
     mt_bson = mt.get_collection().find_one({'name': 'meaning_of_life'})
     self.assertEquals(mt_bson['name'], 'meaning_of_life')
     self.assertEquals(mt_bson['version'], 42)
Пример #4
0
    def __init__(self, python_package):
        """
        Initialize the MigrationPackage to represent the Python migration package passed in.

        :param python_package: The Python package this object should represent
        :type  python_package: package
        """
        self._package = python_package
        # This is an object representation of the DB object that keeps track of the migration
        # version that has been applied

        try:
            self._migration_tracker = MigrationTracker.objects().get(
                name=self.name)
        except DoesNotExist:
            self._migration_tracker = MigrationTracker(name=self.name)
            self._migration_tracker.save()

        # Calculate the latest available version
        available_versions = self.available_versions
        if available_versions:
            self.latest_available_version = available_versions[-1]
        else:
            self.latest_available_version = 0
Пример #5
0
 def test_presense_of_ns(self):
     mt = MigrationTracker('meaning_of_life')
     self.assertEquals(mt._ns, 'migration_trackers')
Пример #6
0
 def test_name_version_default(self):
     mt = MigrationTracker('meaning_of_life')
     self.assertEquals(mt.name, 'meaning_of_life')
     self.assertEquals(mt.version, 0)
Пример #7
0
 def test___init__(self):
     mt = MigrationTracker('meaning_of_life', 42)
     self.assertEquals(mt.name, 'meaning_of_life')
     self.assertEquals(mt.version, 42)
     self.assertEquals(mt._collection, MigrationTracker.get_collection())