You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.4 KiB
JavaScript
65 lines
1.4 KiB
JavaScript
"use strict";
|
|
|
|
module.exports = {
|
|
name: "LVM",
|
|
initialize: function () {
|
|
let types = {
|
|
"sysquery.lvm.PhysicalVolume": function PhysicalVolume({ path }) {
|
|
|
|
},
|
|
"sysquery.lvm.VolumeGroup": function VolumeGroup({ name }) {
|
|
|
|
},
|
|
"sysquery.lvm.LogicalVolume": function LogicalVolume({ path }) {
|
|
|
|
}
|
|
};
|
|
|
|
return {
|
|
sources: () => {
|
|
return {
|
|
physicalVolumes: ,
|
|
volumeGroups: ,
|
|
logicalVolumes:
|
|
};
|
|
},
|
|
types: types,
|
|
extensions: {
|
|
"sysquery.core.BlockDevice": {
|
|
lvmPhysicalVolume: function (_, { $getProperty, sources }) {
|
|
|
|
}
|
|
}
|
|
},
|
|
root: {
|
|
resources: {
|
|
lvm: {
|
|
physicalVolumes: ({ paths }, { sources }) => {
|
|
return makeTypeFromSource({
|
|
source: sources.physicalVolumes,
|
|
ids: paths,
|
|
make: (result) => types.PhysicalVolume({ path: result.path }),
|
|
});
|
|
},
|
|
volumeGroups: ({ names }, { sources }) => {
|
|
return makeTypeFromSource({
|
|
source: sources.volumeGroups,
|
|
ids: names,
|
|
make: (result) => types.VolumeGroup({ name: result.name }),
|
|
});
|
|
},
|
|
logicalVolumes: ({ paths }, { sources }) => {
|
|
// FIXME: Aren't these scoped to a volume group?
|
|
return makeTypeFromSource({
|
|
source: sources.logicalVolumes,
|
|
ids: paths,
|
|
make: (result) => types.LogicalVolume({ path: result.path }),
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
};
|