Revision 78694255 hail.hs
b/hail.hs | ||
---|---|---|
92 | 92 |
sols'' = sortBy (compare `on` fst) sols' |
93 | 93 |
(best, w) = head sols'' |
94 | 94 |
(worst, l) = last sols'' |
95 |
info = printf "Valid results: %d, best score: %.8f for node(s) %s, \ |
|
96 |
\worst score: %.8f for node(s) %s" (length sols'') |
|
97 |
best (intercalate "/" . map Node.name $ w) |
|
98 |
worst (intercalate "/" . map Node.name $ l)
|
|
95 |
info = (printf "Valid results: %d, best score: %.8f for node(s) %s, \
|
|
96 |
\worst score: %.8f for node(s) %s" (length sols'')
|
|
97 |
best (intercalate "/" . map Node.name $ w)
|
|
98 |
worst (intercalate "/" . map Node.name $ l))::String
|
|
99 | 99 |
in return (info, w) |
100 | 100 |
|
101 |
-- | Process a request and return new node lists |
|
102 |
processRequest :: |
|
103 |
Request |
|
104 |
-> Result [(Maybe Node.List, Instance.Instance, [Node.Node])] |
|
105 |
processRequest request = |
|
106 |
let Request rqtype nl il _ = request |
|
107 |
in case rqtype of |
|
108 |
Allocate xi reqn -> Cluster.tryAlloc nl il xi reqn |
|
109 |
Relocate idx reqn exnodes -> Cluster.tryReloc nl il idx reqn exnodes |
|
110 |
|
|
101 | 111 |
-- | Main function. |
102 | 112 |
main :: IO () |
103 | 113 |
main = do |
... | ... | |
117 | 127 |
exitWith $ ExitFailure 1 |
118 | 128 |
Ok rq -> return rq |
119 | 129 |
|
120 |
let Request rqtype nl il csf = request |
|
121 |
new_nodes = case rqtype of |
|
122 |
Allocate xi reqn -> Cluster.tryAlloc nl il xi reqn |
|
123 |
Relocate idx reqn exnodes -> |
|
124 |
Cluster.tryReloc nl il idx reqn exnodes |
|
125 |
let sols = new_nodes >>= filterFails >>= processResults |
|
130 |
let Request _ _ _ csf = request |
|
131 |
sols = processRequest request >>= filterFails >>= processResults |
|
126 | 132 |
let (ok, info, rn) = case sols of |
127 | 133 |
Ok (info, sn) -> (True, "Request successful: " ++ info, |
128 | 134 |
map ((++ csf) . Node.name) sn) |
Also available in: Unified diff