def test_cluster_lock_cluster_lock_first(self): observed = db_api.cluster_lock_acquire(self.cluster.id, UUID1, -1) self.assertIn(UUID1, observed) observed = db_api.cluster_lock_acquire(self.cluster.id, UUID2, -1) self.assertNotIn(UUID2, observed) observed = db_api.cluster_lock_release(self.cluster.id, UUID2, -1) self.assertFalse(observed) observed = db_api.cluster_lock_acquire(self.cluster.id, UUID3, 1) self.assertNotIn(UUID3, observed) observed = db_api.cluster_lock_release(self.cluster.id, UUID3, 1) self.assertFalse(observed) observed = db_api.cluster_lock_release(self.cluster.id, UUID1, -1) self.assertTrue(observed) observed = db_api.cluster_lock_acquire(self.cluster.id, UUID2, -1) self.assertIn(UUID2, observed) observed = db_api.cluster_lock_release(self.cluster.id, UUID2, -1) self.assertTrue(observed) observed = db_api.cluster_lock_acquire(self.cluster.id, UUID3, 1) self.assertIn(UUID3, observed) observed = db_api.cluster_lock_release(self.cluster.id, UUID3, 1) self.assertTrue(observed)
def test_cluster_lock_node_scope(self): observed = db_api.cluster_lock_acquire(self.cluster.id, UUID1, 1) self.assertIn(UUID1, observed) self.assertNotIn(UUID2, observed) observed = db_api.cluster_lock_acquire(self.cluster.id, UUID2, 1) self.assertIn(UUID1, observed) self.assertIn(UUID2, observed) observed = db_api.cluster_lock_acquire(self.cluster.id, UUID2, 1) self.assertIn(UUID1, observed) self.assertIn(UUID2, observed) self.assertEqual(2, len(observed)) observed = db_api.cluster_lock_release(self.cluster.id, UUID1, 1) self.assertTrue(observed) observed = db_api.cluster_lock_release(self.cluster.id, UUID1, 1) self.assertFalse(observed) observed = db_api.cluster_lock_release(self.cluster.id, UUID3, 1) self.assertFalse(observed) observed = db_api.cluster_lock_release(self.cluster.id, UUID2, 1) self.assertTrue(observed) observed = db_api.cluster_lock_release(self.cluster.id, UUID2, 1) self.assertFalse(observed)
def test_cluster_is_locked(self): # newly created cluster should not be locked observed = db_api.cluster_is_locked(self.cluster.id) self.assertFalse(observed) # lock cluster observed = db_api.cluster_lock_acquire(self.cluster.id, UUID1, -1) self.assertIn(UUID1, observed) # cluster should be locked observed = db_api.cluster_is_locked(self.cluster.id) self.assertTrue(observed) # release cluster lock observed = db_api.cluster_lock_release(self.cluster.id, UUID1, -1) self.assertTrue(observed) # cluster should not be locked anymore observed = db_api.cluster_is_locked(self.cluster.id) self.assertFalse(observed)