summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/db/sqlalchemy/api.py16
1 files changed, 5 insertions, 11 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index d07c53759..828d24c78 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -598,17 +598,11 @@ def fixed_ip_get_all(context, session=None):
def fixed_ip_get_all_by_host(context, host=None):
session = get_session()
- # FIXME: I'm sure that SQLAlchemy can handle this in a nicer way
- instances = session.query(models.Instance).\
- filter_by(state=1).\
- filter_by(host=host).\
- all()
-
- result = []
- for instance in instances:
- result.append(session.query(models.FixedIp).\
- filter_by(instance_id=instance['id']).\
- first())
+ result = session.query(models.FixedIp).\
+ join(models.FixedIp.instance).\
+ filter_by(state=1).\
+ filter_by(host=host).\
+ all()
if not result:
raise exception.NotFound(_('No fixed ips for this host defined'))