Merge branch 'stable-2.8' into stable-2.9
[ganeti-local] / src / Ganeti / Query / Server.hs
index ef2f6b5..26ce552 100644 (file)
@@ -54,6 +54,7 @@ import Ganeti.Logging
 import Ganeti.Luxi
 import Ganeti.OpCodes (TagObject(..))
 import qualified Ganeti.Query.Language as Qlang
+import qualified Ganeti.Query.Cluster as QCluster
 import Ganeti.Query.Query
 import Ganeti.Query.Filter (makeSimpleFilter)
 
@@ -84,6 +85,7 @@ handleCallWrapper (Ok config) op = handleCall config op
 handleCall :: ConfigData -> LuxiOp -> IO (ErrorResult JSValue)
 handleCall cdata QueryClusterInfo =
   let cluster = configCluster cdata
+      master = QCluster.clusterMasterNodeName cdata
       hypervisors = clusterEnabledHypervisors cluster
       diskTemplates = clusterEnabledDiskTemplates cluster
       def_hv = case hypervisors of
@@ -99,7 +101,9 @@ handleCall cdata QueryClusterInfo =
             , ("vcs_version", showJSON C.vcsVersion)
             , ("architecture", showJSON arch_tuple)
             , ("name", showJSON $ clusterClusterName cluster)
-            , ("master", showJSON $ clusterMasterNode cluster)
+            , ("master", showJSON (case master of
+                                     Ok name -> name
+                                     _ -> undefined))
             , ("default_hypervisor", def_hv)
             , ("enabled_hypervisors", showJSON hypervisors)
             , ("hvparams", showJSON $ clusterHvparams cluster)
@@ -142,7 +146,9 @@ handleCall cdata QueryClusterInfo =
             , ("enabled_disk_templates", showJSON diskTemplates)
             ]
 
-  in return . Ok . J.makeObj $ obj
+  in case master of
+    Ok _ -> return . Ok . J.makeObj $ obj
+    Bad ex -> return $ Bad ex
 
 handleCall cfg (QueryTags kind) =
   let tags = case kind of