Merge 7e78977c83 into 8193b689ed
This commit is contained in:
commit
bc4d498451
|
|
@ -118,6 +118,7 @@ const cache = new LRU({ max: 500 });
|
||||||
const { logger } = require("../src/utils/logger");
|
const { logger } = require("../src/utils/logger");
|
||||||
const { GrpcError } = require("../src/utils/grpc");
|
const { GrpcError } = require("../src/utils/grpc");
|
||||||
const GeneralUtils = require("../src/utils/general");
|
const GeneralUtils = require("../src/utils/general");
|
||||||
|
const uuidv4 = require("uuid").v4;
|
||||||
|
|
||||||
if (args.logLevel) {
|
if (args.logLevel) {
|
||||||
logger.level = args.logLevel;
|
logger.level = args.logLevel;
|
||||||
|
|
@ -178,17 +179,25 @@ async function requestHandlerProxy(call, callback, serviceMethodName) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const requestReadableID = GeneralUtils.loggerIdFromRequest(call, serviceMethodName);
|
||||||
|
const requestUUID = uuidv4();
|
||||||
|
const callContext = {
|
||||||
|
logger: logger.child({
|
||||||
|
method: serviceMethodName,
|
||||||
|
requestId: requestReadableID,
|
||||||
|
uuid: requestUUID,
|
||||||
|
}),
|
||||||
|
};
|
||||||
try {
|
try {
|
||||||
logger.info(
|
callContext.logger.info(
|
||||||
"new request - driver: %s method: %s call: %j",
|
"new request: driver: %s, call: %j",
|
||||||
driver.constructor.name,
|
driver.constructor.name,
|
||||||
serviceMethodName,
|
|
||||||
cleansedCall
|
cleansedCall
|
||||||
);
|
);
|
||||||
|
|
||||||
const lockKeys = GeneralUtils.lockKeysFromRequest(call, serviceMethodName);
|
const lockKeys = GeneralUtils.lockKeysFromRequest(call, serviceMethodName);
|
||||||
if (lockKeys.length > 0) {
|
if (lockKeys.length > 0) {
|
||||||
logger.debug("operation lock keys: %j", lockKeys);
|
callContext.logger.debug("operation lock keys: %j", lockKeys);
|
||||||
// check locks
|
// check locks
|
||||||
lockKeys.forEach((key) => {
|
lockKeys.forEach((key) => {
|
||||||
if (operationLock.has(key)) {
|
if (operationLock.has(key)) {
|
||||||
|
|
@ -216,13 +225,13 @@ async function requestHandlerProxy(call, callback, serviceMethodName) {
|
||||||
let response;
|
let response;
|
||||||
let responseError;
|
let responseError;
|
||||||
try {
|
try {
|
||||||
// aquire locks
|
// acquire locks
|
||||||
if (lockKeys.length > 0) {
|
if (lockKeys.length > 0) {
|
||||||
lockKeys.forEach((key) => {
|
lockKeys.forEach((key) => {
|
||||||
operationLock.add(key);
|
operationLock.add(key);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
response = await driver[serviceMethodName](call);
|
response = await driver[serviceMethodName](callContext, call);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
responseError = e;
|
responseError = e;
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -246,10 +255,8 @@ async function requestHandlerProxy(call, callback, serviceMethodName) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(
|
callContext.logger.info(
|
||||||
"new response - driver: %s method: %s response: %j",
|
"new response: %j",
|
||||||
driver.constructor.name,
|
|
||||||
serviceMethodName,
|
|
||||||
response
|
response
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -265,10 +272,8 @@ async function requestHandlerProxy(call, callback, serviceMethodName) {
|
||||||
message = stringify(e);
|
message = stringify(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.error(
|
callContext.logger.error(
|
||||||
"handler error - driver: %s method: %s error: %s",
|
"handler error: %s",
|
||||||
driver.constructor.name,
|
|
||||||
serviceMethodName,
|
|
||||||
message
|
message
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
return access_modes;
|
return access_modes;
|
||||||
}
|
}
|
||||||
|
|
||||||
assertCapabilities(capabilities) {
|
assertCapabilities(callContext, capabilities) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
||||||
|
|
||||||
|
|
@ -548,7 +548,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateVolume(call) {
|
async CreateVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
|
|
||||||
const config_key = driver.getConfigKey();
|
const config_key = driver.getConfigKey();
|
||||||
|
|
@ -560,7 +560,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
call.request.volume_capabilities &&
|
call.request.volume_capabilities &&
|
||||||
call.request.volume_capabilities.length > 0
|
call.request.volume_capabilities.length > 0
|
||||||
) {
|
) {
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
||||||
}
|
}
|
||||||
|
|
@ -840,7 +840,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteVolume(call) {
|
async DeleteVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
|
|
||||||
const volume_id = call.request.volume_id;
|
const volume_id = call.request.volume_id;
|
||||||
|
|
@ -873,7 +873,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ControllerExpandVolume(call) {
|
async ControllerExpandVolume(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -885,7 +885,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async GetCapacity(call) {
|
async GetCapacity(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
|
@ -902,7 +902,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (call.request.volume_capabilities) {
|
if (call.request.volume_capabilities) {
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { available_capacity: 0 };
|
return { available_capacity: 0 };
|
||||||
|
|
@ -925,7 +925,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListVolumes(call) {
|
async ListVolumes(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -936,7 +936,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListSnapshots(call) {
|
async ListSnapshots(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -963,7 +963,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateSnapshot(call) {
|
async CreateSnapshot(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
|
|
||||||
const config_key = driver.getConfigKey();
|
const config_key = driver.getConfigKey();
|
||||||
|
|
@ -1305,7 +1305,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteSnapshot(call) {
|
async DeleteSnapshot(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
|
|
||||||
let snapshot_id = call.request.snapshot_id;
|
let snapshot_id = call.request.snapshot_id;
|
||||||
|
|
@ -1393,7 +1393,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ValidateVolumeCapabilities(call) {
|
async ValidateVolumeCapabilities(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
|
|
||||||
const volume_id = call.request.volume_id;
|
const volume_id = call.request.volume_id;
|
||||||
|
|
@ -1414,7 +1414,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { message: result.message };
|
return { message: result.message };
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ class ControllerLocalHostpathDriver extends ControllerClientCommonDriver {
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
async NodeGetInfo(call) {
|
async NodeGetInfo(callContext, call) {
|
||||||
const response = await super.NodeGetInfo(...arguments);
|
const response = await super.NodeGetInfo(...arguments);
|
||||||
response.accessible_topology = {
|
response.accessible_topology = {
|
||||||
segments: {
|
segments: {
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
return ["fuse.objectivefs", "objectivefs"];
|
return ["fuse.objectivefs", "objectivefs"];
|
||||||
}
|
}
|
||||||
|
|
||||||
assertCapabilities(capabilities) {
|
assertCapabilities(callContext, capabilities) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
||||||
|
|
||||||
|
|
@ -270,7 +270,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async Probe(call) {
|
async Probe(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const pool = _.get(driver.options, "objectivefs.pool");
|
const pool = _.get(driver.options, "objectivefs.pool");
|
||||||
const object_store = _.get(driver.options, "objectivefs.env.OBJECTSTORE");
|
const object_store = _.get(driver.options, "objectivefs.env.OBJECTSTORE");
|
||||||
|
|
@ -301,7 +301,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateVolume(call) {
|
async CreateVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const ofsClient = await driver.getObjectiveFSClient();
|
const ofsClient = await driver.getObjectiveFSClient();
|
||||||
const pool = _.get(driver.options, "objectivefs.pool");
|
const pool = _.get(driver.options, "objectivefs.pool");
|
||||||
|
|
@ -347,7 +347,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
call.request.volume_capabilities &&
|
call.request.volume_capabilities &&
|
||||||
call.request.volume_capabilities.length > 0
|
call.request.volume_capabilities.length > 0
|
||||||
) {
|
) {
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
||||||
}
|
}
|
||||||
|
|
@ -446,7 +446,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteVolume(call) {
|
async DeleteVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const ofsClient = await driver.getObjectiveFSClient();
|
const ofsClient = await driver.getObjectiveFSClient();
|
||||||
const pool = _.get(driver.options, "objectivefs.pool");
|
const pool = _.get(driver.options, "objectivefs.pool");
|
||||||
|
|
@ -481,7 +481,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ControllerExpandVolume(call) {
|
async ControllerExpandVolume(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -493,7 +493,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async GetCapacity(call) {
|
async GetCapacity(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -506,7 +506,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListVolumes(call) {
|
async ListVolumes(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const ofsClient = await driver.getObjectiveFSClient();
|
const ofsClient = await driver.getObjectiveFSClient();
|
||||||
const pool = _.get(driver.options, "objectivefs.pool");
|
const pool = _.get(driver.options, "objectivefs.pool");
|
||||||
|
|
@ -588,7 +588,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListSnapshots(call) {
|
async ListSnapshots(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -599,7 +599,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateSnapshot(call) {
|
async CreateSnapshot(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -612,7 +612,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteSnapshot(call) {
|
async DeleteSnapshot(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -623,7 +623,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ValidateVolumeCapabilities(call) {
|
async ValidateVolumeCapabilities(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const ofsClient = await driver.getObjectiveFSClient();
|
const ofsClient = await driver.getObjectiveFSClient();
|
||||||
const pool = _.get(driver.options, "objectivefs.pool");
|
const pool = _.get(driver.options, "objectivefs.pool");
|
||||||
|
|
@ -651,7 +651,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver {
|
||||||
throw new GrpcError(grpc.status.INVALID_ARGUMENT, `missing capabilities`);
|
throw new GrpcError(grpc.status.INVALID_ARGUMENT, `missing capabilities`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { message: result.message };
|
return { message: result.message };
|
||||||
|
|
|
||||||
|
|
@ -250,7 +250,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
return access_modes;
|
return access_modes;
|
||||||
}
|
}
|
||||||
|
|
||||||
assertCapabilities(capabilities) {
|
assertCapabilities(callContext, capabilities) {
|
||||||
const driverResourceType = this.getDriverResourceType();
|
const driverResourceType = this.getDriverResourceType();
|
||||||
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
||||||
|
|
||||||
|
|
@ -319,7 +319,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateVolume(call) {
|
async CreateVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpClient = await driver.getHttpClient();
|
const httpClient = await driver.getHttpClient();
|
||||||
|
|
||||||
|
|
@ -330,7 +330,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
call.request.volume_capabilities &&
|
call.request.volume_capabilities &&
|
||||||
call.request.volume_capabilities.length > 0
|
call.request.volume_capabilities.length > 0
|
||||||
) {
|
) {
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
||||||
}
|
}
|
||||||
|
|
@ -677,7 +677,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteVolume(call) {
|
async DeleteVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpClient = await driver.getHttpClient();
|
const httpClient = await driver.getHttpClient();
|
||||||
|
|
||||||
|
|
@ -785,7 +785,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ControllerExpandVolume(call) {
|
async ControllerExpandVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpClient = await driver.getHttpClient();
|
const httpClient = await driver.getHttpClient();
|
||||||
|
|
||||||
|
|
@ -877,7 +877,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async GetCapacity(call) {
|
async GetCapacity(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpClient = await driver.getHttpClient();
|
const httpClient = await driver.getHttpClient();
|
||||||
const location = driver.getLocation();
|
const location = driver.getLocation();
|
||||||
|
|
@ -890,7 +890,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (call.request.volume_capabilities) {
|
if (call.request.volume_capabilities) {
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { available_capacity: 0 };
|
return { available_capacity: 0 };
|
||||||
|
|
@ -907,7 +907,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListVolumes(call) {
|
async ListVolumes(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -918,7 +918,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListSnapshots(call) {
|
async ListSnapshots(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -929,7 +929,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateSnapshot(call) {
|
async CreateSnapshot(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpClient = await driver.getHttpClient();
|
const httpClient = await driver.getHttpClient();
|
||||||
|
|
||||||
|
|
@ -1049,7 +1049,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteSnapshot(call) {
|
async DeleteSnapshot(callContext, call) {
|
||||||
// throw new GrpcError(
|
// throw new GrpcError(
|
||||||
// grpc.status.UNIMPLEMENTED,
|
// grpc.status.UNIMPLEMENTED,
|
||||||
// `operation not supported by driver`
|
// `operation not supported by driver`
|
||||||
|
|
@ -1100,7 +1100,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ValidateVolumeCapabilities(call) {
|
async ValidateVolumeCapabilities(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpClient = await driver.getHttpClient();
|
const httpClient = await driver.getHttpClient();
|
||||||
|
|
||||||
|
|
@ -1150,7 +1150,7 @@ class ControllerSynologyDriver extends CsiBaseDriver {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { message: result.message };
|
return { message: result.message };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -227,7 +227,7 @@ class ControllerZfsLocalDriver extends ControllerZfsBaseDriver {
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
async NodeGetInfo(call) {
|
async NodeGetInfo(callContext, call) {
|
||||||
const response = await super.NodeGetInfo(...arguments);
|
const response = await super.NodeGetInfo(...arguments);
|
||||||
response.accessible_topology = {
|
response.accessible_topology = {
|
||||||
segments: {
|
segments: {
|
||||||
|
|
|
||||||
|
|
@ -250,7 +250,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
return access_modes;
|
return access_modes;
|
||||||
}
|
}
|
||||||
|
|
||||||
assertCapabilities(capabilities) {
|
assertCapabilities(callContext, capabilities) {
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
||||||
|
|
||||||
|
|
@ -562,7 +562,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async Probe(call) {
|
async Probe(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
|
|
||||||
if (driver.ctx.args.csiMode.includes("controller")) {
|
if (driver.ctx.args.csiMode.includes("controller")) {
|
||||||
|
|
@ -634,7 +634,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateVolume(call) {
|
async CreateVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const execClient = this.getExecClient();
|
const execClient = this.getExecClient();
|
||||||
|
|
@ -658,7 +658,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
call.request.volume_capabilities &&
|
call.request.volume_capabilities &&
|
||||||
call.request.volume_capabilities.length > 0
|
call.request.volume_capabilities.length > 0
|
||||||
) {
|
) {
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
||||||
}
|
}
|
||||||
|
|
@ -1269,7 +1269,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteVolume(call) {
|
async DeleteVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
||||||
|
|
@ -1401,7 +1401,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ControllerExpandVolume(call) {
|
async ControllerExpandVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
@ -1520,7 +1520,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async GetCapacity(call) {
|
async GetCapacity(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
||||||
|
|
@ -1534,7 +1534,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (call.request.volume_capabilities) {
|
if (call.request.volume_capabilities) {
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { available_capacity: 0 };
|
return { available_capacity: 0 };
|
||||||
|
|
@ -1569,7 +1569,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ControllerGetVolume(call) {
|
async ControllerGetVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
@ -1650,7 +1650,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListVolumes(call) {
|
async ListVolumes(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
@ -1790,7 +1790,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListSnapshots(call) {
|
async ListSnapshots(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
@ -2044,7 +2044,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateSnapshot(call) {
|
async CreateSnapshot(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
@ -2352,7 +2352,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteSnapshot(call) {
|
async DeleteSnapshot(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
||||||
|
|
@ -2423,7 +2423,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ValidateVolumeCapabilities(call) {
|
async ValidateVolumeCapabilities(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
||||||
|
|
@ -2461,7 +2461,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { message: result.message };
|
return { message: result.message };
|
||||||
|
|
|
||||||
|
|
@ -2082,7 +2082,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
return access_modes;
|
return access_modes;
|
||||||
}
|
}
|
||||||
|
|
||||||
assertCapabilities(capabilities) {
|
assertCapabilities(callContext, capabilities) {
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
||||||
|
|
||||||
|
|
@ -2177,7 +2177,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async Probe(call) {
|
async Probe(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpApiClient = await driver.getTrueNASHttpApiClient();
|
const httpApiClient = await driver.getTrueNASHttpApiClient();
|
||||||
|
|
||||||
|
|
@ -2228,7 +2228,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateVolume(call) {
|
async CreateVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const httpApiClient = await this.getTrueNASHttpApiClient();
|
const httpApiClient = await this.getTrueNASHttpApiClient();
|
||||||
|
|
@ -2254,7 +2254,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
call.request.volume_capabilities &&
|
call.request.volume_capabilities &&
|
||||||
call.request.volume_capabilities.length > 0
|
call.request.volume_capabilities.length > 0
|
||||||
) {
|
) {
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
||||||
}
|
}
|
||||||
|
|
@ -3000,7 +3000,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteVolume(call) {
|
async DeleteVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpApiClient = await this.getTrueNASHttpApiClient();
|
const httpApiClient = await this.getTrueNASHttpApiClient();
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
@ -3133,7 +3133,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ControllerExpandVolume(call) {
|
async ControllerExpandVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const httpApiClient = await this.getTrueNASHttpApiClient();
|
const httpApiClient = await this.getTrueNASHttpApiClient();
|
||||||
|
|
@ -3254,7 +3254,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async GetCapacity(call) {
|
async GetCapacity(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpApiClient = await this.getTrueNASHttpApiClient();
|
const httpApiClient = await this.getTrueNASHttpApiClient();
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
@ -3269,7 +3269,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (call.request.volume_capabilities) {
|
if (call.request.volume_capabilities) {
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { available_capacity: 0 };
|
return { available_capacity: 0 };
|
||||||
|
|
@ -3302,7 +3302,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ControllerGetVolume(call) {
|
async ControllerGetVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const httpApiClient = await this.getTrueNASHttpApiClient();
|
const httpApiClient = await this.getTrueNASHttpApiClient();
|
||||||
|
|
@ -3376,7 +3376,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListVolumes(call) {
|
async ListVolumes(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const httpClient = await this.getHttpClient();
|
const httpClient = await this.getHttpClient();
|
||||||
|
|
@ -3518,7 +3518,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListSnapshots(call) {
|
async ListSnapshots(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const httpClient = await this.getHttpClient();
|
const httpClient = await this.getHttpClient();
|
||||||
|
|
@ -3935,7 +3935,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateSnapshot(call) {
|
async CreateSnapshot(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const driverZfsResourceType = this.getDriverZfsResourceType();
|
const driverZfsResourceType = this.getDriverZfsResourceType();
|
||||||
const httpClient = await this.getHttpClient();
|
const httpClient = await this.getHttpClient();
|
||||||
|
|
@ -4333,7 +4333,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteSnapshot(call) {
|
async DeleteSnapshot(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpApiClient = await this.getTrueNASHttpApiClient();
|
const httpApiClient = await this.getTrueNASHttpApiClient();
|
||||||
const zb = await this.getZetabyte();
|
const zb = await this.getZetabyte();
|
||||||
|
|
@ -4413,7 +4413,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ValidateVolumeCapabilities(call) {
|
async ValidateVolumeCapabilities(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const httpApiClient = await this.getTrueNASHttpApiClient();
|
const httpApiClient = await this.getTrueNASHttpApiClient();
|
||||||
|
|
||||||
|
|
@ -4450,7 +4450,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = this.assertCapabilities(capabilities);
|
const result = this.assertCapabilities(callContext, capabilities);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { message: result.message };
|
return { message: result.message };
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async Probe(call) {
|
async Probe(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
|
|
||||||
if (driver.ctx.args.csiMode.includes("controller")) {
|
if (driver.ctx.args.csiMode.includes("controller")) {
|
||||||
|
|
|
||||||
|
|
@ -497,14 +497,14 @@ class CsiBaseDriver {
|
||||||
return volume_id;
|
return volume_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
async GetPluginInfo(call) {
|
async GetPluginInfo(callContext, call) {
|
||||||
return {
|
return {
|
||||||
name: this.ctx.args.csiName,
|
name: this.ctx.args.csiName,
|
||||||
vendor_version: this.ctx.args.version,
|
vendor_version: this.ctx.args.version,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async GetPluginCapabilities(call) {
|
async GetPluginCapabilities(callContext, call) {
|
||||||
let capabilities;
|
let capabilities;
|
||||||
const response = {
|
const response = {
|
||||||
capabilities: [],
|
capabilities: [],
|
||||||
|
|
@ -589,11 +589,11 @@ class CsiBaseDriver {
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
async Probe(call) {
|
async Probe(callContext, call) {
|
||||||
return { ready: { value: true } };
|
return { ready: { value: true } };
|
||||||
}
|
}
|
||||||
|
|
||||||
async ControllerGetCapabilities(call) {
|
async ControllerGetCapabilities(callContext, call) {
|
||||||
let capabilities;
|
let capabilities;
|
||||||
const response = {
|
const response = {
|
||||||
capabilities: [],
|
capabilities: [],
|
||||||
|
|
@ -636,7 +636,7 @@ class CsiBaseDriver {
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
async NodeGetCapabilities(call) {
|
async NodeGetCapabilities(callContext, call) {
|
||||||
let capabilities;
|
let capabilities;
|
||||||
const response = {
|
const response = {
|
||||||
capabilities: [],
|
capabilities: [],
|
||||||
|
|
@ -661,7 +661,7 @@ class CsiBaseDriver {
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
async NodeGetInfo(call) {
|
async NodeGetInfo(callContext, call) {
|
||||||
return {
|
return {
|
||||||
node_id: process.env.CSI_NODE_ID || os.hostname(),
|
node_id: process.env.CSI_NODE_ID || os.hostname(),
|
||||||
max_volumes_per_node: 0,
|
max_volumes_per_node: 0,
|
||||||
|
|
@ -678,7 +678,7 @@ class CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async NodeStageVolume(call) {
|
async NodeStageVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const mount = driver.getDefaultMountInstance();
|
const mount = driver.getDefaultMountInstance();
|
||||||
const filesystem = driver.getDefaultFilesystemInstance();
|
const filesystem = driver.getDefaultFilesystemInstance();
|
||||||
|
|
@ -767,7 +767,7 @@ class CsiBaseDriver {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (call.request.volume_context.provisioner_driver == "node-manual") {
|
if (call.request.volume_context.provisioner_driver == "node-manual") {
|
||||||
result = await this.assertCapabilities([capability], node_attach_driver);
|
result = await this.assertCapabilities(callContext, [capability], node_attach_driver);
|
||||||
if (!result.valid) {
|
if (!result.valid) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.INVALID_ARGUMENT,
|
grpc.status.INVALID_ARGUMENT,
|
||||||
|
|
@ -775,7 +775,7 @@ class CsiBaseDriver {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
result = await this.assertCapabilities([capability]);
|
result = await this.assertCapabilities(callContext, [capability]);
|
||||||
if (!result.valid) {
|
if (!result.valid) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.INVALID_ARGUMENT,
|
grpc.status.INVALID_ARGUMENT,
|
||||||
|
|
@ -2437,7 +2437,7 @@ class CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async NodeUnstageVolume(call) {
|
async NodeUnstageVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const mount = driver.getDefaultMountInstance();
|
const mount = driver.getDefaultMountInstance();
|
||||||
const filesystem = driver.getDefaultFilesystemInstance();
|
const filesystem = driver.getDefaultFilesystemInstance();
|
||||||
|
|
@ -2969,7 +2969,7 @@ class CsiBaseDriver {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
async NodePublishVolume(call) {
|
async NodePublishVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const mount = driver.getDefaultMountInstance();
|
const mount = driver.getDefaultMountInstance();
|
||||||
const filesystem = driver.getDefaultFilesystemInstance();
|
const filesystem = driver.getDefaultFilesystemInstance();
|
||||||
|
|
@ -3290,7 +3290,7 @@ class CsiBaseDriver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async NodeUnpublishVolume(call) {
|
async NodeUnpublishVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const mount = driver.getDefaultMountInstance();
|
const mount = driver.getDefaultMountInstance();
|
||||||
const filesystem = driver.getDefaultFilesystemInstance();
|
const filesystem = driver.getDefaultFilesystemInstance();
|
||||||
|
|
@ -3458,7 +3458,7 @@ class CsiBaseDriver {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
async NodeGetVolumeStats(call) {
|
async NodeGetVolumeStats(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const mount = driver.getDefaultMountInstance();
|
const mount = driver.getDefaultMountInstance();
|
||||||
const filesystem = driver.getDefaultFilesystemInstance();
|
const filesystem = driver.getDefaultFilesystemInstance();
|
||||||
|
|
@ -3692,7 +3692,7 @@ class CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async NodeExpandVolume(call) {
|
async NodeExpandVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const mount = driver.getDefaultMountInstance();
|
const mount = driver.getDefaultMountInstance();
|
||||||
const filesystem = driver.getDefaultFilesystemInstance();
|
const filesystem = driver.getDefaultFilesystemInstance();
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ class NodeManualDriver extends CsiBaseDriver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
assertCapabilities(capabilities, node_attach_driver) {
|
assertCapabilities(callContext, capabilities, node_attach_driver) {
|
||||||
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
||||||
|
|
||||||
let message = null;
|
let message = null;
|
||||||
|
|
@ -242,7 +242,7 @@ class NodeManualDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateVolume(call) {
|
async CreateVolume(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -253,7 +253,7 @@ class NodeManualDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteVolume(call) {
|
async DeleteVolume(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -264,7 +264,7 @@ class NodeManualDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ControllerExpandVolume(call) {
|
async ControllerExpandVolume(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -275,7 +275,7 @@ class NodeManualDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async GetCapacity(call) {
|
async GetCapacity(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -286,7 +286,7 @@ class NodeManualDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListVolumes(call) {
|
async ListVolumes(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -297,7 +297,7 @@ class NodeManualDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ListSnapshots(call) {
|
async ListSnapshots(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -308,7 +308,7 @@ class NodeManualDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async CreateSnapshot(call) {
|
async CreateSnapshot(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -319,7 +319,7 @@ class NodeManualDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async DeleteSnapshot(call) {
|
async DeleteSnapshot(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
@ -330,7 +330,7 @@ class NodeManualDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ValidateVolumeCapabilities(call) {
|
async ValidateVolumeCapabilities(callContext, call) {
|
||||||
throw new GrpcError(
|
throw new GrpcError(
|
||||||
grpc.status.UNIMPLEMENTED,
|
grpc.status.UNIMPLEMENTED,
|
||||||
`operation not supported by driver`
|
`operation not supported by driver`
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver {
|
||||||
return datasetParentName;
|
return datasetParentName;
|
||||||
}
|
}
|
||||||
|
|
||||||
assertCapabilities(capabilities) {
|
assertCapabilities(callContext, capabilities) {
|
||||||
// hard code this for now
|
// hard code this for now
|
||||||
const driverZfsResourceType = "filesystem";
|
const driverZfsResourceType = "filesystem";
|
||||||
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
this.ctx.logger.verbose("validating capabilities: %j", capabilities);
|
||||||
|
|
@ -272,7 +272,7 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async NodePublishVolume(call) {
|
async NodePublishVolume(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const zb = this.getZetabyte();
|
const zb = this.getZetabyte();
|
||||||
|
|
||||||
|
|
@ -309,7 +309,7 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (capability) {
|
if (capability) {
|
||||||
const result = this.assertCapabilities([capability]);
|
const result = this.assertCapabilities(callContext, [capability]);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
throw new GrpcError(grpc.status.INVALID_ARGUMENT, result.message);
|
||||||
|
|
@ -386,7 +386,7 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async NodeUnpublishVolume(call) {
|
async NodeUnpublishVolume(callContext, call) {
|
||||||
const zb = this.getZetabyte();
|
const zb = this.getZetabyte();
|
||||||
const filesystem = new Filesystem();
|
const filesystem = new Filesystem();
|
||||||
let result;
|
let result;
|
||||||
|
|
@ -454,7 +454,7 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async GetCapacity(call) {
|
async GetCapacity(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const zb = this.getZetabyte();
|
const zb = this.getZetabyte();
|
||||||
|
|
||||||
|
|
@ -468,7 +468,7 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (call.request.volume_capabilities) {
|
if (call.request.volume_capabilities) {
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { available_capacity: 0 };
|
return { available_capacity: 0 };
|
||||||
|
|
@ -488,9 +488,9 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver {
|
||||||
*
|
*
|
||||||
* @param {*} call
|
* @param {*} call
|
||||||
*/
|
*/
|
||||||
async ValidateVolumeCapabilities(call) {
|
async ValidateVolumeCapabilities(callContext, call) {
|
||||||
const driver = this;
|
const driver = this;
|
||||||
const result = this.assertCapabilities(call.request.volume_capabilities);
|
const result = this.assertCapabilities(callContext, call.request.volume_capabilities);
|
||||||
|
|
||||||
if (result.valid !== true) {
|
if (result.valid !== true) {
|
||||||
return { message: result.message };
|
return { message: result.message };
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,49 @@ function lockKeysFromRequest(call, serviceMethodName) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loggerIdFromRequest(call, serviceMethodName) {
|
||||||
|
switch (serviceMethodName) {
|
||||||
|
// controller
|
||||||
|
case "CreateVolume":
|
||||||
|
return call.request.name;
|
||||||
|
case "DeleteVolume":
|
||||||
|
case "ControllerExpandVolume":
|
||||||
|
case "ControllerPublishVolume":
|
||||||
|
case "ControllerUnpublishVolume":
|
||||||
|
case "ValidateVolumeCapabilities":
|
||||||
|
case "ControllerGetVolume":
|
||||||
|
case "ControllerModifyVolume":
|
||||||
|
return call.request.volume_id;
|
||||||
|
case "CreateSnapshot":
|
||||||
|
return call.request.source_volume_id;
|
||||||
|
case "DeleteSnapshot":
|
||||||
|
return call.request.snapshot_id;
|
||||||
|
case "ListVolumes":
|
||||||
|
case "GetCapacity":
|
||||||
|
case "ControllerGetCapabilities":
|
||||||
|
case "ListSnapshots":
|
||||||
|
return '';
|
||||||
|
|
||||||
|
// node
|
||||||
|
case "NodeStageVolume":
|
||||||
|
case "NodeUnstageVolume":
|
||||||
|
case "NodePublishVolume":
|
||||||
|
case "NodeUnpublishVolume":
|
||||||
|
case "NodeGetVolumeStats":
|
||||||
|
case "NodeExpandVolume":
|
||||||
|
return call.request.volume_id;
|
||||||
|
|
||||||
|
case "NodeGetCapabilities":
|
||||||
|
case "NodeGetInfo":
|
||||||
|
case "GetPluginInfo":
|
||||||
|
case "GetPluginCapabilities":
|
||||||
|
case "Probe":
|
||||||
|
return '';
|
||||||
|
default:
|
||||||
|
throw `loggerIdFromRequest: unknown method: ${serviceMethodName}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getLargestNumber() {
|
function getLargestNumber() {
|
||||||
let number;
|
let number;
|
||||||
for (let i = 0; i < arguments.length; i++) {
|
for (let i = 0; i < arguments.length; i++) {
|
||||||
|
|
@ -278,6 +321,7 @@ module.exports.crc32 = crc32;
|
||||||
module.exports.crc16 = crc16;
|
module.exports.crc16 = crc16;
|
||||||
module.exports.crc8 = crc8;
|
module.exports.crc8 = crc8;
|
||||||
module.exports.lockKeysFromRequest = lockKeysFromRequest;
|
module.exports.lockKeysFromRequest = lockKeysFromRequest;
|
||||||
|
module.exports.loggerIdFromRequest = loggerIdFromRequest;
|
||||||
module.exports.getLargestNumber = getLargestNumber;
|
module.exports.getLargestNumber = getLargestNumber;
|
||||||
module.exports.stringify = stringify;
|
module.exports.stringify = stringify;
|
||||||
module.exports.before_string = before_string;
|
module.exports.before_string = before_string;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue