more robust api delete process, better failure logging
Signed-off-by: Travis Glenn Hansen <travisghansen@yahoo.com>
This commit is contained in:
		
							parent
							
								
									1cabae4f84
								
							
						
					
					
						commit
						d1aa8108c1
					
				|  | @ -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( | ||||||
|  |  | ||||||
|  | @ -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}` | ||||||
|                   ); |                   ); | ||||||
|                 } |                 } | ||||||
|               } |               } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue