This removes the config lock on MarkInstanceDisksInactive.

Moved the old implementation of MarkInstanceDisksInactive
to config_mock for test purposes.

Signed-off-by: BSRK Aditya <[email protected]>
---
 lib/config/__init__.py           |   12 ++++--------
 test/py/testutils/config_mock.py |    3 +++
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/lib/config/__init__.py b/lib/config/__init__.py
index 991141f..de921e5 100644
--- a/lib/config/__init__.py
+++ b/lib/config/__init__.py
@@ -1846,15 +1846,11 @@ class ConfigWriter(object):
         return result
     return objects.Instance.FromDict(utils.Retry(WithRetry, 0.1, 30))
 
-  @ConfigSync()
   def MarkInstanceDisksInactive(self, inst_uuid):
-    """Mark the status of instance disks inactive.
-
-    @rtype: L{objects.Instance}
-    @return: the updated instance object
-
-    """
-    return self._SetInstanceStatus(inst_uuid, None, False, None)
+    """Mark the status of instance disks inactive."""
+    utils.SimpleRetry(True, self._wconfd.MarkInstanceDisksInactive, 0.1, 30,
+                      args=[inst_uuid])
+    self.OutDate()
 
   def _UnlockedGetInstanceList(self):
     """Get the list of instances.
diff --git a/test/py/testutils/config_mock.py b/test/py/testutils/config_mock.py
index aa36af9..5e783e2 100644
--- a/test/py/testutils/config_mock.py
+++ b/test/py/testutils/config_mock.py
@@ -932,6 +932,9 @@ class ConfigMock(config.ConfigWriter):
   def MarkInstanceDisksActive(self, inst_uuid):
     return self._SetInstanceStatus(inst_uuid, None, True, None)
 
+  def MarkInstanceDisksInactive(self, inst_uuid):
+    return self._SetInstanceStatus(inst_uuid, None, False, None)
+
   def SetInstancePrimaryNode(self, inst_uuid, target_node_uuid):
     self._UnlockedGetInstanceInfo(inst_uuid).primary_node = target_node_uuid
 
-- 
1.7.10.4

Reply via email to