diff --git a/htest/Test/Ganeti/OpCodes.hs b/htest/Test/Ganeti/OpCodes.hs
index 3b17abe8041b3f64cb5911ee68aaac39f4951ad3..a0ce5d85cc72f4fe29236f6ba42b6d5371d4bc90 100644
--- a/htest/Test/Ganeti/OpCodes.hs
+++ b/htest/Test/Ganeti/OpCodes.hs
@@ -159,7 +159,7 @@ instance Arbitrary OpCodes.OpCode where
           arbitrary <*> arbitrary <*> arbitrary <*>
           arbitrary <*> arbitrary <*> arbitrary <*>
           emptyMUD <*> emptyMUD <*> arbitrary <*>
-          arbitrary <*> arbitrary <*> arbitrary <*>
+          arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*>
           arbitrary <*> arbitrary <*> arbitrary
       "OP_CLUSTER_REDIST_CONF" -> pure OpCodes.OpClusterRedistConf
       "OP_CLUSTER_ACTIVATE_MASTER_IP" ->
@@ -195,7 +195,7 @@ instance Arbitrary OpCodes.OpCode where
         OpCodes.OpNodeSetParams <$> genNodeNameNE <*> arbitrary <*>
           emptyMUD <*> emptyMUD <*> arbitrary <*> arbitrary <*> arbitrary <*>
           arbitrary <*> arbitrary <*> arbitrary <*> genMaybe genNameNE <*>
-          emptyMUD
+          emptyMUD <*> arbitrary
       "OP_NODE_POWERCYCLE" ->
         OpCodes.OpNodePowercycle <$> genNodeNameNE <*> arbitrary
       "OP_NODE_MIGRATE" ->
@@ -296,7 +296,7 @@ instance Arbitrary OpCodes.OpCode where
       "OP_BACKUP_EXPORT" ->
         OpCodes.OpBackupExport <$> genFQDN <*> arbitrary <*>
           arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*>
-          genMaybe (pure []) <*> genMaybe genNameNE
+          arbitrary <*> genMaybe (pure []) <*> genMaybe genNameNE
       "OP_BACKUP_REMOVE" ->
         OpCodes.OpBackupRemove <$> genFQDN
       "OP_TEST_ALLOCATOR" ->
diff --git a/htools/Ganeti/OpCodes.hs b/htools/Ganeti/OpCodes.hs
index e9fd95e5f8abe5406f63d7c08d6d7788768fffb9..51fa1b9878effb07d44d3f8b07f91465492f4cd8 100644
--- a/htools/Ganeti/OpCodes.hs
+++ b/htools/Ganeti/OpCodes.hs
@@ -159,6 +159,7 @@ $(genOpCode "OpCode"
      , pDrbdHelper
      , pDefaultIAllocator
      , pMasterNetdev
+     , pMasterNetmask
      , pReservedLvs
      , pHiddenOs
      , pBlacklistedOs
@@ -233,6 +234,7 @@ $(genOpCode "OpCode"
      , pVmCapable
      , pSecondaryIp
      , pNdParams
+     , pPowered
      ])
   , ("OpNodePowercycle",
      [ pNodeName
@@ -441,6 +443,7 @@ $(genOpCode "OpCode"
      [ pInstanceName
      , pShutdownTimeout
      , pExportTargetNode
+     , pShutdownInstance
      , pRemoveInstance
      , pIgnoreRemoveFailures
      , pExportMode
diff --git a/htools/Ganeti/OpParams.hs b/htools/Ganeti/OpParams.hs
index fa2fba0c3b4991ea0b5d05601f24a46e79e6848d..9debfadfed1676a5d5c4af6a15d4da53fe295b14 100644
--- a/htools/Ganeti/OpParams.hs
+++ b/htools/Ganeti/OpParams.hs
@@ -56,6 +56,7 @@ module Ganeti.OpParams
   , pOutputFields
   , pShutdownTimeout
   , pShutdownTimeout'
+  , pShutdownInstance
   , pForce
   , pIgnoreOfflineNodes
   , pNodeName
@@ -535,6 +536,10 @@ pShutdownTimeout' =
   defaultField [| forceNonNeg C.defaultShutdownTimeout |] $
   simpleField "timeout" [t| NonNegative Int |]
 
+-- | Whether to shutdown the instance in backup-export.
+pShutdownInstance :: Field
+pShutdownInstance = defaultTrue "shutdown"
+
 -- | Whether to force the operation.
 pForce :: Field
 pForce = defaultFalse "force"
@@ -864,7 +869,8 @@ pMasterNetdev = optionalStringField "master_netdev"
 
 -- | Netmask of the master IP.
 pMasterNetmask :: Field
-pMasterNetmask = optionalField $ simpleField "master_netmask" [t| Int |]
+pMasterNetmask =
+  optionalField $ simpleField "master_netmask" [t| NonNegative Int |]
 
 -- | List of reserved LVs.
 pReservedLvs :: Field