-
Notifications
You must be signed in to change notification settings - Fork 21
/
volume.nix
29 lines (27 loc) · 932 Bytes
/
volume.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
let
xml = import ./xml.nix;
generate = import ./generate.nix;
# https://libvirt.org/formatstorage.html
process = with generate;
elem "volume" [ (subattr "type" typeString) ]
[
(subelem "name" [ ] typeString)
(subelem "capacity" [ (subattr "unit" typeString) ] (sub "count" typeInt))
(subelem "allocation" [ (subattr "unit" typeString) ] (sub "count" typeInt))
(subelem "target" [ ]
[
(subelem "format" [ (subattr "type" typeString) ] [ ])
(subelem "compat" [ ] typeString)
(subelem "nocow" [ ] [ ])
(subelem "clusterSize" [ (subattr "unit" typeString) ] (sub "count" typeInt))
(subelem "features" [ ]
[
(subelem "lazy_refcounts" [ ] [ ])
(subelem "extended_l2" [ ] [ ])
]
)
]
)
];
in
obj: xml.toText (process obj)