diff --git a/bin/democratic-csi b/bin/democratic-csi index bebfd1b..55926c6 100755 --- a/bin/democratic-csi +++ b/bin/democratic-csi @@ -231,7 +231,7 @@ async function requestHandlerProxy(call, callback, serviceMethodName) { operationLock.add(key); }); } - response = await driver[serviceMethodName](call); + response = await driver[serviceMethodName](callContext, call); } catch (e) { responseError = e; } finally { diff --git a/src/driver/controller-client-common/index.js b/src/driver/controller-client-common/index.js index b2a7272..50f0595 100644 --- a/src/driver/controller-client-common/index.js +++ b/src/driver/controller-client-common/index.js @@ -548,7 +548,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateVolume(call) { + async CreateVolume(callContext, call) { const driver = this; const config_key = driver.getConfigKey(); @@ -840,7 +840,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteVolume(call) { + async DeleteVolume(callContext, call) { const driver = this; const volume_id = call.request.volume_id; @@ -873,7 +873,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { * * @param {*} call */ - async ControllerExpandVolume(call) { + async ControllerExpandVolume(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -885,7 +885,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { * * @param {*} call */ - async GetCapacity(call) { + async GetCapacity(callContext, call) { const driver = this; if ( @@ -925,7 +925,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { * * @param {*} call */ - async ListVolumes(call) { + async ListVolumes(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -936,7 +936,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { * * @param {*} call */ - async ListSnapshots(call) { + async ListSnapshots(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -963,7 +963,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateSnapshot(call) { + async CreateSnapshot(callContext, call) { const driver = this; const config_key = driver.getConfigKey(); @@ -1305,7 +1305,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteSnapshot(call) { + async DeleteSnapshot(callContext, call) { const driver = this; let snapshot_id = call.request.snapshot_id; @@ -1393,7 +1393,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { * * @param {*} call */ - async ValidateVolumeCapabilities(call) { + async ValidateVolumeCapabilities(callContext, call) { const driver = this; const volume_id = call.request.volume_id; diff --git a/src/driver/controller-local-hostpath/index.js b/src/driver/controller-local-hostpath/index.js index a838cac..225b147 100644 --- a/src/driver/controller-local-hostpath/index.js +++ b/src/driver/controller-local-hostpath/index.js @@ -78,7 +78,7 @@ class ControllerLocalHostpathDriver extends ControllerClientCommonDriver { * @param {*} call * @returns */ - async NodeGetInfo(call) { + async NodeGetInfo(callContext, call) { const response = await super.NodeGetInfo(...arguments); response.accessible_topology = { segments: { diff --git a/src/driver/controller-objectivefs/index.js b/src/driver/controller-objectivefs/index.js index 121570f..6b64d50 100644 --- a/src/driver/controller-objectivefs/index.js +++ b/src/driver/controller-objectivefs/index.js @@ -270,7 +270,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver { * * @param {*} call */ - async Probe(call) { + async Probe(callContext, call) { const driver = this; const pool = _.get(driver.options, "objectivefs.pool"); const object_store = _.get(driver.options, "objectivefs.env.OBJECTSTORE"); @@ -301,7 +301,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateVolume(call) { + async CreateVolume(callContext, call) { const driver = this; const ofsClient = await driver.getObjectiveFSClient(); const pool = _.get(driver.options, "objectivefs.pool"); @@ -446,7 +446,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteVolume(call) { + async DeleteVolume(callContext, call) { const driver = this; const ofsClient = await driver.getObjectiveFSClient(); const pool = _.get(driver.options, "objectivefs.pool"); @@ -481,7 +481,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver { * * @param {*} call */ - async ControllerExpandVolume(call) { + async ControllerExpandVolume(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -493,7 +493,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver { * * @param {*} call */ - async GetCapacity(call) { + async GetCapacity(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -506,7 +506,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver { * * @param {*} call */ - async ListVolumes(call) { + async ListVolumes(callContext, call) { const driver = this; const ofsClient = await driver.getObjectiveFSClient(); const pool = _.get(driver.options, "objectivefs.pool"); @@ -588,7 +588,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver { * * @param {*} call */ - async ListSnapshots(call) { + async ListSnapshots(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -599,7 +599,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateSnapshot(call) { + async CreateSnapshot(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -612,7 +612,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteSnapshot(call) { + async DeleteSnapshot(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -623,7 +623,7 @@ class ControllerObjectiveFSDriver extends CsiBaseDriver { * * @param {*} call */ - async ValidateVolumeCapabilities(call) { + async ValidateVolumeCapabilities(callContext, call) { const driver = this; const ofsClient = await driver.getObjectiveFSClient(); const pool = _.get(driver.options, "objectivefs.pool"); diff --git a/src/driver/controller-synology/index.js b/src/driver/controller-synology/index.js index bbae748..7645aa4 100644 --- a/src/driver/controller-synology/index.js +++ b/src/driver/controller-synology/index.js @@ -319,7 +319,7 @@ class ControllerSynologyDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateVolume(call) { + async CreateVolume(callContext, call) { const driver = this; const httpClient = await driver.getHttpClient(); @@ -677,7 +677,7 @@ class ControllerSynologyDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteVolume(call) { + async DeleteVolume(callContext, call) { const driver = this; const httpClient = await driver.getHttpClient(); @@ -785,7 +785,7 @@ class ControllerSynologyDriver extends CsiBaseDriver { * * @param {*} call */ - async ControllerExpandVolume(call) { + async ControllerExpandVolume(callContext, call) { const driver = this; const httpClient = await driver.getHttpClient(); @@ -877,7 +877,7 @@ class ControllerSynologyDriver extends CsiBaseDriver { * * @param {*} call */ - async GetCapacity(call) { + async GetCapacity(callContext, call) { const driver = this; const httpClient = await driver.getHttpClient(); const location = driver.getLocation(); @@ -907,7 +907,7 @@ class ControllerSynologyDriver extends CsiBaseDriver { * * @param {*} call */ - async ListVolumes(call) { + async ListVolumes(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -918,7 +918,7 @@ class ControllerSynologyDriver extends CsiBaseDriver { * * @param {*} call */ - async ListSnapshots(call) { + async ListSnapshots(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -929,7 +929,7 @@ class ControllerSynologyDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateSnapshot(call) { + async CreateSnapshot(callContext, call) { const driver = this; const httpClient = await driver.getHttpClient(); @@ -1049,7 +1049,7 @@ class ControllerSynologyDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteSnapshot(call) { + async DeleteSnapshot(callContext, call) { // throw new GrpcError( // grpc.status.UNIMPLEMENTED, // `operation not supported by driver` @@ -1100,7 +1100,7 @@ class ControllerSynologyDriver extends CsiBaseDriver { * * @param {*} call */ - async ValidateVolumeCapabilities(call) { + async ValidateVolumeCapabilities(callContext, call) { const driver = this; const httpClient = await driver.getHttpClient(); diff --git a/src/driver/controller-zfs-local/index.js b/src/driver/controller-zfs-local/index.js index bfc3295..34f5bba 100644 --- a/src/driver/controller-zfs-local/index.js +++ b/src/driver/controller-zfs-local/index.js @@ -227,7 +227,7 @@ class ControllerZfsLocalDriver extends ControllerZfsBaseDriver { * @param {*} call * @returns */ - async NodeGetInfo(call) { + async NodeGetInfo(callContext, call) { const response = await super.NodeGetInfo(...arguments); response.accessible_topology = { segments: { diff --git a/src/driver/controller-zfs/index.js b/src/driver/controller-zfs/index.js index d665979..959a9f6 100644 --- a/src/driver/controller-zfs/index.js +++ b/src/driver/controller-zfs/index.js @@ -562,7 +562,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async Probe(call) { + async Probe(callContext, call) { const driver = this; if (driver.ctx.args.csiMode.includes("controller")) { @@ -634,7 +634,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateVolume(call) { + async CreateVolume(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const execClient = this.getExecClient(); @@ -1269,7 +1269,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteVolume(call) { + async DeleteVolume(callContext, call) { const driver = this; const zb = await this.getZetabyte(); @@ -1401,7 +1401,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async ControllerExpandVolume(call) { + async ControllerExpandVolume(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const zb = await this.getZetabyte(); @@ -1520,7 +1520,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async GetCapacity(call) { + async GetCapacity(callContext, call) { const driver = this; const zb = await this.getZetabyte(); @@ -1569,7 +1569,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async ControllerGetVolume(call) { + async ControllerGetVolume(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const zb = await this.getZetabyte(); @@ -1650,7 +1650,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async ListVolumes(call) { + async ListVolumes(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const zb = await this.getZetabyte(); @@ -1790,7 +1790,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async ListSnapshots(call) { + async ListSnapshots(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const zb = await this.getZetabyte(); @@ -2044,7 +2044,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateSnapshot(call) { + async CreateSnapshot(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const zb = await this.getZetabyte(); @@ -2352,7 +2352,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteSnapshot(call) { + async DeleteSnapshot(callContext, call) { const driver = this; const zb = await this.getZetabyte(); @@ -2423,7 +2423,7 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { * * @param {*} call */ - async ValidateVolumeCapabilities(call) { + async ValidateVolumeCapabilities(callContext, call) { const driver = this; const zb = await this.getZetabyte(); diff --git a/src/driver/freenas/api.js b/src/driver/freenas/api.js index c5df0a0..fc37fac 100644 --- a/src/driver/freenas/api.js +++ b/src/driver/freenas/api.js @@ -2177,7 +2177,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async Probe(call) { + async Probe(callContext, call) { const driver = this; const httpApiClient = await driver.getTrueNASHttpApiClient(); @@ -2228,7 +2228,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateVolume(call) { + async CreateVolume(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const httpApiClient = await this.getTrueNASHttpApiClient(); @@ -3000,7 +3000,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteVolume(call) { + async DeleteVolume(callContext, call) { const driver = this; const httpApiClient = await this.getTrueNASHttpApiClient(); const zb = await this.getZetabyte(); @@ -3133,7 +3133,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async ControllerExpandVolume(call) { + async ControllerExpandVolume(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const httpApiClient = await this.getTrueNASHttpApiClient(); @@ -3254,7 +3254,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async GetCapacity(call) { + async GetCapacity(callContext, call) { const driver = this; const httpApiClient = await this.getTrueNASHttpApiClient(); const zb = await this.getZetabyte(); @@ -3302,7 +3302,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async ControllerGetVolume(call) { + async ControllerGetVolume(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const httpApiClient = await this.getTrueNASHttpApiClient(); @@ -3376,7 +3376,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async ListVolumes(call) { + async ListVolumes(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const httpClient = await this.getHttpClient(); @@ -3518,7 +3518,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async ListSnapshots(call) { + async ListSnapshots(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const httpClient = await this.getHttpClient(); @@ -3935,7 +3935,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateSnapshot(call) { + async CreateSnapshot(callContext, call) { const driver = this; const driverZfsResourceType = this.getDriverZfsResourceType(); const httpClient = await this.getHttpClient(); @@ -4333,7 +4333,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteSnapshot(call) { + async DeleteSnapshot(callContext, call) { const driver = this; const httpApiClient = await this.getTrueNASHttpApiClient(); const zb = await this.getZetabyte(); @@ -4413,7 +4413,7 @@ class FreeNASApiDriver extends CsiBaseDriver { * * @param {*} call */ - async ValidateVolumeCapabilities(call) { + async ValidateVolumeCapabilities(callContext, call) { const driver = this; const httpApiClient = await this.getTrueNASHttpApiClient(); diff --git a/src/driver/freenas/ssh.js b/src/driver/freenas/ssh.js index 3f635ac..c94015c 100644 --- a/src/driver/freenas/ssh.js +++ b/src/driver/freenas/ssh.js @@ -35,7 +35,7 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver { * * @param {*} call */ - async Probe(call) { + async Probe(callContext, call) { const driver = this; if (driver.ctx.args.csiMode.includes("controller")) { diff --git a/src/driver/index.js b/src/driver/index.js index f0fe630..992a401 100644 --- a/src/driver/index.js +++ b/src/driver/index.js @@ -497,14 +497,14 @@ class CsiBaseDriver { return volume_id; } - async GetPluginInfo(call) { + async GetPluginInfo(callContext, call) { return { name: this.ctx.args.csiName, vendor_version: this.ctx.args.version, }; } - async GetPluginCapabilities(call) { + async GetPluginCapabilities(callContext, call) { let capabilities; const response = { capabilities: [], @@ -589,11 +589,11 @@ class CsiBaseDriver { return response; } - async Probe(call) { + async Probe(callContext, call) { return { ready: { value: true } }; } - async ControllerGetCapabilities(call) { + async ControllerGetCapabilities(callContext, call) { let capabilities; const response = { capabilities: [], @@ -636,7 +636,7 @@ class CsiBaseDriver { return response; } - async NodeGetCapabilities(call) { + async NodeGetCapabilities(callContext, call) { let capabilities; const response = { capabilities: [], @@ -661,7 +661,7 @@ class CsiBaseDriver { return response; } - async NodeGetInfo(call) { + async NodeGetInfo(callContext, call) { return { node_id: process.env.CSI_NODE_ID || os.hostname(), max_volumes_per_node: 0, @@ -678,7 +678,7 @@ class CsiBaseDriver { * * @param {*} call */ - async NodeStageVolume(call) { + async NodeStageVolume(callContext, call) { const driver = this; const mount = driver.getDefaultMountInstance(); const filesystem = driver.getDefaultFilesystemInstance(); @@ -2437,7 +2437,7 @@ class CsiBaseDriver { * * @param {*} call */ - async NodeUnstageVolume(call) { + async NodeUnstageVolume(callContext, call) { const driver = this; const mount = driver.getDefaultMountInstance(); const filesystem = driver.getDefaultFilesystemInstance(); @@ -2969,7 +2969,7 @@ class CsiBaseDriver { return {}; } - async NodePublishVolume(call) { + async NodePublishVolume(callContext, call) { const driver = this; const mount = driver.getDefaultMountInstance(); const filesystem = driver.getDefaultFilesystemInstance(); @@ -3290,7 +3290,7 @@ class CsiBaseDriver { } } - async NodeUnpublishVolume(call) { + async NodeUnpublishVolume(callContext, call) { const driver = this; const mount = driver.getDefaultMountInstance(); const filesystem = driver.getDefaultFilesystemInstance(); @@ -3458,7 +3458,7 @@ class CsiBaseDriver { return {}; } - async NodeGetVolumeStats(call) { + async NodeGetVolumeStats(callContext, call) { const driver = this; const mount = driver.getDefaultMountInstance(); const filesystem = driver.getDefaultFilesystemInstance(); @@ -3692,7 +3692,7 @@ class CsiBaseDriver { * * @param {*} call */ - async NodeExpandVolume(call) { + async NodeExpandVolume(callContext, call) { const driver = this; const mount = driver.getDefaultMountInstance(); const filesystem = driver.getDefaultFilesystemInstance(); diff --git a/src/driver/node-manual/index.js b/src/driver/node-manual/index.js index c55915e..f30d63c 100644 --- a/src/driver/node-manual/index.js +++ b/src/driver/node-manual/index.js @@ -242,7 +242,7 @@ class NodeManualDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateVolume(call) { + async CreateVolume(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -253,7 +253,7 @@ class NodeManualDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteVolume(call) { + async DeleteVolume(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -264,7 +264,7 @@ class NodeManualDriver extends CsiBaseDriver { * * @param {*} call */ - async ControllerExpandVolume(call) { + async ControllerExpandVolume(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -275,7 +275,7 @@ class NodeManualDriver extends CsiBaseDriver { * * @param {*} call */ - async GetCapacity(call) { + async GetCapacity(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -286,7 +286,7 @@ class NodeManualDriver extends CsiBaseDriver { * * @param {*} call */ - async ListVolumes(call) { + async ListVolumes(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -297,7 +297,7 @@ class NodeManualDriver extends CsiBaseDriver { * * @param {*} call */ - async ListSnapshots(call) { + async ListSnapshots(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -308,7 +308,7 @@ class NodeManualDriver extends CsiBaseDriver { * * @param {*} call */ - async CreateSnapshot(call) { + async CreateSnapshot(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -319,7 +319,7 @@ class NodeManualDriver extends CsiBaseDriver { * * @param {*} call */ - async DeleteSnapshot(call) { + async DeleteSnapshot(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` @@ -330,7 +330,7 @@ class NodeManualDriver extends CsiBaseDriver { * * @param {*} call */ - async ValidateVolumeCapabilities(call) { + async ValidateVolumeCapabilities(callContext, call) { throw new GrpcError( grpc.status.UNIMPLEMENTED, `operation not supported by driver` diff --git a/src/driver/zfs-local-ephemeral-inline/index.js b/src/driver/zfs-local-ephemeral-inline/index.js index 276b1f4..57be40b 100644 --- a/src/driver/zfs-local-ephemeral-inline/index.js +++ b/src/driver/zfs-local-ephemeral-inline/index.js @@ -272,7 +272,7 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver { * * @param {*} call */ - async NodePublishVolume(call) { + async NodePublishVolume(callContext, call) { const driver = this; const zb = this.getZetabyte(); @@ -386,7 +386,7 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver { * * @param {*} call */ - async NodeUnpublishVolume(call) { + async NodeUnpublishVolume(callContext, call) { const zb = this.getZetabyte(); const filesystem = new Filesystem(); let result; @@ -454,7 +454,7 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver { * * @param {*} call */ - async GetCapacity(call) { + async GetCapacity(callContext, call) { const driver = this; const zb = this.getZetabyte(); @@ -488,7 +488,7 @@ class ZfsLocalEphemeralInlineDriver extends CsiBaseDriver { * * @param {*} call */ - async ValidateVolumeCapabilities(call) { + async ValidateVolumeCapabilities(callContext, call) { const driver = this; const result = this.assertCapabilities(call.request.volume_capabilities);