Merge "Update cluster_policy_get_all to no longer query uneeded tables"

This commit is contained in:
Zuul 2018-07-23 18:29:17 +00:00 committed by Gerrit Code Review
commit 71cbef47d6
1 changed files with 22 additions and 21 deletions

View File

@ -643,29 +643,30 @@ def cluster_policy_get(context, cluster_id, policy_id):
def cluster_policy_get_all(context, cluster_id, filters=None, sort=None):
query = model_query(context, models.ClusterPolicies)
query = query.filter_by(cluster_id=cluster_id)
with session_for_read() as session:
query = session.query(models.ClusterPolicies)
query = query.filter_by(cluster_id=cluster_id)
if filters is not None:
key_enabled = consts.CP_ENABLED
if key_enabled in filters:
filter_enabled = {key_enabled: filters[key_enabled]}
query = utils.exact_filter(query, models.ClusterPolicies,
filter_enabled)
key_type = consts.CP_POLICY_TYPE
key_name = consts.CP_POLICY_NAME
if key_type in filters and key_name in filters:
query = query.join(models.Policy).filter(
models.Policy.type == filters[key_type] and
models.Policy.name == filters[key_name])
elif key_type in filters:
query = query.join(models.Policy).filter(
models.Policy.type == filters[key_type])
elif key_name in filters:
query = query.join(models.Policy).filter(
models.Policy.name == filters[key_name])
if filters is not None:
key_enabled = consts.CP_ENABLED
if key_enabled in filters:
filter_enabled = {key_enabled: filters[key_enabled]}
query = utils.exact_filter(query, models.ClusterPolicies,
filter_enabled)
key_type = consts.CP_POLICY_TYPE
key_name = consts.CP_POLICY_NAME
if key_type in filters and key_name in filters:
query = query.join(models.Policy).filter(
models.Policy.type == filters[key_type] and
models.Policy.name == filters[key_name])
elif key_type in filters:
query = query.join(models.Policy).filter(
models.Policy.type == filters[key_type])
elif key_name in filters:
query = query.join(models.Policy).filter(
models.Policy.name == filters[key_name])
keys, dirs = utils.get_sort_params(sort)
keys, dirs = utils.get_sort_params(sort)
return sa_utils.paginate_query(query, models.ClusterPolicies, None,
keys, sort_dirs=dirs).all()