BUG: Volume action fails when restoring from volume bigger volumes
Opis problemu
Task czekający aż wolumen zostanie przywrócony z wolumeny czeka na jego dostępność. Ten task ma zdefiniowane retries
które staje się bardzo duże na skutek błedu i mnożenia wartości string
zamiast int. Mnożona jest z kolei wartość GB w największym zadanym wolumenie przez 10. to powoduje że dla wolumenów większych niż 999 powodują "błąd wielkiej liczby".
Logi
- sam błąd
TASK [openstack : debug] ***************************************************************************************************************************************************************************************************************************************
Friday 29 October 2021 06:21:47 +0000 (0:00:02.080) 0:00:09.111 ********
ok: [localhost] => {
"1664166416641664166416641664166416641664": "1664166416641664166416641664166416641664"
}
TASK [openstack : wait for restored volume to become available] ************************************************************************************************************************************************************************************************
Friday 29 October 2021 06:21:47 +0000 (0:00:00.042) 0:00:09.153 ********
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: OverflowError: Python int too large to convert to C long
fatal: [localhost]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
powyżej zdebugowana wartość dla retries jeśli największy backup ma 1664 GB.
Działania naprawcze
Bardzo proste w jednej zmiennej dodać rzutowanie wartości na int przed jej pomnożeniem przez 10:
_openstack_volumes_from_backup_retries: "{{ _openstack_volumes_from_backup | map(attribute='size') | max | int * 10 }}"