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