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)
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)
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
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)