From 3131adc7a516d7186a6168857a89f20068de3a39 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Sun, 25 Nov 2012 22:44:25 +0100 Subject: [PATCH] Abstract query common opcode definitions It would be even better if the opcodes would actually have all the same definitions, until then we have two sets of definitions. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Helga Velroyen <helgav@google.com> --- htest/Test/Ganeti/OpCodes.hs | 2 +- htools/Ganeti/OpCodes.hs | 22 ++++------------------ htools/Ganeti/OpParams.hs | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/htest/Test/Ganeti/OpCodes.hs b/htest/Test/Ganeti/OpCodes.hs index 1e52c687d..32e29c4ac 100644 --- a/htest/Test/Ganeti/OpCodes.hs +++ b/htest/Test/Ganeti/OpCodes.hs @@ -176,7 +176,7 @@ instance Arbitrary OpCodes.OpCode where genMaybe genName <*> genMaybe genNameNE <*> arbitrary <*> genMaybe genNameNE <*> arbitrary <*> arbitrary <*> emptyMUD "OP_NODE_QUERY" -> - OpCodes.OpNodeQuery <$> genFieldsNE <*> arbitrary <*> genNamesNE + OpCodes.OpNodeQuery <$> genFieldsNE <*> genNamesNE <*> arbitrary "OP_NODE_QUERYVOLS" -> OpCodes.OpNodeQueryvols <$> arbitrary <*> genNodeNamesNE "OP_NODE_QUERY_STORAGE" -> diff --git a/htools/Ganeti/OpCodes.hs b/htools/Ganeti/OpCodes.hs index d6c656b71..20acff73c 100644 --- a/htools/Ganeti/OpCodes.hs +++ b/htools/Ganeti/OpCodes.hs @@ -187,11 +187,7 @@ $(genOpCode "OpCode" , pVmCapable , pNdParams ]) - , ("OpNodeQuery", - [ pOutputFields - , pUseLocking - , pNames - ]) + , ("OpNodeQuery", dOldQuery) , ("OpNodeQueryvols", [ pOutputFields , pNodes @@ -347,11 +343,7 @@ $(genOpCode "OpCode" , pNodes , pIallocator ]) - , ("OpInstanceQuery", - [ pOutputFields - , pNames - , pUseLocking - ]) + , ("OpInstanceQuery", dOldQuery) , ("OpInstanceQueryData", [ pUseLocking , pInstances @@ -402,10 +394,7 @@ $(genOpCode "OpCode" , pForce , pRequiredNodes ]) - , ("OpGroupQuery", - [ pOutputFields - , pNames - ]) + , ("OpGroupQuery", dOldQueryNoLocking) , ("OpGroupSetParams", [ pGroupName , pNodeGroupAllocPolicy @@ -518,10 +507,7 @@ $(genOpCode "OpCode" , pNetworkName , pIpConflictsCheck ]) - , ("OpNetworkQuery", - [ pOutputFields - , pNames - ]) + , ("OpNetworkQuery", dOldQueryNoLocking) , ("OpRestrictedCommand", [ pUseLocking , pRequiredNodes diff --git a/htools/Ganeti/OpParams.hs b/htools/Ganeti/OpParams.hs index a83ec3d99..0970c1dee 100644 --- a/htools/Ganeti/OpParams.hs +++ b/htools/Ganeti/OpParams.hs @@ -221,6 +221,8 @@ module Ganeti.OpParams , pNetworkRemoveRsvdIps , pNetworkMode , pNetworkLink + , dOldQuery + , dOldQueryNoLocking ) where import Control.Monad (liftM) @@ -1342,3 +1344,20 @@ pNetworkMode = simpleField "network_mode" [t| NICMode |] -- | Network link when connecting to a group. pNetworkLink :: Field pNetworkLink = simpleField "network_link" [t| NonEmptyString |] + +-- * Entire opcode parameter list + +-- | Old-style query opcode, with locking. +dOldQuery :: [Field] +dOldQuery = + [ pOutputFields + , pNames + , pUseLocking + ] + +-- | Old-style query opcode, without locking. +dOldQueryNoLocking :: [Field] +dOldQueryNoLocking = + [ pOutputFields + , pNames + ] -- GitLab