mirror of
https://github.com/democratic-csi/democratic-csi.git
synced 2026-10-09 22:58:53 +02:00
proper ttl syntax on cache entries, begin work for purejs grpc server
Signed-off-by: Travis Glenn Hansen <travisghansen@yahoo.com>
This commit is contained in:
@@ -29,6 +29,8 @@ const VOLUME_CONTEXT_PROVISIONER_DRIVER_PROPERTY_NAME =
|
||||
const VOLUME_CONTEXT_PROVISIONER_INSTANCE_ID_PROPERTY_NAME =
|
||||
"democratic-csi:volume_context_provisioner_instance_id";
|
||||
|
||||
const MAX_ZVOL_NAME_LENGTH_CACHE_KEY = "controller-zfs:max_zvol_name_length";
|
||||
|
||||
/**
|
||||
* Base driver to provisin zfs assets using zfs cli commands.
|
||||
* Derived drivers only need to implement:
|
||||
@@ -413,6 +415,14 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||
let kernel;
|
||||
let kernel_release;
|
||||
|
||||
const cachedValue = await driver.ctx.cache.get(
|
||||
MAX_ZVOL_NAME_LENGTH_CACHE_KEY
|
||||
);
|
||||
|
||||
if (cachedValue) {
|
||||
return cachedValue;
|
||||
}
|
||||
|
||||
// get kernel
|
||||
command = "uname -s";
|
||||
driver.ctx.logger.verbose("uname command: %s", command);
|
||||
@@ -423,12 +433,14 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||
kernel = response.stdout.trim();
|
||||
}
|
||||
|
||||
let max;
|
||||
switch (kernel.toLowerCase().trim()) {
|
||||
// Linux is 255 (probably larger 4096) but scst may have a 255 limit
|
||||
// https://ngelinux.com/what-is-the-maximum-file-name-length-in-linux-and-how-to-see-this-is-this-really-255-characters-answer-is-no/
|
||||
// https://github.com/dmeister/scst/blob/master/iscsi-scst/include/iscsi_scst.h#L28
|
||||
case "linux":
|
||||
return 255;
|
||||
max = 255;
|
||||
break;
|
||||
case "freebsd":
|
||||
// get kernel_release
|
||||
command = "uname -r";
|
||||
@@ -444,14 +456,20 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||
let kernel_release_major = parts[0];
|
||||
|
||||
if (kernel_release_major >= 13) {
|
||||
return 255;
|
||||
max = 255;
|
||||
} else {
|
||||
return 63;
|
||||
max = 63;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new Error(`unknown kernel: ${kernel}`);
|
||||
}
|
||||
|
||||
await driver.ctx.cache.set(MAX_ZVOL_NAME_LENGTH_CACHE_KEY, max, {
|
||||
ttl: 60 * 1000,
|
||||
});
|
||||
return max;
|
||||
}
|
||||
|
||||
async setFilesystemMode(path, mode) {
|
||||
|
||||
@@ -208,11 +208,9 @@ class Api {
|
||||
}
|
||||
|
||||
async setVersionInfoCache(versionInfo) {
|
||||
await this.cache.set(
|
||||
FREENAS_SYSTEM_VERSION_CACHE_KEY,
|
||||
versionInfo,
|
||||
60 * 1000
|
||||
);
|
||||
await this.cache.set(FREENAS_SYSTEM_VERSION_CACHE_KEY, versionInfo, {
|
||||
ttl: 60 * 1000,
|
||||
});
|
||||
}
|
||||
|
||||
async getSystemVersion() {
|
||||
|
||||
@@ -2011,11 +2011,9 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver {
|
||||
async setVersionInfoCache(versionInfo) {
|
||||
const driver = this;
|
||||
|
||||
await driver.ctx.cache.set(
|
||||
FREENAS_SYSTEM_VERSION_CACHE_KEY,
|
||||
versionInfo,
|
||||
60 * 1000
|
||||
);
|
||||
await driver.ctx.cache.set(FREENAS_SYSTEM_VERSION_CACHE_KEY, versionInfo, {
|
||||
ttl: 60 * 1000,
|
||||
});
|
||||
}
|
||||
|
||||
async getSystemVersion() {
|
||||
|
||||
+4
-1
@@ -7,4 +7,7 @@ class GrpcError {
|
||||
}
|
||||
|
||||
module.exports.GrpcError = GrpcError;
|
||||
module.exports.grpc = require("grpc-uds");
|
||||
|
||||
const grpcImplementation = process.env.GRPC_IMPLEMENTATION || "grpc-uds";
|
||||
console.log(`grpc implementation: ${grpcImplementation}`);
|
||||
module.exports.grpc = require(grpcImplementation);
|
||||
|
||||
Reference in New Issue
Block a user