Merge pull request #43 from vexxhost/exception
Added exception handler for the keystone errors
diff --git a/staffeln/common/openstack.py b/staffeln/common/openstack.py
index 1a7c10e..75f2379 100644
--- a/staffeln/common/openstack.py
+++ b/staffeln/common/openstack.py
@@ -67,7 +67,7 @@
)
- def delete_backup(self, uuid, project_id=None, force=True):
+ def delete_backup(self, uuid, project_id=None, force=False):
# Note(Alex): v3 is not supporting force delete?
# conn.block_storage.delete_backup(
# project_id=project_id, backup_id=uuid,
diff --git a/staffeln/conductor/backup.py b/staffeln/conductor/backup.py
index 957c59f..d7f61e0 100755
--- a/staffeln/conductor/backup.py
+++ b/staffeln/conductor/backup.py
@@ -270,6 +270,17 @@
queue.backup_id = parsed["id"]
queue.backup_status = constants.BACKUP_WIP
queue.save()
+ # Added extra exception as OpenstackSDKException does not handle the keystone unauthourized issue.
+ except Exception as error:
+ reason = _("Backup creation for the volume %s failled. %s"
+ % (queue.volume_id, str(error)))
+ LOG.error(reason)
+ self.result.add_failed_backup(project_id, queue.volume_id, reason)
+ parsed = parse.parse("Error in creating volume backup {id}", str(error))
+ if parsed is not None:
+ queue.backup_id = parsed["id"]
+ queue.backup_status = constants.BACKUP_WIP
+ queue.save()
else:
pass
# TODO(Alex): remove this task from the task list
@@ -293,7 +304,7 @@
self.result.add_failed_backup(task.project_id, task.volume_id, reason)
LOG.error(reason)
# 2. delete backup generator
- self.openstacksdk.delete_backup(uuid=task.backup_id)
+ self.openstacksdk.delete_backup(uuid=task.backup_id, force=True)
# 3. remove failed task from the task queue
task.delete_queue()