summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.mailmap2
-rw-r--r--nova/network/quantum/client.py12
-rw-r--r--nova/network/quantum/fake.py10
-rw-r--r--nova/network/quantum/manager.py2
-rw-r--r--nova/network/quantum/melange_connection.py4
-rw-r--r--nova/network/quantum/melange_ipam_lib.py3
-rw-r--r--nova/network/quantum/nova_ipam_lib.py2
-rw-r--r--nova/network/quantum/quantum_connection.py8
-rw-r--r--nova/tests/test_quantum.py21
9 files changed, 37 insertions, 27 deletions
diff --git a/.mailmap b/.mailmap
index a46dd6673..f2f59d81b 100644
--- a/.mailmap
+++ b/.mailmap
@@ -37,7 +37,7 @@
<nirmal.ranganathan@rackspace.com> <nirmal.ranganathan@rackspace.coom>
<paul@openstack.org> <paul.voccio@rackspace.com>
<paul@openstack.org> <pvoccio@castor.local>
-<rconradharris@gmail.com> <rick.harris@rackspace.com>
+<rconradharris@gmail.com> <rick.harris@rackspace.com>
<rlane@wikimedia.org> <laner@controller>
<sleepsonthefloor@gmail.com> <root@tonbuntu>
<soren.hansen@rackspace.com> <soren@linux2go.dk>
diff --git a/nova/network/quantum/client.py b/nova/network/quantum/client.py
index 67582d8bc..455bb8a79 100644
--- a/nova/network/quantum/client.py
+++ b/nova/network/quantum/client.py
@@ -22,11 +22,15 @@ import socket
import urllib
+#FIXME(danwent): All content in this file should be removed once the
+# packaging work for the quantum client libraries is complete.
+# At that point, we will be able to just install the libraries as a
+# dependency and import from quantum.client.* and quantum.common.*
+# Until then, we have simplified versions of these classes in this file.
+
class JSONSerializer(object):
- """
- This is a simple json-only serializer to use until we can just grab
+ """ This is a simple json-only serializer to use until we can just grab
the standard serializer from the quantum library.
- TODO(danwent): replace serializer with quantum implementation
"""
def serialize(self, data, content_type):
try:
@@ -39,7 +43,7 @@ class JSONSerializer(object):
return json.loads(data)
-# FIXME: (danwent) the full client lib will expose more
+# The full client lib will expose more
# granular exceptions, for now, just try to distinguish
# between the cases we care about.
class QuantumNotFoundException(Exception):
diff --git a/nova/network/quantum/fake.py b/nova/network/quantum/fake.py
index f668edfed..6a4005c59 100644
--- a/nova/network/quantum/fake.py
+++ b/nova/network/quantum/fake.py
@@ -65,8 +65,9 @@ class FakeQuantumClientConnection(object):
def create_and_attach_port(self, tenant_id, net_id, interface_id):
if not self.network_exists(tenant_id, net_id):
- raise Exception(_("network %s does not exist for tenant %s" %
- (net_id, tenant_id)))
+ raise Exception(
+ _("network %(net_id)s does not exist for tenant %(tenant_id)"
+ % locals()))
self._confirm_not_attached(interface_id)
uuid = str(utils.gen_uuid())
@@ -76,8 +77,9 @@ class FakeQuantumClientConnection(object):
def detach_and_delete_port(self, tenant_id, net_id, port_id):
if not self.network_exists(tenant_id, net_id):
- raise Exception(_("network %s does not exist for tenant %s" %\
- (net_id, tenant_id)))
+ raise exception.NotFound(
+ _("network %s does not exist for tenant %s" %
+ (net_id, tenant_id)))
del self.nets[net_id]['ports'][port_id]
def get_port_by_attachment(self, tenant_id, attachment_id):
diff --git a/nova/network/quantum/manager.py b/nova/network/quantum/manager.py
index 153f6c0f2..709299dd2 100644
--- a/nova/network/quantum/manager.py
+++ b/nova/network/quantum/manager.py
@@ -86,7 +86,7 @@ class QuantumManager(manager.FlatManager):
if num_networks != 1:
raise Exception(_("QuantumManager requires that only one"
" network is created per call"))
- q_tenant_id = kwargs["project_id"] or FLAGS.quantum_default_tenant_id
+ q_tenant_id = kwargs.get("project_id", FLAGS.quantum_default_tenant_id)
quantum_net_id = uuid
if quantum_net_id:
if not self.q_conn.network_exists(q_tenant_id, quantum_net_id):
diff --git a/nova/network/quantum/melange_connection.py b/nova/network/quantum/melange_connection.py
index 1ee0c29a2..4dc35d15d 100644
--- a/nova/network/quantum/melange_connection.py
+++ b/nova/network/quantum/melange_connection.py
@@ -35,7 +35,9 @@ flags.DEFINE_string('melange_port',
json_content_type = {'Content-type': "application/json"}
-
+#FIXME(danwent): talk to the Melange folks about creating a
+# client lib that we can import as a library, instead of
+# have to have all of the client code in here.
class MelangeConnection(object):
def __init__(self, host=None, port=None, use_ssl=False):
diff --git a/nova/network/quantum/melange_ipam_lib.py b/nova/network/quantum/melange_ipam_lib.py
index 24a7c5404..71c0d7ce6 100644
--- a/nova/network/quantum/melange_ipam_lib.py
+++ b/nova/network/quantum/melange_ipam_lib.py
@@ -17,6 +17,7 @@
from netaddr import IPNetwork
+from nova import exception
from nova import flags
from nova import log as logging
from nova.network.quantum import melange_connection
@@ -85,7 +86,7 @@ class QuantumMelangeIPAMLib(object):
for b in all_blocks['ip_blocks']:
if b['cidr'] == cidr:
return b['network_id']
- raise Exception(_("No network found for cidr %s" % cidr))
+ raise exception.NotFound(_("No network found for cidr %s" % cidr))
def delete_subnets_by_net_id(self, context, net_id, project_id):
""" Find Melange block associated with the Quantum UUID,
diff --git a/nova/network/quantum/nova_ipam_lib.py b/nova/network/quantum/nova_ipam_lib.py
index 4b08b906a..17236a976 100644
--- a/nova/network/quantum/nova_ipam_lib.py
+++ b/nova/network/quantum/nova_ipam_lib.py
@@ -154,7 +154,7 @@ class QuantumNovaIPAMLib(object):
vif_rec = db.virtual_interface_get_by_uuid(context, vif_id)
fixed_ips = db.fixed_ip_get_by_virtual_interface(context,
vif_rec['id'])
- return [f['address'] for f in fixed_ips]
+ return [fixed_ip['address'] for fixed_ip in fixed_ips]
def get_v6_ips_by_interface(self, context, net_id, vif_id, project_id):
""" Returns a list containing a single IPv6 address strings
diff --git a/nova/network/quantum/quantum_connection.py b/nova/network/quantum/quantum_connection.py
index 90d5e8e04..93892a843 100644
--- a/nova/network/quantum/quantum_connection.py
+++ b/nova/network/quantum/quantum_connection.py
@@ -80,8 +80,8 @@ class QuantumClientConnection(object):
status to ACTIVE to enable traffic, and attaches the
vNIC with the specified interface-id.
"""
- LOG.debug(_("Connecting interface %s to net %s for %s" %
- (interface_id, net_id, tenant_id)))
+ LOG.debug(_("Connecting interface %(interface_id)s to "
+ "net %(net_id)s for %(tenant_id)s" % locals()))
port_data = {'port': {'state': 'ACTIVE'}}
resdict = self.client.create_port(net_id, port_data, tenant=tenant_id)
port_id = resdict["port"]["id"]
@@ -92,8 +92,8 @@ class QuantumClientConnection(object):
def detach_and_delete_port(self, tenant_id, net_id, port_id):
""" Detach and delete the specified Quantum port. """
- LOG.debug("Deleting port %s on net %s for %s" % \
- (port_id, net_id, tenant_id))
+ LOG.debug(_("Deleting port %(port_id)s on net %(net_id)s"
+ " for %(tenant_id)s" % locals()))
self.client.detach_resource(net_id, port_id, tenant=tenant_id)
self.client.delete_port(net_id, port_id, tenant=tenant_id)
diff --git a/nova/tests/test_quantum.py b/nova/tests/test_quantum.py
index 2cc83adf1..0fa4184b1 100644
--- a/nova/tests/test_quantum.py
+++ b/nova/tests/test_quantum.py
@@ -189,29 +189,29 @@ class QuantumTestCaseBase(object):
# we don't know which order the NICs will be in until we
# introduce the notion of priority
# v4 cidr
- self.assertTrue(nw_info[0][0]['cidr'].startswith("9.") or \
+ self.assertTrue(nw_info[0][0]['cidr'].startswith("9.") or
nw_info[1][0]['cidr'].startswith("9."))
- self.assertTrue(nw_info[0][0]['cidr'].startswith("192.") or \
+ self.assertTrue(nw_info[0][0]['cidr'].startswith("192.") or
nw_info[1][0]['cidr'].startswith("192."))
# v4 address
- self.assertTrue(nw_info[0][1]['ips'][0]['ip'].startswith("9.") or \
+ self.assertTrue(nw_info[0][1]['ips'][0]['ip'].startswith("9.") or
nw_info[1][1]['ips'][0]['ip'].startswith("9."))
- self.assertTrue(nw_info[0][1]['ips'][0]['ip'].startswith("192.") or \
+ self.assertTrue(nw_info[0][1]['ips'][0]['ip'].startswith("192.") or
nw_info[1][1]['ips'][0]['ip'].startswith("192."))
# v6 cidr
- self.assertTrue(nw_info[0][0]['cidr_v6'].startswith("2001:1dbb:") or \
+ self.assertTrue(nw_info[0][0]['cidr_v6'].startswith("2001:1dbb:") or
nw_info[1][0]['cidr_v6'].startswith("2001:1dbb:"))
- self.assertTrue(nw_info[0][0]['cidr_v6'].startswith("2001:1db9:") or \
+ self.assertTrue(nw_info[0][0]['cidr_v6'].startswith("2001:1db9:") or
nw_info[1][0]['cidr_v6'].startswith("2001:1db9:"))
# v6 address
self.assertTrue(\
- nw_info[0][1]['ip6s'][0]['ip'].startswith("2001:1dbb:") or \
+ nw_info[0][1]['ip6s'][0]['ip'].startswith("2001:1dbb:") or
nw_info[1][1]['ip6s'][0]['ip'].startswith("2001:1dbb:"))
self.assertTrue(\
- nw_info[0][1]['ip6s'][0]['ip'].startswith("2001:1db9:") or \
+ nw_info[0][1]['ip6s'][0]['ip'].startswith("2001:1db9:") or
nw_info[1][1]['ip6s'][0]['ip'].startswith("2001:1db9:"))
self.net_man.deallocate_for_instance(ctx,
@@ -240,9 +240,10 @@ class QuantumNovaIPAMTestCase(QuantumTestCaseBase, test.TestCase):
for n in db.network_get_all(ctx):
db.network_delete_safe(ctx, n['id'])
- # NOTE(danwent): I've found that other unit tests have a nasty
+ # Other unit tests (e.g., test_compute.py) have a nasty
# habit of of creating fixed IPs and not cleaning up, which
- # can confuse these tests, so we clean them all.
+ # can confuse these tests, so we remove all existing fixed
+ # ips before starting.
session = get_session()
result = session.query(models.FixedIp).all()
with session.begin():