Merge "Automatically prune the inventory backup"

This commit is contained in:
Zuul 2019-04-01 19:52:51 +00:00 committed by Gerrit Code Review
commit c8619eed66
2 changed files with 23 additions and 1 deletions

View File

@ -21,10 +21,12 @@ import datetime
import json
import logging
import os
from osa_toolkit import dictutils as du
import subprocess
import tarfile
import yaml
from osa_toolkit import dictutils as du
logger = logging.getLogger('osa-inventory')
@ -154,6 +156,19 @@ def _make_backup(backup_path, source_file_path):
'backup_openstack_inventory.tar'
)
with tarfile.open(inventory_backup_file, 'a') as tar:
# tar.getmembers() is always ordered with the
# tar standard append file order
members = [i.name for i in tar.getmembers()]
if len(members) > 15:
with open(os.devnull, 'w') as null:
for member in members[:-15]:
subprocess.call(
['tar', '-vf', inventory_backup_file,
'--delete', member],
stdout=null,
stderr=subprocess.STDOUT
)
basename = os.path.basename(source_file_path)
backup_name = _get_backup_name(basename)
tar.add(source_file_path, arcname=backup_name)

View File

@ -0,0 +1,7 @@
---
issues:
- We are limiting the tarred inventory backups to 15 in addition to changes
that only apply backups when the config has changed. These changes are to
address an issue where the inventory was corruped with parallel runs on
large clusters.