better nvme connect idempotency

Signed-off-by: Travis Glenn Hansen <travisghansen@yahoo.com>
This commit is contained in:
Travis Glenn Hansen 2022-12-29 11:00:44 -07:00
parent bb5019bd7e
commit 4e99e81255
1 changed files with 13 additions and 3 deletions

View File

@ -107,7 +107,11 @@ class NVMEoF {
try { try {
await nvmeof.exec(nvmeof.options.paths.nvme, args); await nvmeof.exec(nvmeof.options.paths.nvme, args);
} catch (err) { } catch (err) {
if (err.stderr && err.stderr.includes("already connnected")) { if (
err.stderr &&
(err.stderr.includes("already connnected") ||
err.stderr.includes("Operation already in progress"))
) {
// idempotent // idempotent
} else { } else {
throw err; throw err;
@ -258,10 +262,16 @@ class NVMEoF {
const nvmeof = this; const nvmeof = this;
let result = await nvmeof.list(["-v"]); let result = await nvmeof.list(["-v"]);
return nvmeof.getResultSubsystems(result); return nvmeof.getNormalizedSubsystems(result);
} }
async getResultSubsystems(result) { /**
* used to normalize subsystem list/response across different versions of nvme-cli
*
* @param {*} result
* @returns
*/
async getNormalizedSubsystems(result) {
let subsystems = []; let subsystems = [];
for (let device of result.Devices) { for (let device of result.Devices) {