Merge lp:~jason-koelker/nova/lp852079 into lp:~hudson-openstack/nova/trunk

Proposed by Jason Kölker
Status: Merged
Approved by: Brian Waldon
Approved revision: 1585
Merged at revision: 1589
Proposed branch: lp:~jason-koelker/nova/lp852079
Merge into: lp:~hudson-openstack/nova/trunk
Diff against target: 117 lines (+21/-14)
2 files modified
nova/compute/manager.py (+5/-5)
nova/tests/test_compute.py (+16/-9)
To merge this branch: bzr merge lp:~jason-koelker/nova/lp852079
Reviewer Review Type Date Requested Status
Brian Waldon (community) Approve
Vish Ishaya (community) Approve
Review via email: mp+75797@code.launchpad.net

Commit message

Remove vestigial db call for fixed_ips.

Description of the change

Remove vestigial db call for fixed_ips.

To post a comment you must log in.
Revision history for this message
Devin Carlen (devcamcar) wrote :

Just to make sure I'm reading this right, all the needed info returned by instance_get_fixed_addresses is now available in nwinfo, yes?

Revision history for this message
Jason Kölker (jason-koelker) wrote :

In this instance, yes. Since the only thing pre_live_migrate did is check that fixed_ips existed.

Revision history for this message
Vish Ishaya (vishvananda) wrote :

lgtm.

review: Approve
Revision history for this message
Brian Waldon (bcwaldon) wrote :

Great cleanup.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'nova/compute/manager.py'
2--- nova/compute/manager.py 2011-09-12 19:39:13 +0000
3+++ nova/compute/manager.py 2011-09-16 18:57:24 +0000
4@@ -1388,11 +1388,6 @@
5 instance_ref = self.db.instance_get(context, instance_id)
6 hostname = instance_ref['hostname']
7
8- # Getting fixed ips
9- fixed_ips = self.db.instance_get_fixed_addresses(context, instance_id)
10- if not fixed_ips:
11- raise exception.FixedIpNotFoundForInstance(instance_id=instance_id)
12-
13 # If any volume is mounted, prepare here.
14 if not instance_ref['volumes']:
15 LOG.info(_("%s has no volume."), hostname)
16@@ -1408,6 +1403,11 @@
17 # Retry operation is necessary because continuously request comes,
18 # concorrent request occurs to iptables, then it complains.
19 network_info = self._get_instance_nw_info(context, instance_ref)
20+
21+ fixed_ips = [nw_info[1]['ips'] for nw_info in network_info]
22+ if not fixed_ips:
23+ raise exception.FixedIpNotFoundForInstance(instance_id=instance_id)
24+
25 max_retry = FLAGS.live_migration_retry_count
26 for cnt in range(max_retry):
27 try:
28
29=== modified file 'nova/tests/test_compute.py'
30--- nova/tests/test_compute.py 2011-09-09 18:05:33 +0000
31+++ nova/tests/test_compute.py 2011-09-16 18:57:24 +0000
32@@ -647,7 +647,6 @@
33
34 dbmock = self.mox.CreateMock(db)
35 dbmock.instance_get(c, i_id).AndReturn(instance_ref)
36- dbmock.instance_get_fixed_addresses(c, i_id).AndReturn(None)
37
38 self.compute.db = dbmock
39 self.mox.ReplayAll()
40@@ -657,6 +656,9 @@
41
42 def test_pre_live_migration_instance_has_volume(self):
43 """Confirm setup_compute_volume is called when volume is mounted."""
44+ def fake_nw_info(*args, **kwargs):
45+ return [(0, {'ips':['dummy']})]
46+
47 i_ref = self._get_dummy_instance()
48 c = context.get_admin_context()
49
50@@ -666,13 +668,13 @@
51 drivermock = self.mox.CreateMock(self.compute_driver)
52
53 dbmock.instance_get(c, i_ref['id']).AndReturn(i_ref)
54- dbmock.instance_get_fixed_addresses(c, i_ref['id']).AndReturn('dummy')
55 for i in range(len(i_ref['volumes'])):
56 vid = i_ref['volumes'][i]['id']
57 volmock.setup_compute_volume(c, vid).InAnyOrder('g1')
58- drivermock.plug_vifs(i_ref, [])
59- drivermock.ensure_filtering_rules_for_instance(i_ref, [])
60+ drivermock.plug_vifs(i_ref, fake_nw_info())
61+ drivermock.ensure_filtering_rules_for_instance(i_ref, fake_nw_info())
62
63+ self.stubs.Set(self.compute, '_get_instance_nw_info', fake_nw_info)
64 self.compute.db = dbmock
65 self.compute.volume_manager = volmock
66 self.compute.driver = drivermock
67@@ -683,6 +685,9 @@
68
69 def test_pre_live_migration_instance_has_no_volume(self):
70 """Confirm log meg when instance doesn't mount any volumes."""
71+ def fake_nw_info(*args, **kwargs):
72+ return [(0, {'ips':['dummy']})]
73+
74 i_ref = self._get_dummy_instance()
75 i_ref['volumes'] = []
76 c = context.get_admin_context()
77@@ -692,12 +697,12 @@
78 drivermock = self.mox.CreateMock(self.compute_driver)
79
80 dbmock.instance_get(c, i_ref['id']).AndReturn(i_ref)
81- dbmock.instance_get_fixed_addresses(c, i_ref['id']).AndReturn('dummy')
82 self.mox.StubOutWithMock(compute_manager.LOG, 'info')
83 compute_manager.LOG.info(_("%s has no volume."), i_ref['hostname'])
84- drivermock.plug_vifs(i_ref, [])
85- drivermock.ensure_filtering_rules_for_instance(i_ref, [])
86+ drivermock.plug_vifs(i_ref, fake_nw_info())
87+ drivermock.ensure_filtering_rules_for_instance(i_ref, fake_nw_info())
88
89+ self.stubs.Set(self.compute, '_get_instance_nw_info', fake_nw_info)
90 self.compute.db = dbmock
91 self.compute.driver = drivermock
92
93@@ -711,6 +716,8 @@
94 It retries and raise exception when timeout exceeded.
95
96 """
97+ def fake_nw_info(*args, **kwargs):
98+ return [(0, {'ips':['dummy']})]
99
100 i_ref = self._get_dummy_instance()
101 c = context.get_admin_context()
102@@ -722,13 +729,13 @@
103 drivermock = self.mox.CreateMock(self.compute_driver)
104
105 dbmock.instance_get(c, i_ref['id']).AndReturn(i_ref)
106- dbmock.instance_get_fixed_addresses(c, i_ref['id']).AndReturn('dummy')
107 for i in range(len(i_ref['volumes'])):
108 volmock.setup_compute_volume(c, i_ref['volumes'][i]['id'])
109 for i in range(FLAGS.live_migration_retry_count):
110- drivermock.plug_vifs(i_ref, []).\
111+ drivermock.plug_vifs(i_ref, fake_nw_info()).\
112 AndRaise(exception.ProcessExecutionError())
113
114+ self.stubs.Set(self.compute, '_get_instance_nw_info', fake_nw_info)
115 self.compute.db = dbmock
116 self.compute.network_manager = netmock
117 self.compute.volume_manager = volmock