, genDisk
, genDiskWithChildren
, genEmptyCluster
+ , genInst
, genInstWithNets
, genValidNetwork
, genBitStringMaxLen
-- nics
<*> arbitrary
-- disks
- <*> arbitrary
+ <*> vectorOf 5 genDisk
-- disk template
<*> arbitrary
-- network port
genInstWithNets :: [String] -> Gen Instance
genInstWithNets nets = do
plain_inst <- arbitrary
+ enhanceInstWithNets plain_inst nets
+
+-- | Generates an instance that is connected to some networks
+genInst :: Gen Instance
+genInst = genInstWithNets []
+
+-- | Enhances a given instance with network information, by connecting it to the
+-- given networks and possibly some other networks
+enhanceInstWithNets :: Instance -> [String] -> Gen Instance
+enhanceInstWithNets inst nets = do
mac <- arbitrary
ip <- arbitrary
nicparams <- arbitrary
let genNic net = PartialNic mac ip nicparams net name uuid
partial_nics = map (genNic . Just)
(List.nub (nets ++ more_nets))
- new_inst = plain_inst { instNics = partial_nics }
+ new_inst = inst { instNics = partial_nics }
return new_inst
genDiskWithChildren :: Int -> Gen Disk