Add magic sleep before deleteVolume on creation failure

It seems Hetzner fails to accept our deleteVolume request so quickly after failing. We need to wait for about 10 seconds, I guess. The same magic sleep happens on deleteServer pack of requests. Please have patience...
pull/105/head
NaiJi ✨ 2022-07-25 03:03:19 +03:00
parent dab2c569ec
commit d8ea528621
1 changed files with 13 additions and 7 deletions

View File

@ -271,10 +271,6 @@ class HetznerApi extends ServerProviderApi with VolumeProviderApi {
dataBase: newVolume,
);
if (details == null) {
deleteVolume(newVolume.id);
}
return details;
}
@ -320,6 +316,8 @@ class HetznerApi extends ServerProviderApi with VolumeProviderApi {
print('Decoded data: $data');
ServerHostingDetails? serverDetails;
DioError? hetznerError;
bool success = false;
try {
final Response serverCreateResponse = await client.post(
@ -335,17 +333,25 @@ class HetznerApi extends ServerProviderApi with VolumeProviderApi {
apiToken: apiToken,
provider: ServerProvider.hetzner,
);
success = true;
} on DioError catch (e) {
print(e);
deleteVolume(dataBase.id);
rethrow;
hetznerError = e;
} catch (e) {
print(e);
deleteVolume(dataBase.id);
} finally {
client.close();
}
if (!success) {
await Future.delayed(const Duration(seconds: 10));
await deleteVolume(dbId);
}
if (hetznerError != null) {
throw hetznerError;
}
return serverDetails;
}