diff options
author | Lingxian Kong <anlin.kong@gmail.com> | 2020-09-13 22:57:05 +1200 |
---|---|---|
committer | Lingxian Kong <anlin.kong@gmail.com> | 2020-09-13 23:55:11 +1200 |
commit | f79bb53a39b137f5a836210707f3e351b177f6d0 (patch) | |
tree | da33d86311cca479ea73b4f552c691cbab83f55f /trove/backup | |
parent | df4f74769ee731c57cf8dcef01dec8946baa58c6 (diff) | |
download | trove-f79bb53a39b137f5a836210707f3e351b177f6d0.tar.gz |
Support getting backups of a specific project
Change-Id: I6a6778ddbb1ee92da28a709be91b04873fe749fe
Diffstat (limited to 'trove/backup')
-rw-r--r-- | trove/backup/models.py | 7 | ||||
-rw-r--r-- | trove/backup/service.py | 4 |
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) |