Revision 78694255 hspace.hs

b/hspace.hs
137 137
      "show help"
138 138
    ]
139 139

  
140
filterFails :: (Monad m) => [(Maybe Node.List, Instance.Instance, [Node.Node])]
141
            -> m [(Node.List, Instance.Instance, [Node.Node])]
140
filterFails :: Cluster.AllocSolution
141
            -> Maybe [(Node.List, Instance.Instance, [Node.Node])]
142 142
filterFails sols =
143
    if null sols then fail "No nodes onto which to allocate at all"
143
    if null sols then Nothing -- No nodes onto which to allocate at all
144 144
    else let sols' = filter (isJust . fst3) sols
145 145
         in if null sols' then
146
                fail "No valid allocation solutions"
146
                Nothing -- No valid allocation solutions
147 147
            else
148 148
                return $ map (\(x, y, z) -> (fromJust x, y, z)) sols'
149 149

  
......
162 162
             -> (Node.List, [Instance.Instance])
163 163
iterateDepth nl il newinst nreq ixes =
164 164
      let depth = length ixes
165
          newname = printf "new-%d" depth
165
          newname = (printf "new-%d" depth)::String
166 166
          newidx = (length $ Container.elems il) + depth
167 167
          newi2 = Instance.setIdx (Instance.setName newinst newname) newidx
168
          sols = Cluster.tryAlloc nl il newi2 nreq
168
          sols = (Cluster.tryAlloc nl il newi2 nreq)::
169
                 Maybe Cluster.AllocSolution
169 170
          orig = (nl, ixes)
170 171
      in
171 172
        if isNothing sols then orig

Also available in: Unified diff