Revision 9abe9caf

b/hspace.hs
194 194
      offline_indices = map Node.idx $
195 195
                        filter (\n -> elem (Node.name n) offline_names)
196 196
                               all_nodes
197
      req_nodes = optINodes opts
197 198

  
198 199
  when (length offline_wrong > 0) $ do
199 200
         printf "Error: Wrong node name(s) set as offline: %s\n"
200 201
                (commaJoin offline_wrong)
201 202
         exitWith $ ExitFailure 1
202 203

  
204
  when (req_nodes /= 1 && req_nodes /= 2) $ do
205
         printf "Error: Invalid required nodes (%d)\n" req_nodes
206
         exitWith $ ExitFailure 1
207

  
203 208
  let nl = Container.map (\n -> if elem (Node.idx n) offline_indices
204 209
                                then Node.setOffline n True
205 210
                                else n) fixed_nl
......
233 238
      newinst = Instance.create "new" (optIMem opts) (optIDsk opts)
234 239
                "ADMIN_down" (-1) (-1)
235 240

  
236
  let (fin_nl, ixes) =
237
          iterateDepth nl il newinst (optINodes opts) []
241
  let (fin_nl, ixes) = iterateDepth nl il newinst req_nodes []
238 242
      allocs = length ixes
239 243
      fin_instances = num_instances + allocs
240 244
      fin_ixes = reverse ixes
......
245 249
  printf "Final instances: %d\n" (num_instances + allocs)
246 250
  printf "Final free RAM: %d\n" final_mem
247 251
  printf "Final free disk: %d\n" final_disk
248
  printf "Usage: %.2f\n" (((fromIntegral num_instances)::Double) /
252
  printf "Usage: %.5f\n" (((fromIntegral num_instances)::Double) /
249 253
                          (fromIntegral fin_instances))
250 254
  printf "Allocations: %d\n" allocs
251 255
  when (verbose > 1) $ do
252 256
         putStr . unlines . map (\i -> printf "Inst: %*s %-*s %-*s"
253 257
                     ix_namelen (Instance.name i)
254 258
                     nmlen (Container.nameOf fin_nl $ Instance.pnode i)
255
                     nmlen (Container.nameOf fin_nl $ Instance.snode i))
259
                     nmlen (let sdx = Instance.snode i
260
                            in if sdx == Node.noSecondary then ""
261
                               else Container.nameOf fin_nl sdx))
256 262
         $ fin_ixes
257 263

  
258 264
  when (optShowNodes opts) $

Also available in: Unified diff