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
This commit is contained in:
Ann Kamyshnikova 2016-10-04 11:20:27 +03:00
parent 0c76de8d01
commit 5b9fe3494a
1 changed files with 3 additions and 3 deletions

View File

@ -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: