Revision 0c6d6a52

b/src/Ganeti/Objects.hs
216 216
  [ simpleField "mac" [t| String |]
217 217
  , optionalField $ simpleField "ip" [t| String |]
218 218
  , simpleField "nicparams" [t| PartialNicParams |]
219
  , optionalField $ simpleField "network" [t| Network |]
219
  , optionalField $ simpleField "network" [t| String |]
220 220
  ])
221 221

  
222 222
-- * Disk definitions
b/src/Ganeti/Query/Network.hs
30 30

  
31 31
import qualified Data.Map as Map
32 32
import Data.Maybe (fromMaybe, mapMaybe)
33
import Data.List (find)
33 34

  
34 35
import Ganeti.JSON
35 36
import Ganeti.Network
......
125 126
-- | Retrieves the network's instances' names.
126 127
getInstances :: ConfigData -> String -> [String]
127 128
getInstances cfg network_uuid =
128
  map instName (filter (instIsConnected network_uuid)
129
  map instName (filter (instIsConnected cfg network_uuid)
129 130
    ((Map.elems . fromContainer . configInstances) cfg))
130 131

  
131 132
-- | Helper function that checks if an instance is linked to the given network.
132
instIsConnected :: String -> Instance -> Bool
133
instIsConnected network_uuid inst =
134
  network_uuid `elem` map networkUuid (mapMaybe nicNetwork (instNics inst))
133
instIsConnected :: ConfigData -> String -> Instance -> Bool
134
instIsConnected cfg network_uuid inst =
135
  network_uuid `elem` mapMaybe (getNetworkUuid cfg)
136
    (mapMaybe nicNetwork (instNics inst))
137

  
138
-- | Helper function to look up a network's UUID by its name
139
getNetworkUuid :: ConfigData -> String -> Maybe String
140
getNetworkUuid cfg name =
141
  let net = find (\n -> name == fromNonEmpty (networkName n))
142
               ((Map.elems . fromContainer . configNetworks) cfg)
143
  in fmap networkUuid net

Also available in: Unified diff