Revision 13ef1fa5

b/src/Ganeti/Query/Query.hs
50 50
    , queryCompat
51 51
    , getRequestedNames
52 52
    , nameField
53
    , uuidField
53 54
    ) where
54 55

  
55 56
import Control.DeepSeq
......
121 122
nameField (ItemTypeOpCode QRExport) = "node"
122 123
nameField _ = "name"
123 124

  
125
-- | Computes the uuid field, or the best possible substitute, for different
126
-- query types.
127
uuidField :: ItemType -> FilterField
128
uuidField (ItemTypeLuxi QRJob) = nameField (ItemTypeLuxi QRJob)
129
uuidField (ItemTypeOpCode QRExport) = nameField (ItemTypeOpCode QRExport)
130
uuidField _ = "uuid"
131

  
124 132
-- | Extracts all quoted strings from a list, ignoring the
125 133
-- 'NumericValue' entries.
126 134
getAllQuotedStrings :: [FilterValue] -> [String]
b/src/Ganeti/Query/Server.hs
69 69
handleClassicQuery _ _ _ _ True =
70 70
  return . Bad $ OpPrereqError "Sync queries are not allowed" ECodeInval
71 71
handleClassicQuery cfg qkind names fields _ = do
72
  let flt = makeSimpleFilter (nameField qkind) names
72
  let simpleNameFilter field = makeSimpleFilter (field qkind) names
73
      flt = Qlang.OrFilter $ map simpleNameFilter [nameField, uuidField]
73 74
  qr <- query cfg True (Qlang.Query qkind fields flt)
74 75
  return $ showJSON <$> (qr >>= queryCompat)
75 76

  

Also available in: Unified diff