Skip to content

Commit 62faf55

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Remove fake_libvirt_utils users in functional testing."
2 parents 0c39090 + b96d122 commit 62faf55

File tree

6 files changed

+137
-24
lines changed

6 files changed

+137
-24
lines changed

nova/tests/functional/libvirt/base.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
from nova.tests.functional import fixtures as func_fixtures
2424
from nova.tests.functional import test_servers as base
2525
from nova.tests.unit.virt.libvirt import fake_imagebackend
26-
from nova.tests.unit.virt.libvirt import fake_libvirt_utils
2726
from nova.tests.unit.virt.libvirt import fakelibvirt
2827

2928

@@ -34,9 +33,6 @@ def setUp(self):
3433

3534
# Replace libvirt with fakelibvirt
3635
self.useFixture(fake_imagebackend.ImageBackendFixture())
37-
self.useFixture(fixtures.MonkeyPatch(
38-
'nova.virt.libvirt.driver.libvirt_utils',
39-
fake_libvirt_utils))
4036
self.useFixture(fixtures.MonkeyPatch(
4137
'nova.virt.libvirt.driver.libvirt',
4238
fakelibvirt))

nova/tests/functional/libvirt/test_numa_servers.py

Lines changed: 79 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# License for the specific language governing permissions and limitations
1414
# under the License.
1515

16+
import io
1617
import six
1718

1819
import mock
@@ -56,6 +57,14 @@ def _setup_scheduler_service(self):
5657
return self.start_service('scheduler')
5758

5859

60+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
61+
new=mock.Mock(return_value={'total': 128,
62+
'used': 44,
63+
'free': 84}))
64+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
65+
new=mock.Mock(return_value=True))
66+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
67+
new=mock.Mock(side_effect=[io.BytesIO(b''), io.BytesIO(b'')]))
5968
class NUMAServersTest(NUMAServersTestBase):
6069

6170
def _run_build_test(self, flavor_id, end_status='ACTIVE'):
@@ -179,7 +188,16 @@ def _test_create_server_with_networks(self, flavor_id, networks):
179188

180189
return self._wait_for_state_change(found_server, 'BUILD')
181190

182-
def test_create_server_with_single_physnet(self):
191+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
192+
return_value={'total': 128,
193+
'used': 44,
194+
'free': 84})
195+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
196+
return_value=True)
197+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
198+
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
199+
def test_create_server_with_single_physnet(
200+
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
183201
extra_spec = {'hw:numa_nodes': '1'}
184202
flavor_id = self._create_flavor(extra_spec=extra_spec)
185203
networks = [
@@ -192,7 +210,16 @@ def test_create_server_with_single_physnet(self):
192210
self.assertTrue(self.mock_filter.called)
193211
self.assertEqual('ACTIVE', status)
194212

195-
def test_create_server_with_multiple_physnets(self):
213+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
214+
return_value={'total': 128,
215+
'used': 44,
216+
'free': 84})
217+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
218+
return_value=True)
219+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
220+
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
221+
def test_create_server_with_multiple_physnets(
222+
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
196223
"""Test multiple networks split across host NUMA nodes.
197224
198225
This should pass because the networks requested are split across
@@ -212,7 +239,16 @@ def test_create_server_with_multiple_physnets(self):
212239
self.assertTrue(self.mock_filter.called)
213240
self.assertEqual('ACTIVE', status)
214241

215-
def test_create_server_with_multiple_physnets_fail(self):
242+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
243+
return_value={'total': 128,
244+
'used': 44,
245+
'free': 84})
246+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
247+
return_value=True)
248+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
249+
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
250+
def test_create_server_with_multiple_physnets_fail(
251+
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
216252
"""Test multiple networks split across host NUMA nodes.
217253
218254
This should fail because we've requested a single-node instance but the
@@ -231,7 +267,16 @@ def test_create_server_with_multiple_physnets_fail(self):
231267
self.assertTrue(self.mock_filter.called)
232268
self.assertEqual('ERROR', status)
233269

234-
def test_create_server_with_physnet_and_tunneled_net(self):
270+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
271+
return_value={'total': 128,
272+
'used': 44,
273+
'free': 84})
274+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
275+
return_value=True)
276+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
277+
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
278+
def test_create_server_with_physnet_and_tunneled_net(
279+
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
235280
"""Test combination of physnet and tunneled network.
236281
237282
This should pass because we've requested a single-node instance and the
@@ -250,7 +295,16 @@ def test_create_server_with_physnet_and_tunneled_net(self):
250295
self.assertTrue(self.mock_filter.called)
251296
self.assertEqual('ACTIVE', status)
252297

253-
def test_rebuild_server_with_network_affinity(self):
298+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
299+
return_value={'total': 128,
300+
'used': 44,
301+
'free': 84})
302+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
303+
return_value=True)
304+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
305+
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
306+
def test_rebuild_server_with_network_affinity(
307+
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
254308
extra_spec = {'hw:numa_nodes': '1'}
255309
flavor_id = self._create_flavor(extra_spec=extra_spec)
256310
networks = [
@@ -299,7 +353,16 @@ def test_rebuild_server_with_network_affinity(self):
299353
self.assertEqual(500, ex.response.status_code)
300354
self.assertIn('NoValidHost', six.text_type(ex))
301355

302-
def test_cold_migrate_with_physnet(self):
356+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
357+
return_value={'total': 128,
358+
'used': 44,
359+
'free': 84})
360+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
361+
return_value=True)
362+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
363+
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
364+
def test_cold_migrate_with_physnet(
365+
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
303366
host_info = fakelibvirt.NUMAHostInfo(cpu_nodes=2, cpu_sockets=1,
304367
cpu_cores=2, cpu_threads=2,
305368
kB_mem=15740000)
@@ -363,7 +426,16 @@ def test_cold_migrate_with_physnet(self):
363426
self.assertIsNotNone(network_metadata)
364427
self.assertEqual(set(['foo']), network_metadata.physnets)
365428

366-
def test_cold_migrate_with_physnet_fails(self):
429+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
430+
return_value={'total': 128,
431+
'used': 44,
432+
'free': 84})
433+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
434+
return_value=True)
435+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
436+
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
437+
def test_cold_migrate_with_physnet_fails(
438+
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
367439
host_infos = [
368440
# host 1 has room on both nodes
369441
fakelibvirt.NUMAHostInfo(cpu_nodes=2, cpu_sockets=1,

nova/tests/functional/libvirt/test_pci_sriov_servers.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
# License for the specific language governing permissions and limitations
1414
# under the License.
1515

16+
import io
17+
18+
import fixtures
1619
import mock
1720
from oslo_config import cfg
1821
from oslo_log import log as logging
@@ -43,11 +46,21 @@ def setUp(self):
4346
host_manager = self.scheduler.manager.driver.host_manager
4447
pci_filter_class = host_manager.filter_cls_map['PciPassthroughFilter']
4548
host_pass_mock = mock.Mock(wraps=pci_filter_class().host_passes)
46-
_p = mock.patch('nova.scheduler.filters.pci_passthrough_filter'
47-
'.PciPassthroughFilter.host_passes',
48-
side_effect=host_pass_mock)
49-
self.mock_filter = _p.start()
50-
self.addCleanup(_p.stop)
49+
self.mock_filter = self.useFixture(fixtures.MockPatch(
50+
'nova.scheduler.filters.pci_passthrough_filter'
51+
'.PciPassthroughFilter.host_passes',
52+
side_effect=host_pass_mock)).mock
53+
self.useFixture(fixtures.MockPatch(
54+
'nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
55+
return_value={'total': 128,
56+
'used': 44,
57+
'free': 84}))
58+
self.useFixture(fixtures.MockPatch(
59+
'nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
60+
return_value=True))
61+
self.useFixture(fixtures.MockPatch(
62+
'nova.virt.libvirt.driver.libvirt_utils.file_open',
63+
side_effect=[io.BytesIO(b''), io.BytesIO(b'')]))
5164

5265
def _setup_scheduler_service(self):
5366
# Enable the 'NUMATopologyFilter', 'PciPassthroughFilter'

nova/tests/functional/libvirt/test_reshape.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
1111
# License for the specific language governing permissions and limitations
1212
# under the License.
13-
import time
1413

14+
import io
1515
import mock
16+
import time
17+
1618
from oslo_config import cfg
1719
from oslo_log import log as logging
1820

@@ -40,7 +42,17 @@ def _wait_for_state_change(self, server, expected_status):
4042
self.assertEqual(expected_status, server['status'])
4143
return server
4244

43-
def test_create_servers_with_vgpu(self):
45+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
46+
return_value={'total': 128,
47+
'used': 44,
48+
'free': 84})
49+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
50+
return_value=True)
51+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
52+
side_effect=[io.BytesIO(b''), io.BytesIO(b''),
53+
io.BytesIO(b'')])
54+
def test_create_servers_with_vgpu(
55+
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
4456
"""Verify that vgpu reshape works with libvirt driver
4557
4658
1) create two servers with an old tree where the VGPU resource is on

nova/tests/functional/libvirt/test_rt_servers.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
# License for the specific language governing permissions and limitations
1414
# under the License.
1515

16+
import io
17+
import mock
18+
1619
from nova.tests.functional.api import client
1720
from nova.tests.functional.libvirt import base
1821
from nova.tests.unit.virt.libvirt import fakelibvirt
@@ -43,7 +46,16 @@ def test_no_realtime_mask(self):
4346
client.OpenStackApiException,
4447
self.api.post_server, {'server': server})
4548

46-
def test_success(self):
49+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
50+
return_value={'total': 128,
51+
'used': 44,
52+
'free': 84})
53+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
54+
return_value=True)
55+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
56+
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
57+
def test_success(
58+
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
4759
host_info = fakelibvirt.NUMAHostInfo(cpu_nodes=2, cpu_sockets=1,
4860
cpu_cores=2, cpu_threads=2,
4961
kB_mem=15740000)

nova/tests/functional/regressions/test_bug_1595962.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import time
1616

1717
import fixtures
18+
import io
1819
import mock
1920

2021
import nova
@@ -23,7 +24,6 @@
2324
from nova.tests.functional import fixtures as func_fixtures
2425
from nova.tests.unit import cast_as_call
2526
from nova.tests.unit import policy_fixture
26-
from nova.tests.unit.virt.libvirt import fake_libvirt_utils
2727
from nova.tests.unit.virt.libvirt import fakelibvirt
2828
from nova.virt.libvirt import guest as libvirt_guest
2929

@@ -39,9 +39,6 @@ def setUp(self):
3939
api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
4040
api_version='v2.1'))
4141
# Replace libvirt with fakelibvirt
42-
self.useFixture(fixtures.MonkeyPatch(
43-
'nova.virt.libvirt.driver.libvirt_utils',
44-
fake_libvirt_utils))
4542
self.useFixture(fixtures.MonkeyPatch(
4643
'nova.virt.libvirt.driver.libvirt',
4744
fakelibvirt))
@@ -85,7 +82,18 @@ def setUp(self):
8582
@mock.patch('nova.conductor.tasks.live_migrate.LiveMigrationTask.'
8683
'_check_destination_is_not_source', return_value=False)
8784
@mock.patch('nova.virt.libvirt.LibvirtDriver._create_image')
88-
def test_serial_console_live_migrate(self, mock_create_image,
85+
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
86+
return_value={'total': 128,
87+
'used': 44,
88+
'free': 84})
89+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
90+
return_value=True)
91+
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
92+
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
93+
def test_serial_console_live_migrate(self, mock_file_open,
94+
mock_valid_hostname,
95+
mock_get_fs_info,
96+
mock_create_image,
8997
mock_conductor_source_check,
9098
mock_path_get_size,
9199
mock_get_disk_size,

0 commit comments

Comments
 (0)