This is used in instance migration
Signed-off-by: BSRK Aditya <[email protected]>
---
src/Ganeti/WConfd/ConfigModifications.hs | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/Ganeti/WConfd/ConfigModifications.hs
b/src/Ganeti/WConfd/ConfigModifications.hs
index 7a91d1a..d72ad25 100644
--- a/src/Ganeti/WConfd/ConfigModifications.hs
+++ b/src/Ganeti/WConfd/ConfigModifications.hs
@@ -537,6 +537,22 @@ markInstanceDisksActive iUuid = do
return (inst'', cs'))
(return ())
+-- | Mark the status of instance disks inactive.
+markInstanceDisksInactive :: InstanceUUID -> WConfdMonad Bool
+markInstanceDisksInactive iUuid = do
+ ct <- liftIO getClockTime
+ let iL = csConfigDataL . configInstancesL . alterContainerL iUuid
+ f :: MonadError GanetiException m => ConfigState -> m ConfigState
+ f = mapMOf iL (maybe
+ (throwError . ConfigurationError $
+ printf "Could not find instance with UUID %s" iUuid)
+ (return
+ . Just
+ . (instDisksActiveL .~ False)
+ . (instSerialL %~ (+1))
+ . (instMtimeL .~ ct)))
+ isJust <$> modifyConfigWithLock (const f) (return ())
+
-- | Sets the primary node of an existing instance
setInstancePrimaryNode :: InstanceUUID -> NodeUUID -> WConfdMonad Bool
setInstancePrimaryNode iUuid nUuid = isJust <$> modifyConfigWithLock
@@ -636,6 +652,7 @@ exportedFunctions = [ 'addInstance
, 'attachInstanceDisk
, 'detachInstanceDisk
, 'markInstanceDisksActive
+ , 'markInstanceDisksInactive
, 'removeInstance
, 'removeInstanceDisk
, 'setInstancePrimaryNode
--
1.7.10.4