summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTushar Patil <tushar.vitthal.patil@gmail.com>2011-08-05 15:00:31 -0700
committerTushar Patil <tushar.vitthal.patil@gmail.com>2011-08-05 15:00:31 -0700
commitfb0b82c0d6af2d67ec9a88842d857b558eaec5d1 (patch)
treebae64d93a61252451b7938713b8eca9b5c5d8834
parent3335a91c3c53513cc35e3f39a59975b33524950b (diff)
downloadnova-fb0b82c0d6af2d67ec9a88842d857b558eaec5d1.tar.gz
nova-fb0b82c0d6af2d67ec9a88842d857b558eaec5d1.tar.xz
nova-fb0b82c0d6af2d67ec9a88842d857b558eaec5d1.zip
Refactored code to reduce lines of code and changed method signature
-rw-r--r--nova/db/api.py12
-rw-r--r--nova/db/sqlalchemy/api.py14
-rw-r--r--nova/network/manager.py31
-rw-r--r--nova/tests/test_network.py32
4 files changed, 41 insertions, 48 deletions
diff --git a/nova/db/api.py b/nova/db/api.py
index b98859ef9..789e9bc97 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -710,9 +710,9 @@ def network_get_all(context):
return IMPL.network_get_all(context)
-def network_get_requested_networks(context, requested_networks):
- """Return all defined networks."""
- return IMPL.network_get_requested_networks(context, requested_networks)
+def network_get_networks_by_ids(context, network_ids):
+ """Return networks by ids."""
+ return IMPL.network_get_networks_by_ids(context, network_ids)
# pylint: disable=C0103
@@ -1262,14 +1262,14 @@ def project_get_networks(context, project_id, associate=True):
return IMPL.project_get_networks(context, project_id, associate)
-def project_get_requested_networks(context, requested_networks):
- """Return the network associated with the project.
+def project_get_networks_by_ids(context, network_ids):
+ """Return the networks by ids associated with the project.
If associate is true, it will attempt to associate a new
network if one is not found, otherwise it returns None.
"""
- return IMPL.project_get_requested_networks(context, requested_networks)
+ return IMPL.project_get_networks_by_ids(context, network_ids)
def project_get_networks_v6(context, project_id):
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 5de720205..63964a193 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -1701,13 +1701,8 @@ def network_get_all(context):
@require_admin_context
-def network_get_requested_networks(context, requested_networks):
+def network_get_networks_by_ids(context, network_ids):
session = get_session()
-
- network_ids = []
- for id, fixed_ip in requested_networks:
- network_ids.append(id)
-
result = session.query(models.Network).\
filter(models.Network.id.in_(network_ids)).\
filter_by(deleted=False).all()
@@ -2873,13 +2868,8 @@ def project_get_networks(context, project_id, associate=True):
@require_context
-def project_get_requested_networks(context, requested_networks):
+def project_get_networks_by_ids(context, network_ids):
session = get_session()
-
- network_ids = []
- for id, fixed_ip in requested_networks:
- network_ids.append(id)
-
result = session.query(models.Network).\
filter(models.Network.id.in_(network_ids)).\
filter_by(deleted=False).\
diff --git a/nova/network/manager.py b/nova/network/manager.py
index 655d5800a..b5c961e2d 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -134,10 +134,9 @@ class RPCAllocateFixedIP(object):
for network in networks:
address = None
if requested_networks is not None:
- for id, fixed_ip in requested_networks:
- if (network['id'] == id):
- address = fixed_ip
- break
+ for address in (fixed_ip for (id, fixed_ip) in \
+ requested_networks if network['id'] == id):
+ break
# NOTE(vish): if we are not multi_host pass to the network host
if not network['multi_host']:
@@ -387,8 +386,9 @@ class NetworkManager(manager.SchedulerDependentManager):
# there is a better way to determine which networks
# a non-vlan instance should connect to
if requested_networks is not None and len(requested_networks) != 0:
- networks = self.db.network_get_requested_networks(context,
- requested_networks)
+ network_ids = [id for (id, fixed_ip) in requested_networks]
+ networks = self.db.network_get_networks_by_ids(context,
+ network_ids)
else:
try:
networks = self.db.network_get_all(context)
@@ -743,7 +743,8 @@ class NetworkManager(manager.SchedulerDependentManager):
if networks is None or len(networks) == 0:
return
- result = self.db.network_get_requested_networks(context, networks)
+ network_ids = [id for (id, fixed_ip) in networks]
+ result = self.db.network_get_networks_by_ids(context, network_ids)
for network_id, fixed_ip in networks:
# check if the fixed IP address is valid and
# it actually belongs to the network
@@ -793,10 +794,10 @@ class FlatManager(NetworkManager):
for network in networks:
address = None
if requested_networks is not None:
- for id, fixed_ip in requested_networks:
- if (network['id'] == id):
- address = fixed_ip
- break
+ for address in (fixed_ip for (id, fixed_ip) in \
+ requested_networks if network['id'] == id):
+ break
+
self.allocate_fixed_ip(context, instance_id,
network, address=address)
@@ -913,8 +914,9 @@ class VlanManager(RPCAllocateFixedIP, FloatingIP, NetworkManager):
"""Determine which networks an instance should connect to."""
# get networks associated with project
if requested_networks is not None and len(requested_networks) != 0:
- networks = self.db.project_get_requested_networks(context,
- requested_networks)
+ network_ids = [id for (id, fixed_ip) in requested_networks]
+ networks = self.db.project_get_networks_by_ids(context,
+ network_ids)
else:
networks = self.db.project_get_networks(context, project_id)
return networks
@@ -973,7 +975,8 @@ class VlanManager(RPCAllocateFixedIP, FloatingIP, NetworkManager):
if networks is None or len(networks) == 0:
return
- result = self.db.project_get_requested_networks(context, networks)
+ network_ids = [id for (id, fixed_ip) in networks]
+ result = self.db.project_get_networks_by_ids(context, network_ids)
for network_id, fixed_ip in networks:
# check if the fixed IP address is valid and
diff --git a/nova/tests/test_network.py b/nova/tests/test_network.py
index 53abbeb4f..9608121bb 100644
--- a/nova/tests/test_network.py
+++ b/nova/tests/test_network.py
@@ -181,11 +181,11 @@ class FlatNetworkTestCase(test.TestCase):
self.assertDictListMatch(nw[1]['ips'], check)
def test_validate_networks(self):
- self.mox.StubOutWithMock(db, 'network_get_requested_networks')
+ self.mox.StubOutWithMock(db, 'network_get_networks_by_ids')
self.mox.StubOutWithMock(db, "fixed_ip_validate_by_network_address")
requested_networks = [(1, "192.168.0.100")]
- db.network_get_requested_networks(mox.IgnoreArg(),
+ db.network_get_networks_by_ids(mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn(networks)
db.fixed_ip_validate_by_network_address(mox.IgnoreArg(),
mox.IgnoreArg(),
@@ -204,9 +204,9 @@ class FlatNetworkTestCase(test.TestCase):
self.network.validate_networks(None, requested_networks)
def test_validate_networks_invalid_fixed_ip(self):
- self.mox.StubOutWithMock(db, 'network_get_requested_networks')
+ self.mox.StubOutWithMock(db, 'network_get_networks_by_ids')
requested_networks = [(1, "192.168.0.100.1")]
- db.network_get_requested_networks(mox.IgnoreArg(),
+ db.network_get_networks_by_ids(mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn(networks)
self.mox.ReplayAll()
@@ -215,10 +215,10 @@ class FlatNetworkTestCase(test.TestCase):
requested_networks)
def test_validate_networks_empty_fixed_ip(self):
- self.mox.StubOutWithMock(db, 'network_get_requested_networks')
+ self.mox.StubOutWithMock(db, 'network_get_networks_by_ids')
requested_networks = [(1, "")]
- db.network_get_requested_networks(mox.IgnoreArg(),
+ db.network_get_networks_by_ids(mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn(networks)
self.mox.ReplayAll()
@@ -227,10 +227,10 @@ class FlatNetworkTestCase(test.TestCase):
None, requested_networks)
def test_validate_networks_none_fixed_ip(self):
- self.mox.StubOutWithMock(db, 'network_get_requested_networks')
+ self.mox.StubOutWithMock(db, 'network_get_networks_by_ids')
requested_networks = [(1, None)]
- db.network_get_requested_networks(mox.IgnoreArg(),
+ db.network_get_networks_by_ids(mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn(networks)
self.mox.ReplayAll()
@@ -294,11 +294,11 @@ class VlanNetworkTestCase(test.TestCase):
cidr='192.168.0.1/24', network_size=100)
def test_validate_networks(self):
- self.mox.StubOutWithMock(db, 'project_get_requested_networks')
+ self.mox.StubOutWithMock(db, 'project_get_networks_by_ids')
self.mox.StubOutWithMock(db, "fixed_ip_validate_by_network_address")
requested_networks = [(1, "192.168.0.100")]
- db.project_get_requested_networks(mox.IgnoreArg(),
+ db.project_get_networks_by_ids(mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn(networks)
db.fixed_ip_validate_by_network_address(mox.IgnoreArg(),
mox.IgnoreArg(),
@@ -315,10 +315,10 @@ class VlanNetworkTestCase(test.TestCase):
self.network.validate_networks(None, requested_networks)
def test_validate_networks_invalid_fixed_ip(self):
- self.mox.StubOutWithMock(db, 'project_get_requested_networks')
+ self.mox.StubOutWithMock(db, 'project_get_networks_by_ids')
requested_networks = [(1, "192.168.0.100.1")]
- db.project_get_requested_networks(mox.IgnoreArg(),
+ db.project_get_networks_by_ids(mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn(networks)
self.mox.ReplayAll()
@@ -327,10 +327,10 @@ class VlanNetworkTestCase(test.TestCase):
None, requested_networks)
def test_validate_networks_empty_fixed_ip(self):
- self.mox.StubOutWithMock(db, 'project_get_requested_networks')
+ self.mox.StubOutWithMock(db, 'project_get_networks_by_ids')
requested_networks = [(1, "")]
- db.project_get_requested_networks(mox.IgnoreArg(),
+ db.project_get_networks_by_ids(mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn(networks)
self.mox.ReplayAll()
@@ -339,10 +339,10 @@ class VlanNetworkTestCase(test.TestCase):
None, requested_networks)
def test_validate_networks_none_fixed_ip(self):
- self.mox.StubOutWithMock(db, 'project_get_requested_networks')
+ self.mox.StubOutWithMock(db, 'project_get_networks_by_ids')
requested_networks = [(1, None)]
- db.project_get_requested_networks(mox.IgnoreArg(),
+ db.project_get_networks_by_ids(mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn(networks)
self.mox.ReplayAll()