summaryrefslogtreecommitdiff
path: root/trove/backup
diff options
context:
space:
mode:
authorLingxian Kong <anlin.kong@gmail.com>2020-09-13 22:57:05 +1200
committerLingxian Kong <anlin.kong@gmail.com>2020-09-13 23:55:11 +1200
commitf79bb53a39b137f5a836210707f3e351b177f6d0 (patch)
treeda33d86311cca479ea73b4f552c691cbab83f55f /trove/backup
parentdf4f74769ee731c57cf8dcef01dec8946baa58c6 (diff)
downloadtrove-f79bb53a39b137f5a836210707f3e351b177f6d0.tar.gz
Support getting backups of a specific project
Change-Id: I6a6778ddbb1ee92da28a709be91b04873fe749fe
Diffstat (limited to 'trove/backup')
-rw-r--r--trove/backup/models.py7
-rw-r--r--trove/backup/service.py4
2 files changed, 8 insertions, 3 deletions
diff --git a/trove/backup/models.py b/trove/backup/models.py
index 95d8683f..10c58ad2 100644
--- a/trove/backup/models.py
+++ b/trove/backup/models.py
@@ -186,13 +186,16 @@ class Backup(object):
return query.all(), marker
@classmethod
- def list(cls, context, datastore=None, instance_id=None,
+ def list(cls, context, datastore=None, instance_id=None, project_id=None,
all_projects=False):
query = DBBackup.query()
filters = [DBBackup.deleted == 0]
- if not all_projects:
+ if project_id:
+ filters.append(DBBackup.tenant_id == project_id)
+ elif not all_projects:
filters.append(DBBackup.tenant_id == context.project_id)
+
if instance_id:
filters.append(DBBackup.instance_id == instance_id)
diff --git a/trove/backup/service.py b/trove/backup/service.py
index 095ee9c9..ed783199 100644
--- a/trove/backup/service.py
+++ b/trove/backup/service.py
@@ -44,10 +44,11 @@ class BackupController(wsgi.Controller):
LOG.debug("Listing backups for tenant %s", tenant_id)
datastore = req.GET.get('datastore')
instance_id = req.GET.get('instance_id')
+ project_id = req.GET.get('project_id')
all_projects = strutils.bool_from_string(req.GET.get('all_projects'))
context = req.environ[wsgi.CONTEXT_KEY]
- if all_projects:
+ if project_id or all_projects:
policy.authorize_on_tenant(context, 'backup:index:all_projects')
else:
policy.authorize_on_tenant(context, 'backup:index')
@@ -56,6 +57,7 @@ class BackupController(wsgi.Controller):
context,
datastore=datastore,
instance_id=instance_id,
+ project_id=project_id,
all_projects=all_projects
)
view = views.BackupViews(backups)