Merge "Fix usage of Query.all() and NoResultFound"

This commit is contained in:
Jenkins 2013-05-03 19:13:54 +00:00 committed by Gerrit Code Review
commit 0ac1a384a9
6 changed files with 52 additions and 115 deletions

View File

@ -179,11 +179,8 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
return port return port
def _get_dns_by_subnet(self, context, subnet_id): def _get_dns_by_subnet(self, context, subnet_id):
try: dns_qry = context.session.query(models_v2.DNSNameServer)
dns_qry = context.session.query(models_v2.DNSNameServer) return dns_qry.filter_by(subnet_id=subnet_id).all()
return dns_qry.filter_by(subnet_id=subnet_id).all()
except exc.NoResultFound:
return []
def _get_route_by_subnet(self, context, subnet_id): def _get_route_by_subnet(self, context, subnet_id):
route_qry = context.session.query(models_v2.SubnetRoute) route_qry = context.session.query(models_v2.SubnetRoute)

View File

@ -98,13 +98,14 @@ def network_list(tenant_id):
def network_id(net_name): def network_id(net_name):
session = get_session() session = get_session()
try: networks = (session.query(models.Network).
return (session.query(models.Network).
options(joinedload(models.Network.ports)). options(joinedload(models.Network.ports)).
filter_by(name=net_name). filter_by(name=net_name).
all()) all())
except exc.NoResultFound: if networks:
raise q_exc.NetworkNotFound(net_name=net_name) return networks
raise q_exc.NetworkNotFound(net_name=net_name)
def network_get(net_id): def network_get(net_id):

View File

@ -57,11 +57,7 @@ def get_all_vlanids():
"""Gets all the vlanids.""" """Gets all the vlanids."""
LOG.debug(_("get_all_vlanids() called")) LOG.debug(_("get_all_vlanids() called"))
session = db.get_session() session = db.get_session()
try: return session.query(l2network_models.VlanID).all()
vlanids = session.query(l2network_models.VlanID).all()
return vlanids
except exc.NoResultFound:
return []
def is_vlanid_used(vlan_id): def is_vlanid_used(vlan_id):
@ -129,23 +125,15 @@ def get_all_vlanids_used():
"""Gets all the vlanids used.""" """Gets all the vlanids used."""
LOG.debug(_("get_all_vlanids() called")) LOG.debug(_("get_all_vlanids() called"))
session = db.get_session() session = db.get_session()
try: return (session.query(l2network_models.VlanID).
vlanids = (session.query(l2network_models.VlanID). filter_by(vlan_used=True).all())
filter_by(vlan_used=True).all())
return vlanids
except exc.NoResultFound:
return []
def get_all_vlan_bindings(): def get_all_vlan_bindings():
"""Lists all the vlan to network associations.""" """Lists all the vlan to network associations."""
LOG.debug(_("get_all_vlan_bindings() called")) LOG.debug(_("get_all_vlan_bindings() called"))
session = db.get_session() session = db.get_session()
try: return session.query(l2network_models.VlanBinding).all()
bindings = session.query(l2network_models.VlanBinding).all()
return bindings
except exc.NoResultFound:
return []
def get_vlan_binding(netid): def get_vlan_binding(netid):
@ -212,12 +200,8 @@ def get_all_qoss(tenant_id):
"""Lists all the qos to tenant associations.""" """Lists all the qos to tenant associations."""
LOG.debug(_("get_all_qoss() called")) LOG.debug(_("get_all_qoss() called"))
session = db.get_session() session = db.get_session()
try: return (session.query(l2network_models.QoS).
qoss = (session.query(l2network_models.QoS). filter_by(tenant_id=tenant_id).all())
filter_by(tenant_id=tenant_id).all())
return qoss
except exc.NoResultFound:
return []
def get_qos(tenant_id, qos_id): def get_qos(tenant_id, qos_id):
@ -285,12 +269,8 @@ def update_qos(tenant_id, qos_id, new_qos_name=None):
def get_all_credentials(tenant_id): def get_all_credentials(tenant_id):
"""Lists all the creds for a tenant.""" """Lists all the creds for a tenant."""
session = db.get_session() session = db.get_session()
try: return (session.query(l2network_models.Credential).
creds = (session.query(l2network_models.Credential). filter_by(tenant_id=tenant_id).all())
filter_by(tenant_id=tenant_id).all())
return creds
except exc.NoResultFound:
return []
def get_credential(tenant_id, credential_id): def get_credential(tenant_id, credential_id):

View File

@ -54,11 +54,7 @@ def get_all_vlanids():
"""Gets all the vlanids.""" """Gets all the vlanids."""
LOG.debug(_("get_all_vlanids() called")) LOG.debug(_("get_all_vlanids() called"))
session = db.get_session() session = db.get_session()
try: return session.query(network_models_v2.VlanID).all()
vlanids = session.query(network_models_v2.VlanID).all()
return vlanids
except exc.NoResultFound:
return []
def is_vlanid_used(vlan_id): def is_vlanid_used(vlan_id):
@ -126,23 +122,15 @@ def get_all_vlanids_used():
"""Gets all the vlanids used.""" """Gets all the vlanids used."""
LOG.debug(_("get_all_vlanids() called")) LOG.debug(_("get_all_vlanids() called"))
session = db.get_session() session = db.get_session()
try: return (session.query(network_models_v2.VlanID).
vlanids = (session.query(network_models_v2.VlanID). filter_by(vlan_used=True).all())
filter_by(vlan_used=True).all())
return vlanids
except exc.NoResultFound:
return []
def get_all_vlan_bindings(): def get_all_vlan_bindings():
"""Lists all the vlan to network associations.""" """Lists all the vlan to network associations."""
LOG.debug(_("get_all_vlan_bindings() called")) LOG.debug(_("get_all_vlan_bindings() called"))
session = db.get_session() session = db.get_session()
try: return session.query(network_models_v2.Vlan_Binding).all()
bindings = session.query(network_models_v2.Vlan_Binding).all()
return bindings
except exc.NoResultFound:
return []
def get_vlan_binding(netid): def get_vlan_binding(netid):
@ -209,12 +197,8 @@ def get_all_qoss(tenant_id):
"""Lists all the qos to tenant associations.""" """Lists all the qos to tenant associations."""
LOG.debug(_("get_all_qoss() called")) LOG.debug(_("get_all_qoss() called"))
session = db.get_session() session = db.get_session()
try: return (session.query(network_models_v2.QoS).
qoss = (session.query(network_models_v2.QoS). filter_by(tenant_id=tenant_id).all())
filter_by(tenant_id=tenant_id).all())
return qoss
except exc.NoResultFound:
return []
def get_qos(tenant_id, qos_id): def get_qos(tenant_id, qos_id):
@ -282,12 +266,8 @@ def update_qos(tenant_id, qos_id, new_qos_name=None):
def get_all_credentials(tenant_id): def get_all_credentials(tenant_id):
"""Lists all the creds for a tenant.""" """Lists all the creds for a tenant."""
session = db.get_session() session = db.get_session()
try: return (session.query(network_models_v2.Credential).
creds = (session.query(network_models_v2.Credential). filter_by(tenant_id=tenant_id).all())
filter_by(tenant_id=tenant_id).all())
return creds
except exc.NoResultFound:
return []
def get_credential(tenant_id, credential_id): def get_credential(tenant_id, credential_id):
@ -369,10 +349,6 @@ def update_credential(tenant_id, credential_id,
def get_ovs_vlans(): def get_ovs_vlans():
session = db.get_session() session = db.get_session()
try: bindings = (session.query(ovs_models_v2.VlanAllocation.vlan_id).
bindings = (session.query(ovs_models_v2.VlanAllocation). filter_by(allocated=True))
filter_by(allocated=True).
all())
except exc.NoResultFound:
return []
return [binding.vlan_id for binding in bindings] return [binding.vlan_id for binding in bindings]

View File

@ -33,38 +33,30 @@ def get_all_nexusport_bindings():
"""Lists all the nexusport bindings.""" """Lists all the nexusport bindings."""
LOG.debug(_("get_all_nexusport_bindings() called")) LOG.debug(_("get_all_nexusport_bindings() called"))
session = db.get_session() session = db.get_session()
try: return session.query(nexus_models_v2.NexusPortBinding).all()
bindings = session.query(nexus_models_v2.NexusPortBinding).all()
return bindings
except exc.NoResultFound:
return []
def get_nexusport_binding(port_id, vlan_id, switch_ip, instance_id): def get_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):
"""Lists a nexusport binding.""" """Lists a nexusport binding."""
LOG.debug(_("get_nexusport_binding() called")) LOG.debug(_("get_nexusport_binding() called"))
session = db.get_session() session = db.get_session()
try:
binding = (session.query(nexus_models_v2.NexusPortBinding). # FIXME(rpodolyaka): https://bugs.launchpad.net/quantum/+bug/1174323
filter_by(vlan_id=vlan_id).filter_by(switch_ip=switch_ip). return (session.query(nexus_models_v2.NexusPortBinding).
filter_by(port_id=port_id). filter_by(vlan_id=vlan_id).filter_by(switch_ip=switch_ip).
filter_by(instance_id=instance_id).all()) filter_by(port_id=port_id).
return binding filter_by(instance_id=instance_id).all())
except exc.NoResultFound:
raise c_exc.NexusPortBindingNotFound(vlan_id=vlan_id)
def get_nexusvlan_binding(vlan_id, switch_ip): def get_nexusvlan_binding(vlan_id, switch_ip):
"""Lists a vlan and switch binding.""" """Lists a vlan and switch binding."""
LOG.debug(_("get_nexusvlan_binding() called")) LOG.debug(_("get_nexusvlan_binding() called"))
session = db.get_session() session = db.get_session()
try:
binding = (session.query(nexus_models_v2.NexusPortBinding). # FIXME(rpodolyaka): https://bugs.launchpad.net/quantum/+bug/1174323
filter_by(vlan_id=vlan_id).filter_by(switch_ip=switch_ip). return (session.query(nexus_models_v2.NexusPortBinding).
all()) filter_by(vlan_id=vlan_id).filter_by(switch_ip=switch_ip).
return binding all())
except exc.NoResultFound:
raise c_exc.NexusPortBindingNotFound(vlan_id=vlan_id)
def add_nexusport_binding(port_id, vlan_id, switch_ip, instance_id): def add_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):
@ -82,18 +74,15 @@ def remove_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):
"""Removes a nexusport binding.""" """Removes a nexusport binding."""
LOG.debug(_("remove_nexusport_binding() called")) LOG.debug(_("remove_nexusport_binding() called"))
session = db.get_session() session = db.get_session()
try: binding = (session.query(nexus_models_v2.NexusPortBinding).
binding = (session.query(nexus_models_v2.NexusPortBinding). filter_by(vlan_id=vlan_id).filter_by(switch_ip=switch_ip).
filter_by(vlan_id=vlan_id).filter_by(switch_ip=switch_ip). filter_by(port_id=port_id).
filter_by(port_id=port_id). filter_by(instance_id=instance_id).all())
filter_by(instance_id=instance_id).all())
for bind in binding: for bind in binding:
session.delete(bind) session.delete(bind)
session.flush() session.flush()
return binding return binding
except exc.NoResultFound:
pass
def update_nexusport_binding(port_id, new_vlan_id): def update_nexusport_binding(port_id, new_vlan_id):
@ -129,10 +118,8 @@ def get_port_vlan_switch_binding(port_id, vlan_id, switch_ip):
"""Lists nexusvm bindings.""" """Lists nexusvm bindings."""
LOG.debug(_("get_port_vlan_switch_binding() called")) LOG.debug(_("get_port_vlan_switch_binding() called"))
session = db.get_session() session = db.get_session()
try:
binding = (session.query(nexus_models_v2.NexusPortBinding). # FIXME(rpodolyaka): https://bugs.launchpad.net/quantum/+bug/1174323
filter_by(port_id=port_id).filter_by(switch_ip=switch_ip). return (session.query(nexus_models_v2.NexusPortBinding).
filter_by(vlan_id=vlan_id).all()) filter_by(port_id=port_id).filter_by(switch_ip=switch_ip).
return binding filter_by(vlan_id=vlan_id).all())
except exc.NoResultFound:
raise c_exc.NexusPortBindingNotFound(vlan_id=vlan_id)

View File

@ -355,12 +355,8 @@ def set_port_status(port_id, status):
def get_tunnel_endpoints(): def get_tunnel_endpoints():
session = db.get_session() session = db.get_session()
try:
# TODO(rpodolyaka): Query.all() can't raise the NoResultNound exception tunnels = session.query(ovs_models_v2.TunnelEndpoint)
# Fix this later along with other identical cases.
tunnels = session.query(ovs_models_v2.TunnelEndpoint).all()
except exc.NoResultFound:
return []
return [{'id': tunnel.id, return [{'id': tunnel.id,
'ip_address': tunnel.ip_address} for tunnel in tunnels] 'ip_address': tunnel.ip_address} for tunnel in tunnels]