types: meta.dependencies -> meta.deviceDependencies

This commit is contained in:
lassulus 2022-10-21 14:44:17 +02:00
parent 8666475b74
commit 89cc8978eb

View file

@ -81,15 +81,15 @@ rec {
}; };
in valueType; in valueType;
/* Given a attrset of dependencies and a devices attrset /* Given a attrset of deviceDependencies and a devices attrset
returns a sorted list by dependencies. aborts if a loop is found returns a sorted list by deviceDependencies. aborts if a loop is found
sortDevicesByDependencies :: AttrSet -> AttrSet -> [ [ str str ] ] sortDevicesByDependencies :: AttrSet -> AttrSet -> [ [ str str ] ]
*/ */
sortDevicesByDependencies = dependencies: devices: sortDevicesByDependencies = deviceDependencies: devices:
let let
dependsOn = a: b: dependsOn = a: b:
elem a (attrByPath b [] dependencies); elem a (attrByPath b [] deviceDependencies);
maybeSortedDevices = toposort dependsOn (diskoLib.deviceList devices); maybeSortedDevices = toposort dependsOn (diskoLib.deviceList devices);
in in
if (hasAttr "cycle" maybeSortedDevices) then if (hasAttr "cycle" maybeSortedDevices) then
@ -182,7 +182,7 @@ rec {
config.devices.mdadm config.devices.mdadm
config.devices.zpool config.devices.zpool
])) // { ])) // {
sortedDeviceList = diskoLib.sortDevicesByDependencies config.meta.dependencies config.devices; sortedDeviceList = diskoLib.sortDevicesByDependencies config.meta.deviceDependencies config.devices;
}; };
}; };
create = mkOption { create = mkOption {
@ -514,7 +514,7 @@ rec {
readOnly = true; readOnly = true;
type = types.functionTo diskoLib.jsonType; type = types.functionTo diskoLib.jsonType;
default = dev: { default = dev: {
dependencies.lvm_vg.${config.vg} = [ dev ]; deviceDependencies.lvm_vg.${config.vg} = [ dev ];
}; };
}; };
_create = mkOption { _create = mkOption {
@ -673,7 +673,7 @@ rec {
readOnly = true; readOnly = true;
type = types.functionTo diskoLib.jsonType; type = types.functionTo diskoLib.jsonType;
default = dev: { default = dev: {
dependencies.zpool.${config.pool} = [ dev ]; deviceDependencies.zpool.${config.pool} = [ dev ];
}; };
}; };
_create = mkOption { _create = mkOption {
@ -957,7 +957,7 @@ rec {
readOnly = true; readOnly = true;
type = types.functionTo diskoLib.jsonType; type = types.functionTo diskoLib.jsonType;
default = dev: { default = dev: {
dependencies.mdadm.${config.name} = [ dev ]; deviceDependencies.mdadm.${config.name} = [ dev ];
}; };
}; };
_create = mkOption { _create = mkOption {