Revision 3c1a8730
b/src/Ganeti/Objects.hs | ||
---|---|---|
280 | 280 |
, simpleField "link" [t| String |] |
281 | 281 |
]) |
282 | 282 |
|
283 |
$(buildObject "PartialNic" "nic" |
|
283 |
$(buildObject "PartialNic" "nic" $
|
|
284 | 284 |
[ simpleField "mac" [t| String |] |
285 | 285 |
, optionalField $ simpleField "ip" [t| String |] |
286 | 286 |
, simpleField "nicparams" [t| PartialNicParams |] |
287 | 287 |
, optionalField $ simpleField "network" [t| String |] |
288 |
]) |
|
288 |
, optionalField $ simpleField "name" [t| String |] |
|
289 |
] ++ uuidFields) |
|
290 |
|
|
291 |
instance UuidObject PartialNic where |
|
292 |
uuidOf = nicUuid |
|
289 | 293 |
|
290 | 294 |
-- * Disk definitions |
291 | 295 |
|
... | ... | |
423 | 427 |
, diskIvName :: String |
424 | 428 |
, diskSize :: Int |
425 | 429 |
, diskMode :: DiskMode |
430 |
, diskName :: Maybe String |
|
431 |
, diskUuid :: String |
|
426 | 432 |
} deriving (Show, Eq) |
427 | 433 |
|
428 |
$(buildObjectSerialisation "Disk" |
|
434 |
$(buildObjectSerialisation "Disk" $
|
|
429 | 435 |
[ customField 'decodeDLId 'encodeFullDLId ["dev_type"] $ |
430 | 436 |
simpleField "logical_id" [t| DiskLogicalId |] |
431 | 437 |
-- , simpleField "physical_id" [t| String |] |
... | ... | |
433 | 439 |
, defaultField [| "" |] $ simpleField "iv_name" [t| String |] |
434 | 440 |
, simpleField "size" [t| Int |] |
435 | 441 |
, defaultField [| DiskRdWr |] $ simpleField "mode" [t| DiskMode |] |
436 |
]) |
|
442 |
, optionalField $ simpleField "name" [t| String |] |
|
443 |
] |
|
444 |
++ uuidFields) |
|
445 |
|
|
446 |
instance UuidObject Disk where |
|
447 |
uuidOf = diskUuid |
|
437 | 448 |
|
438 | 449 |
-- * Instance definitions |
439 | 450 |
|
b/test/hs/Test/Ganeti/Objects.hs | ||
---|---|---|
89 | 89 |
-- generating recursive datastructures is a bit more work. |
90 | 90 |
instance Arbitrary Disk where |
91 | 91 |
arbitrary = Disk <$> arbitrary <*> pure [] <*> arbitrary |
92 |
<*> arbitrary <*> arbitrary |
|
92 |
<*> arbitrary <*> arbitrary <*> arbitrary |
|
93 |
<*> arbitrary |
|
93 | 94 |
|
94 | 95 |
-- FIXME: we should generate proper values, >=0, etc., but this is |
95 | 96 |
-- hard for partial ones, where all must be wrapped in a 'Maybe' |
... | ... | |
128 | 129 |
mac <- arbitrary |
129 | 130 |
ip <- arbitrary |
130 | 131 |
nicparams <- arbitrary |
132 |
name <- arbitrary |
|
133 |
uuid <- arbitrary |
|
131 | 134 |
-- generate some more networks than the given ones |
132 | 135 |
num_more_nets <- choose (0,3) |
133 | 136 |
more_nets <- vectorOf num_more_nets genName |
134 |
let partial_nics = map (PartialNic mac ip nicparams . Just) |
|
135 |
(List.nub (nets ++ more_nets)) |
|
137 |
let genNic net = PartialNic mac ip nicparams net name uuid |
|
138 |
partial_nics = map (genNic . Just) |
|
139 |
(List.nub (nets ++ more_nets)) |
|
136 | 140 |
new_inst = plain_inst { instNics = partial_nics } |
137 | 141 |
return new_inst |
138 | 142 |
|
Also available in: Unified diff