Commit 5f4fdf93 authored by Iustin Pop's avatar Iustin Pop
Browse files

Fix generation of clusters via 'genEmptyCluster'



The current uniqueness algorithm (generate random node names, suffix
them with node index) is actually wrong: a node named "21" at index 5
will end up with the same name as a node named "2" at position 15.

To fix this, we also add a character from a different "set" ("-"), so
that such mixups can't happen again, and also add an explicit check
for it.
Signed-off-by: default avatarIustin Pop <iustin@google.com>
Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
parent dbd1264a
......@@ -169,11 +169,17 @@ genEmptyCluster ncount = do
nodes <- vector ncount
version <- arbitrary
let guuid = "00"
nodes' = zipWith (\n idx -> n { nodeGroup = guuid,
nodeName = nodeName n ++ show idx })
nodes' = zipWith (\n idx ->
let newname = nodeName n ++ "-" ++ show idx
in (newname, n { nodeGroup = guuid,
nodeName = newname}))
nodes [(1::Int)..]
contnodes = GenericContainer . Map.fromList $
map (\n -> (nodeName n, n)) nodes'
nodemap = Map.fromList nodes'
contnodes = if Map.size nodemap /= ncount
then error ("Inconsistent node map, duplicates in" ++
" node name list? Names: " ++
show (map fst nodes'))
else GenericContainer nodemap
continsts = GenericContainer Map.empty
grp <- arbitrary
let contgroups = GenericContainer $ Map.singleton guuid grp
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment