File 0006-fix-list_availability_zones-for-postgresq.patch of Package openstack-neutron
From 5b9fe3494a80b3185b5d35dccbc71132211dd989 Mon Sep 17 00:00:00 2001
From: Ann Kamyshnikova <akamyshnikova@mirantis.com>
Date: Tue, 4 Oct 2016 11:20:27 +0300
Subject: Fix _list_availability_zones for PostgreSQL
For PostgreSQL _list_availability_zones crashes if you're using
GROUP BY without object id. Use with_entities to use group_by
correctly.
Closes-bug: #1616793
Change-Id: Ibc09666bc5863a1980acd0a34d6545841a93a481
---
neutron/db/agents_db.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/neutron/db/agents_db.py b/neutron/db/agents_db.py
index 4b97f53..f02b85d 100644
--- a/neutron/db/agents_db.py
+++ b/neutron/db/agents_db.py
@@ -128,9 +128,9 @@ class AgentAvailabilityZoneMixin(az_ext.AvailabilityZonePluginBase):
def _list_availability_zones(self, context, filters=None):
result = {}
query = self._get_collection_query(context, Agent, filters=filters)
- for agent in query.group_by(Agent.admin_state_up,
- Agent.availability_zone,
- Agent.agent_type):
+ columns = (Agent.admin_state_up, Agent.availability_zone,
+ Agent.agent_type)
+ for agent in query.with_entities(*columns).group_by(*columns):
if not agent.availability_zone:
continue
if agent.agent_type == constants.AGENT_TYPE_DHCP: