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 {
await nvmeof.exec(nvmeof.options.paths.nvme, args);
} 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
} else {
throw err;
@ -258,10 +262,16 @@ class NVMEoF {
const nvmeof = this;
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 = [];
for (let device of result.Devices) {