diff --git a/watcher/api/controllers/v1/audit_template.py b/watcher/api/controllers/v1/audit_template.py index 4f673c61e..888e239a5 100644 --- a/watcher/api/controllers/v1/audit_template.py +++ b/watcher/api/controllers/v1/audit_template.py @@ -448,7 +448,7 @@ class AuditTemplatesController(rest.RestController): sort_key, sort_dir, expand=False, resource_url=None): api_utils.validate_search_filters( - filters, list(objects.audit_template.AuditTemplate.fields.keys()) + + filters, list(objects.audit_template.AuditTemplate.fields) + ["goal_uuid", "goal_name", "strategy_uuid", "strategy_name"]) limit = api_utils.validate_limit(limit) api_utils.validate_sort_dir(sort_dir) diff --git a/watcher/api/controllers/v1/goal.py b/watcher/api/controllers/v1/goal.py index a7dd28b16..43ba33d29 100644 --- a/watcher/api/controllers/v1/goal.py +++ b/watcher/api/controllers/v1/goal.py @@ -170,7 +170,7 @@ class GoalsController(rest.RestController): limit = api_utils.validate_limit(limit) api_utils.validate_sort_dir(sort_dir) - sort_db_key = (sort_key if sort_key in objects.Goal.fields.keys() + sort_db_key = (sort_key if sort_key in objects.Goal.fields else None) marker_obj = None diff --git a/watcher/api/controllers/v1/service.py b/watcher/api/controllers/v1/service.py index 63ea1794a..e7f77c93f 100644 --- a/watcher/api/controllers/v1/service.py +++ b/watcher/api/controllers/v1/service.py @@ -104,7 +104,7 @@ class Service(base.APIBase): def __init__(self, **kwargs): super(Service, self).__init__() - fields = list(objects.Service.fields.keys()) + ['status'] + fields = list(objects.Service.fields) + ['status'] self.fields = [] for field in fields: self.fields.append(field) @@ -194,7 +194,7 @@ class ServicesController(rest.RestController): limit = api_utils.validate_limit(limit) api_utils.validate_sort_dir(sort_dir) - sort_db_key = (sort_key if sort_key in objects.Service.fields.keys() + sort_db_key = (sort_key if sort_key in objects.Service.fields else None) marker_obj = None diff --git a/watcher/api/controllers/v1/strategy.py b/watcher/api/controllers/v1/strategy.py index 2c74da14a..dc7e2c5f9 100644 --- a/watcher/api/controllers/v1/strategy.py +++ b/watcher/api/controllers/v1/strategy.py @@ -210,12 +210,12 @@ class StrategiesController(rest.RestController): def _get_strategies_collection(self, filters, marker, limit, sort_key, sort_dir, expand=False, resource_url=None): api_utils.validate_search_filters( - filters, list(objects.strategy.Strategy.fields.keys()) + + filters, list(objects.strategy.Strategy.fields) + ["goal_uuid", "goal_name"]) limit = api_utils.validate_limit(limit) api_utils.validate_sort_dir(sort_dir) - sort_db_key = (sort_key if sort_key in objects.Strategy.fields.keys() + sort_db_key = (sort_key if sort_key in objects.Strategy.fields else None) marker_obj = None diff --git a/watcher/api/controllers/v1/utils.py b/watcher/api/controllers/v1/utils.py index 2ad5b49bf..60d503829 100644 --- a/watcher/api/controllers/v1/utils.py +++ b/watcher/api/controllers/v1/utils.py @@ -57,7 +57,7 @@ def validate_sort_dir(sort_dir): def validate_search_filters(filters, allowed_fields): # Very lightweight validation for now # todo: improve this (e.g. https://www.parse.com/docs/rest/guide/#queries) - for filter_name in filters.keys(): + for filter_name in filters: if filter_name not in allowed_fields: raise wsme.exc.ClientSideError( _("Invalid filter: %s") % filter_name) diff --git a/watcher/api/scheduling.py b/watcher/api/scheduling.py index 4a2b0538d..9a3a42385 100644 --- a/watcher/api/scheduling.py +++ b/watcher/api/scheduling.py @@ -42,7 +42,7 @@ class APISchedulingService(scheduling.BackgroundSchedulerService): services = objects.service.Service.list(context) for service in services: result = self.get_service_status(context, service.id) - if service.id not in self.services_status.keys(): + if service.id not in self.services_status: self.services_status[service.id] = result continue if self.services_status[service.id] != result: