25 lines
754 B
JavaScript
25 lines
754 B
JavaScript
const { FreeNASDriver } = require("./freenas");
|
|
const { ControllerZfsGenericDriver } = require("./controller-zfs-generic");
|
|
const {
|
|
ZfsLocalEphemeralInlineDriver,
|
|
} = require("./zfs-local-ephemeral-inline");
|
|
|
|
function factory(ctx, options) {
|
|
switch (options.driver) {
|
|
case "freenas-nfs":
|
|
case "freenas-iscsi":
|
|
case "truenas-nfs":
|
|
case "truenas-iscsi":
|
|
return new FreeNASDriver(ctx, options);
|
|
case "zfs-generic-nfs":
|
|
case "zfs-generic-iscsi":
|
|
return new ControllerZfsGenericDriver(ctx, options);
|
|
case "zfs-local-ephemeral-inline":
|
|
return new ZfsLocalEphemeralInlineDriver(ctx, options);
|
|
default:
|
|
throw new Error("invalid csi driver: " + options.driver);
|
|
}
|
|
}
|
|
|
|
module.exports.factory = factory;
|