MarkInstanceDisksActive is used by instance migration.

Add a mock MarkInstanceDisksActive for tests.

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

diff --git a/lib/config/__init__.py b/lib/config/__init__.py
index 61e5c20..d9e5c6c 100644
--- a/lib/config/__init__.py
+++ b/lib/config/__init__.py
@@ -1893,7 +1893,6 @@ class ConfigWriter(object):
     self._SetInstanceStatus(inst_uuid, constants.ADMINST_DOWN, None,
                             constants.USER_SOURCE)
 
-  @ConfigSync()
   def MarkInstanceDisksActive(self, inst_uuid):
     """Mark the status of instance disks active.
 
@@ -1901,7 +1900,15 @@ class ConfigWriter(object):
     @return: the updated instance object
 
     """
-    return self._SetInstanceStatus(inst_uuid, None, True, None)
+    def WithRetry():
+      result = self._wconfd.MarkInstanceDisksActive(inst_uuid)
+      self.OutDate()
+
+      if result is None:
+        raise utils.RetryAgain()
+      else:
+        return result
+    return objects.Instance.FromDict(utils.Retry(WithRetry, 0.1, 30))
 
   @ConfigSync()
   def MarkInstanceDisksInactive(self, inst_uuid):
diff --git a/test/py/testutils/config_mock.py b/test/py/testutils/config_mock.py
index 7c06fbc..1cdfba4 100644
--- a/test/py/testutils/config_mock.py
+++ b/test/py/testutils/config_mock.py
@@ -918,3 +918,6 @@ class ConfigMock(config.ConfigWriter):
     if update_serial:
       self._ConfigData().cluster.serial_no += 1 # pylint: disable=E1103
       self._ConfigData().cluster.mtime = now
+
+  def MarkInstanceDisksActive(self, inst_uuid):
+    return self._SetInstanceStatus(inst_uuid, None, True, None)
-- 
1.7.10.4

Reply via email to