From 125df9a836d7a9facf9828459737490b99e32692 Mon Sep 17 00:00:00 2001 From: Helga Velroyen <helgav@google.com> Date: Mon, 28 Jan 2013 17:06:37 +0100 Subject: [PATCH] Add fields 'inst_cnt' and 'inst_list' to network queries This adds the fields 'inst_cnt' and 'inst_list' to the Haskell implementation of the network queries. Signed-off-by: Helga Velroyen <helgav@google.com> Reviewed-by: Michele Tartara <mtartara@google.com> --- src/Ganeti/Query/Network.hs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Ganeti/Query/Network.hs b/src/Ganeti/Query/Network.hs index 010168747..6ba0ce44d 100644 --- a/src/Ganeti/Query/Network.hs +++ b/src/Ganeti/Query/Network.hs @@ -73,6 +73,12 @@ networkFields = , (FieldDefinition "group_cnt" "GroupCount" QFTOther "Number of node groups", FieldConfig (\cfg -> rsNormal . length . getGroupConnections cfg . networkUuid), QffNormal) + , (FieldDefinition "inst_list" "InstanceList" QFTOther "List of instances", + FieldConfig (\cfg -> rsNormal . getInstances cfg . networkUuid), + QffNormal) + , (FieldDefinition "inst_cnt" "InstanceCount" QFTOther "Number of instances", + FieldConfig (\cfg -> rsNormal . length . getInstances cfg + . networkUuid), QffNormal) ] ++ uuidFields "Network" ++ serialFields "Network" ++ @@ -116,3 +122,13 @@ getNicMode nic_params = getNicLink :: PartialNicParams -> String getNicLink nic_params = fromMaybe "-" (nicpLinkP nic_params) +-- | Retrieves the network's instances' names. +getInstances :: ConfigData -> String -> [String] +getInstances cfg network_uuid = + map instName (filter (instIsConnected network_uuid) + ((Map.elems . fromContainer . configInstances) cfg)) + +-- | Helper function that checks if an instance is linked to the given network. +instIsConnected :: String -> Instance -> Bool +instIsConnected network_uuid inst = + network_uuid `elem` map networkUuid (mapMaybe nicNetwork (instNics inst)) -- GitLab