more robust api delete process, better failure logging

Signed-off-by: Travis Glenn Hansen <travisghansen@yahoo.com>
This commit is contained in:
Travis Glenn Hansen 2022-06-11 13:46:49 -06:00
parent 1cabae4f84
commit d1aa8108c1
2 changed files with 22 additions and 5 deletions

View File

@ -3010,10 +3010,27 @@ class FreeNASApiDriver extends CsiBaseDriver {
// NOTE: -R will recursively delete items + dependent filesets
// delete dataset
try {
await GeneralUtils.retry(
12,
5000,
async () => {
await httpApiClient.DatasetDelete(datasetName, {
recursive: true,
force: true,
});
},
{
retryCondition: (err) => {
if (
err.toString().includes("dataset is busy") ||
err.toString().includes("target is busy")
) {
return true;
}
return false;
},
}
);
} catch (err) {
if (err.toString().includes("filesystem has dependent clones")) {
throw new GrpcError(

View File

@ -2607,7 +2607,7 @@ class CsiBaseDriver {
if (!result) {
throw new GrpcError(
grpc.status.FAILED_PRECONDITION,
`it appears something else is already mounted at ${target_path}`
`it appears ${normalized_staging_device} is already mounted at ${target_path}, should be ${normalized_staging_path}`
);
}
}