From 10af6c639b430af106be3ea769fcaddec1e5e9d3 Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Fri, 13 Jan 2023 11:24:11 -0700 Subject: [PATCH] implement gate logic to prevent nvmet commands until we are sure the config has been loaded Signed-off-by: Travis Glenn Hansen --- contrib/scale-nvmet-start.sh | 3 +++ package-lock.json | 14 +++++++------- package.json | 2 +- src/driver/controller-zfs-generic/index.js | 21 +++++++++++++++++++++ 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/contrib/scale-nvmet-start.sh b/contrib/scale-nvmet-start.sh index 42fbae8..a2cfc22 100755 --- a/contrib/scale-nvmet-start.sh +++ b/contrib/scale-nvmet-start.sh @@ -56,3 +56,6 @@ which nvmetcli &>/dev/null || { cd "${SCRIPTDIR}" nvmetcli restore "${NVMETCONFIG}" + +touch /var/run/nvmet-config-loaded +chmod +r /var/run/nvmet-config-loaded diff --git a/package-lock.json b/package-lock.json index 9ad3d8e..d504f2c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.8.0", "license": "MIT", "dependencies": { - "@grpc/grpc-js": "^1.7.3", + "@grpc/grpc-js": "^1.8.4", "@grpc/proto-loader": "^0.7.0", "@kubernetes/client-node": "^0.18.0", "async-mutex": "^0.4.0", @@ -74,9 +74,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.4.tgz", + "integrity": "sha512-oaETBotls7FTBpySg5dhyUCyXSxSeCMmkBBXHXG1iw57MiNoB6D7VRhkrXYbwyHM3Q3Afjp4KlsBX0Zb+ELZXw==", "dependencies": { "@grpc/proto-loader": "^0.7.0", "@types/node": ">=12.12.47" @@ -2955,9 +2955,9 @@ } }, "@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.4.tgz", + "integrity": "sha512-oaETBotls7FTBpySg5dhyUCyXSxSeCMmkBBXHXG1iw57MiNoB6D7VRhkrXYbwyHM3Q3Afjp4KlsBX0Zb+ELZXw==", "requires": { "@grpc/proto-loader": "^0.7.0", "@types/node": ">=12.12.47" diff --git a/package.json b/package.json index 6e20bc9..119f8c4 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "url": "https://github.com/democratic-csi/democratic-csi.git" }, "dependencies": { - "@grpc/grpc-js": "^1.7.3", + "@grpc/grpc-js": "^1.8.4", "@grpc/proto-loader": "^0.7.0", "@kubernetes/client-node": "^0.18.0", "async-mutex": "^0.4.0", diff --git a/src/driver/controller-zfs-generic/index.js b/src/driver/controller-zfs-generic/index.js index 08ebdb4..af30fdc 100644 --- a/src/driver/controller-zfs-generic/index.js +++ b/src/driver/controller-zfs-generic/index.js @@ -897,6 +897,27 @@ save_config filename=${this.options.nvmeof.shareStrategySpdkCli.configPath} const execClient = this.getExecClient(); const driver = this; + if ( + _.get( + this.options, + "nvmeof.shareStrategyNvmetCli.configIsImportedFilePath" + ) + ) { + try { + let response = await execClient.exec( + execClient.buildCommand("test", [ + "-f", + _.get( + this.options, + "nvmeof.shareStrategyNvmetCli.configIsImportedFilePath" + ), + ]) + ); + } catch (err) { + throw new Error("nvmet has not been fully configured"); + } + } + data = data.trim(); let command = "sh";