diff --git a/lib/locking.py b/lib/locking.py index 7be15519ff0cebf28954391316fa0cb581c8ebb1..733fa84514ed3958536a8886d9db9ba01305b928 100644 --- a/lib/locking.py +++ b/lib/locking.py @@ -669,24 +669,19 @@ class LockSet: # - at levels LEVEL_NODE and LEVEL_INSTANCE reside node and instance locks. # If you need more than one node, or more than one instance, acquire them at # the same time. -# - level LEVEL_CONFIG contains the configuration lock, which you must acquire -# before reading or changing the config file. LEVEL_CLUSTER = 0 LEVEL_NODE = 1 LEVEL_INSTANCE = 2 -LEVEL_CONFIG = 3 LEVELS = [LEVEL_CLUSTER, LEVEL_NODE, - LEVEL_INSTANCE, - LEVEL_CONFIG] + LEVEL_INSTANCE] # Lock levels which are modifiable LEVELS_MOD = [LEVEL_NODE, LEVEL_INSTANCE] -# Constant for the big ganeti lock and config lock +# Constant for the big ganeti lock BGL = 'BGL' -CONFIG = 'config' class GanetiLockManager: @@ -720,7 +715,6 @@ class GanetiLockManager: LEVEL_CLUSTER: LockSet([BGL]), LEVEL_NODE: LockSet(nodes), LEVEL_INSTANCE: LockSet(instances), - LEVEL_CONFIG: LockSet([CONFIG]), } def _names(self, level): diff --git a/test/ganeti.locking_unittest.py b/test/ganeti.locking_unittest.py index 41ec35444c1f7611ffe0e4e35a7ac9f9d05633e1..ee94e12a58abd4d2918c6222b1fcbd19450a6c61 100755 --- a/test/ganeti.locking_unittest.py +++ b/test/ganeti.locking_unittest.py @@ -583,7 +583,6 @@ class TestGanetiLockManager(unittest.TestCase): self.assertEqual(self.GL._names(locking.LEVEL_NODE), set(self.nodes)) self.assertEqual(self.GL._names(locking.LEVEL_INSTANCE), set(self.instances)) - self.assertEqual(self.GL._names(locking.LEVEL_CONFIG), set(['config'])) def testInitAndResources(self): locking.GanetiLockManager._instance = None @@ -591,14 +590,12 @@ class TestGanetiLockManager(unittest.TestCase): self.assertEqual(self.GL._names(locking.LEVEL_CLUSTER), set(['BGL'])) self.assertEqual(self.GL._names(locking.LEVEL_NODE), set()) self.assertEqual(self.GL._names(locking.LEVEL_INSTANCE), set()) - self.assertEqual(self.GL._names(locking.LEVEL_CONFIG), set(['config'])) locking.GanetiLockManager._instance = None self.GL = locking.GanetiLockManager(nodes=self.nodes) self.assertEqual(self.GL._names(locking.LEVEL_CLUSTER), set(['BGL'])) self.assertEqual(self.GL._names(locking.LEVEL_NODE), set(self.nodes)) self.assertEqual(self.GL._names(locking.LEVEL_INSTANCE), set()) - self.assertEqual(self.GL._names(locking.LEVEL_CONFIG), set(['config'])) locking.GanetiLockManager._instance = None self.GL = locking.GanetiLockManager(instances=self.instances) @@ -606,7 +603,6 @@ class TestGanetiLockManager(unittest.TestCase): self.assertEqual(self.GL._names(locking.LEVEL_NODE), set()) self.assertEqual(self.GL._names(locking.LEVEL_INSTANCE), set(self.instances)) - self.assertEqual(self.GL._names(locking.LEVEL_CONFIG), set(['config'])) def testAcquireRelease(self): self.GL.acquire(locking.LEVEL_CLUSTER, ['BGL'], shared=1) @@ -616,12 +612,10 @@ class TestGanetiLockManager(unittest.TestCase): self.GL.acquire(locking.LEVEL_NODE, ['n1']) self.assertEquals(self.GL._list_owned(locking.LEVEL_NODE), set(['n1'])) self.GL.acquire(locking.LEVEL_INSTANCE, ['i1', 'i2']) - self.GL.acquire(locking.LEVEL_CONFIG, ['config']) self.GL.release(locking.LEVEL_INSTANCE, ['i2']) self.assertEquals(self.GL._list_owned(locking.LEVEL_INSTANCE), set(['i1'])) self.GL.release(locking.LEVEL_NODE) self.GL.release(locking.LEVEL_INSTANCE) - self.GL.release(locking.LEVEL_CONFIG) self.assertRaises(errors.LockError, self.GL.acquire, locking.LEVEL_INSTANCE, ['i5']) self.GL.acquire(locking.LEVEL_INSTANCE, ['i3'], shared=1) @@ -645,9 +639,6 @@ class TestGanetiLockManager(unittest.TestCase): self.assertRaises(AssertionError, self.GL.release, locking.LEVEL_CLUSTER) self.GL.release(locking.LEVEL_INSTANCE) - self.GL.acquire(locking.LEVEL_CONFIG, ['config']) - self.assertRaises(AssertionError, self.GL.release, - locking.LEVEL_CLUSTER) def testWrongOrder(self): self.GL.acquire(locking.LEVEL_CLUSTER, ['BGL'], shared=1) @@ -656,16 +647,6 @@ class TestGanetiLockManager(unittest.TestCase): locking.LEVEL_NODE, ['n1']) self.assertRaises(AssertionError, self.GL.acquire, locking.LEVEL_INSTANCE, ['i2']) - self.GL.acquire(locking.LEVEL_CONFIG, ['config']) - self.assertRaises(AssertionError, self.GL.acquire, - locking.LEVEL_CONFIG, ['config']) - self.GL.release(locking.LEVEL_INSTANCE) - self.assertRaises(AssertionError, self.GL.acquire, - locking.LEVEL_NODE, ['n1']) - self.assertRaises(AssertionError, self.GL.acquire, - locking.LEVEL_INSTANCE, ['i2']) - self.assertRaises(AssertionError, self.GL.acquire, - locking.LEVEL_CONFIG, ['config']) # Helper function to run as a thread that shared the BGL and then acquires # some locks at another level. @@ -685,12 +666,10 @@ class TestGanetiLockManager(unittest.TestCase): self.assertEqual(self.done.get(True, 1), 'DONE') self.GL.acquire(locking.LEVEL_NODE, ['n1']) self.GL.acquire(locking.LEVEL_INSTANCE, ['i3']) - self.GL.acquire(locking.LEVEL_CONFIG, ['config']) Thread(target=self._doLock, args=(locking.LEVEL_INSTANCE, 'i1', 1)).start() self.assertEqual(self.done.get(True, 1), 'DONE') Thread(target=self._doLock, args=(locking.LEVEL_INSTANCE, 'i3', 1)).start() self.assertRaises(Queue.Empty, self.done.get, True, 0.2) - self.GL.release(locking.LEVEL_CONFIG) self.GL.release(locking.LEVEL_INSTANCE) self.assertEqual(self.done.get(True, 1), 'DONE') self.GL.acquire(locking.LEVEL_INSTANCE, ['i2'], shared=1)