CONFD_REQ_MC_PIP_LIST = 5
CONFD_REQ_INSTANCES_IPS_LIST = 6
CONFD_REQ_NODE_DRBD = 7
+CONFD_REQ_NODE_INSTANCES = 8
# Confd request query fields. These are used to narrow down queries.
# These must be strings rather than integers, because json-encoding
(a, b, c, d, e, f) <- minors]
return (ReplyStatusOk, J.showJSON encoded)
+buildResponse cdata req@(ConfdRequest { confdRqType = ReqNodeInstances }) = do
+ let cfg = fst cdata
+ node_name <- case confdRqQuery req of
+ PlainQuery str -> return str
+ _ -> fail $ "Invalid query type " ++ show (confdRqQuery req)
+ let instances = getNodeInstances cfg node_name
+ return (ReplyStatusOk, J.showJSON instances)
+
-- | Creates a ConfdReply from a given answer.
serializeResponse :: Result StatusAnswer -> ConfdReply
serializeResponse r =
, ("ReqMcPipList", 'C.confdReqMcPipList )
, ("ReqInstIpsList", 'C.confdReqInstancesIpsList )
, ("ReqNodeDrbd", 'C.confdReqNodeDrbd )
+ , ("ReqNodeInstances", 'C.confdReqNodeInstances)
])
$(makeJSONInstance ''ConfdRequestType)