more complete usage of retry logic

Signed-off-by: Travis Glenn Hansen <travisghansen@yahoo.com>
This commit is contained in:
Travis Glenn Hansen
2022-05-07 18:10:08 -06:00
parent 2032c67be0
commit 466845cbd9
4 changed files with 113 additions and 5 deletions
+42 -2
View File
@@ -1402,7 +1402,27 @@ class FreeNASApiDriver extends CsiBaseDriver {
});
if (deleteAsset) {
response = await httpClient.delete(endpoint);
response = await GeneralUtils.retry(
3,
1000,
async () => {
return await httpClient.delete(endpoint);
},
{
retryCondition: (err) => {
if (err.code == "ECONNRESET") {
return true;
}
if (err.code == "ECONNABORTED") {
return true;
}
if (err.response && err.response.statusCode == 504) {
return true;
}
return false;
},
}
);
// returns a 500 if does not exist
// v1 = 204
@@ -1483,7 +1503,27 @@ class FreeNASApiDriver extends CsiBaseDriver {
});
if (deleteAsset) {
response = await httpClient.delete(endpoint);
response = await GeneralUtils.retry(
3,
1000,
async () => {
return await httpClient.delete(endpoint);
},
{
retryCondition: (err) => {
if (err.code == "ECONNRESET") {
return true;
}
if (err.code == "ECONNABORTED") {
return true;
}
if (err.response && err.response.statusCode == 504) {
return true;
}
return false;
},
}
);
// returns a 500 if does not exist
// v1 = 204
+6
View File
@@ -86,6 +86,12 @@ class Client {
httpAgent: this.getHttpAgent(),
httpsAgent: this.getHttpsAgent(),
timeout: 60 * 1000,
validateStatus: function (status) {
if (status >= 500) {
return false;
}
return true;
},
};
if (client.options.apiKey) {
+42 -2
View File
@@ -1450,7 +1450,27 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver {
});
if (deleteAsset) {
response = await httpClient.delete(endpoint);
response = await GeneralUtils.retry(
3,
1000,
async () => {
return await httpClient.delete(endpoint);
},
{
retryCondition: (err) => {
if (err.code == "ECONNRESET") {
return true;
}
if (err.code == "ECONNABORTED") {
return true;
}
if (err.response && err.response.statusCode == 504) {
return true;
}
return false;
},
}
);
// returns a 500 if does not exist
// v1 = 204
@@ -1532,7 +1552,27 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver {
});
if (deleteAsset) {
response = await httpClient.delete(endpoint);
response = await GeneralUtils.retry(
3,
1000,
async () => {
return await httpClient.delete(endpoint);
},
{
retryCondition: (err) => {
if (err.code == "ECONNRESET") {
return true;
}
if (err.code == "ECONNABORTED") {
return true;
}
if (err.response && err.response.statusCode == 504) {
return true;
}
return false;
},
}
);
// returns a 500 if does not exist
// v1 = 204