mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
[enh] Add basic 'list' and 'info' actions to the backup
This commit is contained in:
parent
82d8b0ac29
commit
d1cb0b0d80
4 changed files with 65 additions and 2 deletions
|
@ -579,6 +579,23 @@ backup:
|
||||||
path:
|
path:
|
||||||
help: Path of the restauration package
|
help: Path of the restauration package
|
||||||
|
|
||||||
|
### backup_list()
|
||||||
|
list:
|
||||||
|
action_help: List available local backup archives
|
||||||
|
api: GET /backup/archives
|
||||||
|
configuration:
|
||||||
|
lock: false
|
||||||
|
|
||||||
|
### backup_info()
|
||||||
|
info:
|
||||||
|
action_help: Show info about a local backup archive
|
||||||
|
api: GET /backup/archives/<name>
|
||||||
|
configuration:
|
||||||
|
lock: false
|
||||||
|
arguments:
|
||||||
|
name:
|
||||||
|
help: Name of the local backup archive
|
||||||
|
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# Monitor #
|
# Monitor #
|
||||||
|
|
42
backup.py
42
backup.py
|
@ -168,3 +168,45 @@ def backup_restore(path):
|
||||||
msignals.display(m18n.n('restore_complete'), 'success')
|
msignals.display(m18n.n('restore_complete'), 'success')
|
||||||
|
|
||||||
|
|
||||||
|
def backup_list():
|
||||||
|
"""
|
||||||
|
List available local backup archives
|
||||||
|
|
||||||
|
"""
|
||||||
|
result = []
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Retrieve local archives
|
||||||
|
archives = os.listdir(archives_path)
|
||||||
|
except IOError as e:
|
||||||
|
logging.info("unable to iterate over local archives: %s", str(e))
|
||||||
|
else:
|
||||||
|
# Iterate over local archives
|
||||||
|
for f in archives:
|
||||||
|
try:
|
||||||
|
name = f[:f.rindex('.tar.gz')]
|
||||||
|
except ValueError:
|
||||||
|
continue
|
||||||
|
result.append(name)
|
||||||
|
|
||||||
|
return { 'archives': result }
|
||||||
|
|
||||||
|
def backup_info(name):
|
||||||
|
"""
|
||||||
|
Get info about a local backup archive
|
||||||
|
|
||||||
|
Keyword arguments:
|
||||||
|
name -- Name of the local backup archive
|
||||||
|
|
||||||
|
"""
|
||||||
|
archive_file = '%s/%s.tar.gz' % (archives_path, name)
|
||||||
|
if not os.path.isfile(archive_file):
|
||||||
|
logger.error("no local backup archive found at '%s'", archive_file)
|
||||||
|
raise MoulinetteError(errno.EIO, m18n.n('backup_archive_name_unknown'))
|
||||||
|
|
||||||
|
return {
|
||||||
|
'path': archive_file,
|
||||||
|
# TODO: Retrieve created_at from the info file
|
||||||
|
'created_at': time.strftime(m18n.n('format_datetime_short'),
|
||||||
|
time.gmtime(int(name))),
|
||||||
|
}
|
||||||
|
|
|
@ -131,6 +131,7 @@
|
||||||
"backup_running_hooks" : "Running backup hooks...",
|
"backup_running_hooks" : "Running backup hooks...",
|
||||||
"backup_creating_archive" : "Creating the backup archive...",
|
"backup_creating_archive" : "Creating the backup archive...",
|
||||||
"backup_archive_open_failed" : "Unable to open the backup archive",
|
"backup_archive_open_failed" : "Unable to open the backup archive",
|
||||||
|
"backup_archive_name_unknown" : "Unknown local backup archive name",
|
||||||
"backup_complete" : "Backup complete",
|
"backup_complete" : "Backup complete",
|
||||||
"invalid_restore_package" : "Invalid restore package",
|
"invalid_restore_package" : "Invalid restore package",
|
||||||
"restore_complete" : "Restore complete",
|
"restore_complete" : "Restore complete",
|
||||||
|
@ -168,6 +169,8 @@
|
||||||
"pattern_password" : "Must be at least 3 characters long",
|
"pattern_password" : "Must be at least 3 characters long",
|
||||||
"pattern_domain" : "Must be a valid domain name (e.g. my-domain.org)",
|
"pattern_domain" : "Must be a valid domain name (e.g. my-domain.org)",
|
||||||
"pattern_listname" : "Must be alphanumeric and underscore characters only",
|
"pattern_listname" : "Must be alphanumeric and underscore characters only",
|
||||||
"pattern_port" : "Must be a valid port number (i.e. 0-65535)"
|
"pattern_port" : "Must be a valid port number (i.e. 0-65535)",
|
||||||
|
|
||||||
|
"format_datetime_short" : "%m/%d/%Y %I:%M %p"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -162,6 +162,7 @@
|
||||||
"pattern_password" : "Doit être composé d'au moins 3 caractères",
|
"pattern_password" : "Doit être composé d'au moins 3 caractères",
|
||||||
"pattern_domain" : "Doit être un nom de domaine valide (ex : mon-domaine.org)",
|
"pattern_domain" : "Doit être un nom de domaine valide (ex : mon-domaine.org)",
|
||||||
"pattern_listname" : "Doit être composé uniquement de caractères alphanumérique et de tiret bas",
|
"pattern_listname" : "Doit être composé uniquement de caractères alphanumérique et de tiret bas",
|
||||||
"pattern_port" : "Doit être un numéro de port valide (0-65535)"
|
"pattern_port" : "Doit être un numéro de port valide (0-65535)",
|
||||||
|
"format_datetime_short" : "%d/%m/%Y %H:%M"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue