summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/db/sqlalchemy/api.py9
-rw-r--r--nova/endpoint/cloud.py8
2 files changed, 12 insertions, 5 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 817ff9ac3..958036707 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -25,6 +25,7 @@ from nova import flags
from nova.db.sqlalchemy import models
from nova.db.sqlalchemy.session import get_session
from sqlalchemy import or_
+from sqlalchemy.orm import joinedload_all
FLAGS = flags.FLAGS
@@ -251,12 +252,17 @@ def instance_get(context, instance_id):
def instance_get_all(context):
- return models.Instance.all(deleted=_deleted(context))
+ session = get_session()
+ return session.query(models.Instance
+ ).options(joinedload_all('fixed_ip.floating_ips')
+ ).filter_by(deleted=_deleted(context)
+ ).all()
def instance_get_by_project(context, project_id):
session = get_session()
return session.query(models.Instance
+ ).options(joinedload_all('fixed_ip.floating_ips')
).filter_by(project_id=project_id
).filter_by(deleted=_deleted(context)
).all()
@@ -265,6 +271,7 @@ def instance_get_by_project(context, project_id):
def instance_get_by_reservation(_context, reservation_id):
session = get_session()
return session.query(models.Instance
+ ).options(joinedload_all('fixed_ip.floating_ips')
).filter_by(reservation_id=reservation_id
).filter_by(deleted=False
).all()
diff --git a/nova/endpoint/cloud.py b/nova/endpoint/cloud.py
index 709c967bb..6958eacfe 100644
--- a/nova/endpoint/cloud.py
+++ b/nova/endpoint/cloud.py
@@ -379,11 +379,11 @@ class CloudController(object):
'code': instance['state'],
'name': instance['state_description']
}
- floating_addr = db.instance_get_floating_address(context,
- instance['id'])
+ floating_addr = None
+ if instance['fixed_ip']['floating_ips']:
+ floating_addr = instance['fixed_ip']['floating_ips'][0]['str_id']
i['publicDnsName'] = floating_addr
- fixed_addr = db.instance_get_fixed_address(context,
- instance['id'])
+ fixed_addr = instance['fixed_ip']['str_id']
i['privateDnsName'] = fixed_addr
if not i['publicDnsName']:
i['publicDnsName'] = i['privateDnsName']