def launch(bii):
    disk = bii.hive_disk_image
    migration_store = MigrationStore(disk.hivedb)
    manager = MigrationManager(migration_store, get_client_migrations(), bii.user_io.out)

    # Pass in kwargs all variables migrations can need
    manager.migrate(bii)
Exemple #2
0
def launch(bii):
    disk = bii.hive_disk_image
    migration_store = MigrationStore(disk.hivedb)
    manager = MigrationManager(migration_store, get_client_migrations(),
                               bii.user_io.out)

    # Pass in kwargs all variables migrations can need
    manager.migrate(bii)
Exemple #3
0
    def test_migration_not_found(self):
        """Last Migration not found in local migrations,
        incompatible hive<=>biicode version """
        self.store.read_last_migrated.return_value = self.mig3
        # Now mig3 does not exist!
        self.migration_manager = MigrationManager(self.store,
                                                  [self.mig1, self.mig2],
                                                  Mock())

        self.assertRaises(BiiException, self.migration_manager.migrate)
Exemple #4
0
    def setUp(self):
        unittest.TestCase.setUp(self)

        self.mig1 = TMigration1()
        self.mig2 = TMigration2()
        self.mig3 = TMigration3()

        self.store = Mock()
        self.store.store_executed_migration = Mock()
        self.migration_manager = MigrationManager(self.store,
                                                  [self.mig1, self.mig2, self.mig3],
                                                  Mock())
def launch():
    # Default MongoClient params are:
    # w=1  perform a write acknowledgement only in primary
    # j=False the driver does not add j to the getlasterror command
    # fsync=False the server does not add Sync to disk. to the getlasterror command
    mongo_connection = MongoClient(BII_MONGO_URI, max_pool_size=BII_MAX_MONGO_POOL_SIZE)
    migration_store = MigrationStore(mongo_connection)
    server_store = MongoServerStore(mongo_connection)
    biiout = OutputStream()
    manager = MigrationManager(migration_store, SERVER_MIGRATIONS, biiout)

    # Pass in kwargs all variables migrations can need
    n1 = time.time()
    manager.migrate(server_store=server_store)
    n2 = time.time()
    biiout.info('All took %s seconds' % str(n2 - n1))

    # DO NOT REMOVE THIS PRINT NOR REPLACE WITH LOGGER, ITS A CONSOLE SCRIPT
    # INVOKED IN DEPLOYMENT PROCESS AND ITS NECESSARY IT PRINTS TO OUTPUT
    print biiout
Exemple #6
0
class MigrationManagerTest(unittest.TestCase):

    def setUp(self):
        unittest.TestCase.setUp(self)

        self.mig1 = TMigration1()
        self.mig2 = TMigration2()
        self.mig3 = TMigration3()

        self.store = Mock()
        self.store.store_executed_migration = Mock()
        self.migration_manager = MigrationManager(self.store,
                                                  [self.mig1, self.mig2, self.mig3],
                                                  Mock())

    def test_migrate_nothing(self):
        # Last is last migrated, nothing to do
        self.store.read_last_migrated.return_value = self.mig3
        self.migration_manager.migrate()
        self.assertFalse(self.mig1.migrate.called)
        self.assertFalse(self.mig2.migrate.called)
        self.assertFalse(self.mig3.migrate.called)

        self.assertEqual(self.mig1.applied_timestamp, None)
        self.assertEqual(self.mig2.applied_timestamp, None)
        self.assertEqual(self.mig3.applied_timestamp, None)

        self.assertEquals(self.store.store_executed_migration.call_count, 0)

    def test_migrate_all(self):
        # Nothing is migrate, migrate all
        self.store.read_last_migrated.return_value = None
        self.migration_manager.migrate()
        self.assertTrue(self.mig1.migrate.called)
        self.assertTrue(self.mig2.migrate.called)
        self.assertTrue(self.mig3.migrate.called)

        self.assertNotEqual(self.mig1.applied_timestamp, None)
        self.assertNotEqual(self.mig2.applied_timestamp, None)
        self.assertNotEqual(self.mig3.applied_timestamp, None)

        self.assertEquals(self.store.store_executed_migration.call_count, 3)
        self.store.store_executed_migration.assert_called_with(self.mig3)

    def test_migrate_some(self):
        # 1 and 2 is migrated, lets migrate 3!
        self.store.read_last_migrated.return_value = self.mig2
        self.migration_manager.migrate()
        self.assertFalse(self.mig1.migrate.called)
        self.assertFalse(self.mig2.migrate.called)
        self.assertTrue(self.mig3.migrate.called)

        self.assertEqual(self.mig1.applied_timestamp, None)
        self.assertEqual(self.mig2.applied_timestamp, None)
        self.assertNotEqual(self.mig3.applied_timestamp, None)

        self.assertEquals(self.store.store_executed_migration.call_count, 1)
        self.store.store_executed_migration.assert_called_with(self.mig3)

    def test_migration_not_found(self):
        """Last Migration not found in local migrations,
        incompatible hive<=>biicode version """
        self.store.read_last_migrated.return_value = self.mig3
        # Now mig3 does not exist!
        self.migration_manager = MigrationManager(self.store,
                                                  [self.mig1, self.mig2],
                                                  Mock())

        self.assertRaises(BiiException, self.migration_manager.migrate)