diff options
Diffstat (limited to 'nova/db')
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 3 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/models.py | 16 |
2 files changed, 18 insertions, 1 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 393e1a03c..b41dfa625 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -627,6 +627,7 @@ def certificate_get_all_by_user_and_project(context, user_id, project_id): def floating_ip_get(context, id): result = model_query(context, models.FloatingIp, project_only=True).\ filter_by(id=id).\ + options(joinedload_all('fixed_ip.instance')).\ first() if not result: @@ -841,6 +842,7 @@ def floating_ip_get_all_by_project(context, project_id): return _floating_ip_get_all(context).\ filter_by(project_id=project_id).\ filter_by(auto_assigned=False).\ + options(joinedload_all('fixed_ip.instance')).\ all() @@ -858,6 +860,7 @@ def _floating_ip_get_by_address(context, address, session=None): result = model_query(context, models.FloatingIp, session=session).\ filter_by(address=address).\ + options(joinedload_all('fixed_ip.instance')).\ first() if not result: diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index fd8348678..b4c680ac0 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -724,7 +724,14 @@ class FixedIp(BASE, NovaBase): foreign_keys=network_id, primaryjoin='and_(' 'FixedIp.network_id == Network.id,' - 'FixedIp.deleted == 0)') + 'FixedIp.deleted == 0,' + 'Network.deleted == 0)') + instance = relationship(Instance, + foreign_keys=instance_uuid, + primaryjoin='and_(' + 'FixedIp.instance_uuid == Instance.uuid,' + 'FixedIp.deleted == 0,' + 'Instance.deleted == 0)') class FloatingIp(BASE, NovaBase): @@ -738,6 +745,13 @@ class FloatingIp(BASE, NovaBase): auto_assigned = Column(Boolean, default=False, nullable=False) pool = Column(String(255)) interface = Column(String(255)) + fixed_ip = relationship(FixedIp, + backref=backref('floating_ips'), + foreign_keys=fixed_ip_id, + primaryjoin='and_(' + 'FloatingIp.fixed_ip_id == FixedIp.id,' + 'FloatingIp.deleted == 0,' + 'FixedIp.deleted == 0)') class DNSDomain(BASE, NovaBase): |
