Consider volumes without name
- Name is an optional field for Volume. Use volume id in this case.
- Fix typo db upgrade command in registration
diff --git a/staffeln/cmd/dbmanage.py b/staffeln/cmd/dbmanage.py
index 0ea259e..d4706cf 100644
--- a/staffeln/cmd/dbmanage.py
+++ b/staffeln/cmd/dbmanage.py
@@ -47,12 +47,12 @@
valid_commands = set(
[
"create_schema",
- "do_upgrade",
+ "upgrade",
]
)
if not set(sys.argv).intersection(valid_commands):
sys.argv.append("create_schema")
- sys.argv.append("do_upgrade")
+ sys.argv.append("upgrade")
service.prepare_service(sys.argv)
CONF.command.func()
diff --git a/staffeln/conductor/backup.py b/staffeln/conductor/backup.py
index 37a1fbe..29f686d 100755
--- a/staffeln/conductor/backup.py
+++ b/staffeln/conductor/backup.py
@@ -263,6 +263,10 @@
for volume in server.attached_volumes:
if not self.filter_by_volume_status(volume["id"], project.id):
continue
+ if "name" not in volume:
+ volume_name = volume["id"]
+ else:
+ volume_name = volume["name"][:100]
queues_map.append(
QueueMapping(
project_id=project.id,
@@ -273,7 +277,7 @@
# Only keep the last 100 chars of instance_name and
# volume_name for forming backup_name
instance_name=server.name[:100],
- volume_name=volume["name"][:100],
+ volume_name=volume_name,
)
)
return queues_map
@@ -301,7 +305,7 @@
project_id = queue.project_id
timestamp = int(datetime.now().timestamp())
# Backup name allows max 255 chars of string
- backup_name = ("%(instance_name)s-%(volume_name)s-%(timestamp)s") % {
+ backup_name = ("%(instance_name)s_%(volume_name)s_%(timestamp)s") % {
"instance_name": queue.instance_name,
"volume_name": queue.volume_name,
"timestamp": timestamp,