From 1cd563e234d3636e6bd9805bc17cb8fe6aa01589 Mon Sep 17 00:00:00 2001
From: Iustin Pop <iustin@google.com>
Date: Sun, 25 Nov 2012 16:10:12 +0100
Subject: [PATCH] Add two last missing opcodes

OpInstanceQuery was missing accidentally, whereas OpRestrictedCommand
was just recently added without Haskell definitions.

The patch also slightly improves the OpNodeQuery arbitrary generation.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
---
 htest/Test/Ganeti/OpCodes.hs |  7 ++++++-
 htools/Ganeti/OpCodes.hs     | 10 ++++++++++
 htools/Ganeti/OpParams.hs    |  7 +++++++
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/htest/Test/Ganeti/OpCodes.hs b/htest/Test/Ganeti/OpCodes.hs
index d34a74776..c18cfa82e 100644
--- a/htest/Test/Ganeti/OpCodes.hs
+++ b/htest/Test/Ganeti/OpCodes.hs
@@ -177,7 +177,7 @@ instance Arbitrary OpCodes.OpCode where
           getMaybe getName <*> getMaybe genNameNE <*> arbitrary <*>
           getMaybe genNameNE <*> arbitrary <*> arbitrary <*> emptyMUD
       "OP_NODE_QUERY" ->
-        OpCodes.OpNodeQuery <$> arbitrary <*> arbitrary <*> arbitrary
+        OpCodes.OpNodeQuery <$> genFieldsNE <*> arbitrary <*> genNamesNE
       "OP_NODE_QUERYVOLS" ->
         OpCodes.OpNodeQueryvols <$> arbitrary <*> genNodeNamesNE
       "OP_NODE_QUERY_STORAGE" ->
@@ -248,6 +248,8 @@ instance Arbitrary OpCodes.OpCode where
       "OP_INSTANCE_RECREATE_DISKS" ->
         OpCodes.OpInstanceRecreateDisks <$> getFQDN <*> arbitrary <*>
           genNodeNamesNE <*> getMaybe genNameNE
+      "OP_INSTANCE_QUERY" ->
+        OpCodes.OpInstanceQuery <$> genFieldsNE <*> genNamesNE <*> arbitrary
       "OP_INSTANCE_QUERY_DATA" ->
         OpCodes.OpInstanceQueryData <$> arbitrary <*>
           genNodeNamesNE <*> arbitrary
@@ -328,6 +330,9 @@ instance Arbitrary OpCodes.OpCode where
         OpCodes.OpNetworkDisconnect <$> genNameNE <*> genNameNE <*> arbitrary
       "OP_NETWORK_QUERY" ->
         OpCodes.OpNetworkQuery <$> genFieldsNE <*> genNamesNE
+      "OP_RESTRICTED_COMMAND" ->
+        OpCodes.OpRestrictedCommand <$> arbitrary <*> genNodeNamesNE <*>
+          genNameNE
       _ -> fail $ "Undefined arbitrary for opcode " ++ op_id
 
 -- * Helper functions
diff --git a/htools/Ganeti/OpCodes.hs b/htools/Ganeti/OpCodes.hs
index 663dade10..d6c656b71 100644
--- a/htools/Ganeti/OpCodes.hs
+++ b/htools/Ganeti/OpCodes.hs
@@ -347,6 +347,11 @@ $(genOpCode "OpCode"
      , pNodes
      , pIallocator
      ])
+  , ("OpInstanceQuery",
+     [ pOutputFields
+     , pNames
+     , pUseLocking
+     ])
   , ("OpInstanceQueryData",
      [ pUseLocking
      , pInstances
@@ -517,6 +522,11 @@ $(genOpCode "OpCode"
      [ pOutputFields
      , pNames
      ])
+  , ("OpRestrictedCommand",
+     [ pUseLocking
+     , pRequiredNodes
+     , pRestrictedCommand
+     ])
   ])
 
 -- | Returns the OP_ID for a given opcode value.
diff --git a/htools/Ganeti/OpParams.hs b/htools/Ganeti/OpParams.hs
index a5b48bcd9..a83ec3d99 100644
--- a/htools/Ganeti/OpParams.hs
+++ b/htools/Ganeti/OpParams.hs
@@ -188,6 +188,7 @@ module Ganeti.OpParams
   , pX509KeyName
   , pX509DestCA
   , pTagSearchPattern
+  , pRestrictedCommand
   , pDelayRepeat
   , pIAllocatorDirection
   , pIAllocatorMode
@@ -1152,6 +1153,12 @@ pTagSearchPattern :: Field
 pTagSearchPattern =
   renameField "TagSearchPattern" $ simpleField "pattern" [t| NonEmptyString |]
 
+-- | Restricted command name.
+pRestrictedCommand :: Field
+pRestrictedCommand =
+  renameField "RestrictedCommand" $
+  simpleField "command" [t| NonEmptyString |]
+
 -- * Test opcode parameters
 
 -- | Repeat parameter for OpTestDelay.
-- 
GitLab