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

View File

@ -2607,7 +2607,7 @@ class CsiBaseDriver {
if (!result) { if (!result) {
throw new GrpcError( throw new GrpcError(
grpc.status.FAILED_PRECONDITION, 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}`
); );
} }
} }