Conversation
| log.debug('Fsyncing complete.') | ||
|
|
||
| os.chmod(tmp_filename, 0o400) | ||
| #os.chmod(tmp_filename, 0o400) |
There was a problem hiding this comment.
Но зачем? все генерируемые файлы должны быть ридонли. это защита от случайных правок (не по друтом которые)
There was a problem hiding this comment.
Он же делает ребейс. Можно конечно покрасивше сделать - скидывать атрибут непосредственно перед ребейсом и после ребейса обратно ставить.
There was a problem hiding this comment.
может лутьше отдельную тулзу написать ? (т.е. не городить в этом питоне) -- бекапилка-бекапилкой, а удалялка тершака - отдельно. запускать их можно независимо в теории.
There was a problem hiding this comment.
Ну, тут сложна-сложна. По идее, это один процесс - хлопнуть один лишний бекап - добавить один новый бекап. Одна строка в кроне. Культурненько.
|
|
||
|
|
||
| def get_latest_backup(xxx: str, image_name: str) -> int: | ||
| def get_latest_backup(xxx: str, image_name: str)->dict: |
There was a problem hiding this comment.
- отинденти код как минимум (Pycharm).
-> Dict[int, str]
There was a problem hiding this comment.
я не уметь, питона в первый раз в руки взял
| raise ValueError('Wrong parallel count.') | ||
|
|
||
| if not (options.bk_count >= 4): | ||
| raise ValueError('Wrong backups count. Minimum is 4.') |
There was a problem hiding this comment.
Ну, если меньше четырех, то ребейсить некуда. Пушо получается, что самый первый бекап в цепочке он самый большой, поэтому на него ребейсить будет долго (наверное)
| metavar='BK_COUNT', | ||
| type=int, | ||
| help='Count of backups to store.', | ||
| default=sys.maxsize |
There was a problem hiding this comment.
упоролся чтоли. по дефолту 1 же логичнее :)
There was a problem hiding this comment.
Ну, тогда он будет держать ровно 1 бекап, остальные грохать
There was a problem hiding this comment.
бля, я вначале думал -- сколько снапов в цефе будет оставаться.
| '--bk_count', | ||
| metavar='BK_COUNT', | ||
| type=int, | ||
| help='Count of backups to store.', |
| os.path.join(xxx, itms[srt[removingCount+2]]) | ||
| ]; | ||
| log.info('Rebasing image %s.', args) | ||
| subprocess.check_call(args) |
There was a problem hiding this comment.
если упадёт, то надо рековериться. ну и защита от параллельного бекапенья же в этом время
There was a problem hiding this comment.
Вот тут не знаю. Если ребейз упал, по идее, всей цепочке бекапов звездык
Automatically maintain count of backups and rebase first backup in chain.