Merge "Remove fake_libvirt_utils users in functional testing."
This commit is contained in:
commit
62faf552dd
@ -23,7 +23,6 @@ from nova.tests import fixtures as nova_fixtures
|
||||
from nova.tests.functional import fixtures as func_fixtures
|
||||
from nova.tests.functional import test_servers as base
|
||||
from nova.tests.unit.virt.libvirt import fake_imagebackend
|
||||
from nova.tests.unit.virt.libvirt import fake_libvirt_utils
|
||||
from nova.tests.unit.virt.libvirt import fakelibvirt
|
||||
|
||||
|
||||
@ -34,9 +33,6 @@ class ServersTestBase(base.ServersTestBase):
|
||||
|
||||
# Replace libvirt with fakelibvirt
|
||||
self.useFixture(fake_imagebackend.ImageBackendFixture())
|
||||
self.useFixture(fixtures.MonkeyPatch(
|
||||
'nova.virt.libvirt.driver.libvirt_utils',
|
||||
fake_libvirt_utils))
|
||||
self.useFixture(fixtures.MonkeyPatch(
|
||||
'nova.virt.libvirt.driver.libvirt',
|
||||
fakelibvirt))
|
||||
|
@ -13,6 +13,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import io
|
||||
import six
|
||||
|
||||
import mock
|
||||
@ -56,6 +57,14 @@ class NUMAServersTestBase(base.ServersTestBase):
|
||||
return self.start_service('scheduler')
|
||||
|
||||
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
new=mock.Mock(return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84}))
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
new=mock.Mock(return_value=True))
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
new=mock.Mock(side_effect=[io.BytesIO(b''), io.BytesIO(b'')]))
|
||||
class NUMAServersTest(NUMAServersTestBase):
|
||||
|
||||
def _run_build_test(self, flavor_id, end_status='ACTIVE'):
|
||||
@ -179,7 +188,16 @@ class NUMAServersWithNetworksTest(NUMAServersTestBase):
|
||||
|
||||
return self._wait_for_state_change(found_server, 'BUILD')
|
||||
|
||||
def test_create_server_with_single_physnet(self):
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84})
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True)
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
|
||||
def test_create_server_with_single_physnet(
|
||||
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
|
||||
extra_spec = {'hw:numa_nodes': '1'}
|
||||
flavor_id = self._create_flavor(extra_spec=extra_spec)
|
||||
networks = [
|
||||
@ -192,7 +210,16 @@ class NUMAServersWithNetworksTest(NUMAServersTestBase):
|
||||
self.assertTrue(self.mock_filter.called)
|
||||
self.assertEqual('ACTIVE', status)
|
||||
|
||||
def test_create_server_with_multiple_physnets(self):
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84})
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True)
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
|
||||
def test_create_server_with_multiple_physnets(
|
||||
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
|
||||
"""Test multiple networks split across host NUMA nodes.
|
||||
|
||||
This should pass because the networks requested are split across
|
||||
@ -212,7 +239,16 @@ class NUMAServersWithNetworksTest(NUMAServersTestBase):
|
||||
self.assertTrue(self.mock_filter.called)
|
||||
self.assertEqual('ACTIVE', status)
|
||||
|
||||
def test_create_server_with_multiple_physnets_fail(self):
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84})
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True)
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
|
||||
def test_create_server_with_multiple_physnets_fail(
|
||||
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
|
||||
"""Test multiple networks split across host NUMA nodes.
|
||||
|
||||
This should fail because we've requested a single-node instance but the
|
||||
@ -231,7 +267,16 @@ class NUMAServersWithNetworksTest(NUMAServersTestBase):
|
||||
self.assertTrue(self.mock_filter.called)
|
||||
self.assertEqual('ERROR', status)
|
||||
|
||||
def test_create_server_with_physnet_and_tunneled_net(self):
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84})
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True)
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
|
||||
def test_create_server_with_physnet_and_tunneled_net(
|
||||
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
|
||||
"""Test combination of physnet and tunneled network.
|
||||
|
||||
This should pass because we've requested a single-node instance and the
|
||||
@ -250,7 +295,16 @@ class NUMAServersWithNetworksTest(NUMAServersTestBase):
|
||||
self.assertTrue(self.mock_filter.called)
|
||||
self.assertEqual('ACTIVE', status)
|
||||
|
||||
def test_rebuild_server_with_network_affinity(self):
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84})
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True)
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
|
||||
def test_rebuild_server_with_network_affinity(
|
||||
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
|
||||
extra_spec = {'hw:numa_nodes': '1'}
|
||||
flavor_id = self._create_flavor(extra_spec=extra_spec)
|
||||
networks = [
|
||||
@ -299,7 +353,16 @@ class NUMAServersWithNetworksTest(NUMAServersTestBase):
|
||||
self.assertEqual(500, ex.response.status_code)
|
||||
self.assertIn('NoValidHost', six.text_type(ex))
|
||||
|
||||
def test_cold_migrate_with_physnet(self):
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84})
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True)
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
|
||||
def test_cold_migrate_with_physnet(
|
||||
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
|
||||
host_info = fakelibvirt.NUMAHostInfo(cpu_nodes=2, cpu_sockets=1,
|
||||
cpu_cores=2, cpu_threads=2,
|
||||
kB_mem=15740000)
|
||||
@ -363,7 +426,16 @@ class NUMAServersWithNetworksTest(NUMAServersTestBase):
|
||||
self.assertIsNotNone(network_metadata)
|
||||
self.assertEqual(set(['foo']), network_metadata.physnets)
|
||||
|
||||
def test_cold_migrate_with_physnet_fails(self):
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84})
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True)
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
|
||||
def test_cold_migrate_with_physnet_fails(
|
||||
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
|
||||
host_infos = [
|
||||
# host 1 has room on both nodes
|
||||
fakelibvirt.NUMAHostInfo(cpu_nodes=2, cpu_sockets=1,
|
||||
|
@ -13,6 +13,9 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import io
|
||||
|
||||
import fixtures
|
||||
import mock
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
@ -43,11 +46,21 @@ class _PCIServersTestBase(base.ServersTestBase):
|
||||
host_manager = self.scheduler.manager.driver.host_manager
|
||||
pci_filter_class = host_manager.filter_cls_map['PciPassthroughFilter']
|
||||
host_pass_mock = mock.Mock(wraps=pci_filter_class().host_passes)
|
||||
_p = mock.patch('nova.scheduler.filters.pci_passthrough_filter'
|
||||
'.PciPassthroughFilter.host_passes',
|
||||
side_effect=host_pass_mock)
|
||||
self.mock_filter = _p.start()
|
||||
self.addCleanup(_p.stop)
|
||||
self.mock_filter = self.useFixture(fixtures.MockPatch(
|
||||
'nova.scheduler.filters.pci_passthrough_filter'
|
||||
'.PciPassthroughFilter.host_passes',
|
||||
side_effect=host_pass_mock)).mock
|
||||
self.useFixture(fixtures.MockPatch(
|
||||
'nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84}))
|
||||
self.useFixture(fixtures.MockPatch(
|
||||
'nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True))
|
||||
self.useFixture(fixtures.MockPatch(
|
||||
'nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b'')]))
|
||||
|
||||
def _setup_scheduler_service(self):
|
||||
# Enable the 'NUMATopologyFilter', 'PciPassthroughFilter'
|
||||
|
@ -10,9 +10,11 @@
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import io
|
||||
import mock
|
||||
import time
|
||||
|
||||
import mock
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
|
||||
@ -40,7 +42,17 @@ class VGPUReshapeTests(base.ServersTestBase):
|
||||
self.assertEqual(expected_status, server['status'])
|
||||
return server
|
||||
|
||||
def test_create_servers_with_vgpu(self):
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84})
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True)
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b''),
|
||||
io.BytesIO(b'')])
|
||||
def test_create_servers_with_vgpu(
|
||||
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
|
||||
"""Verify that vgpu reshape works with libvirt driver
|
||||
|
||||
1) create two servers with an old tree where the VGPU resource is on
|
||||
|
@ -13,6 +13,9 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import io
|
||||
import mock
|
||||
|
||||
from nova.tests.functional.api import client
|
||||
from nova.tests.functional.libvirt import base
|
||||
from nova.tests.unit.virt.libvirt import fakelibvirt
|
||||
@ -43,7 +46,16 @@ class RealTimeServersTest(base.ServersTestBase):
|
||||
client.OpenStackApiException,
|
||||
self.api.post_server, {'server': server})
|
||||
|
||||
def test_success(self):
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84})
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True)
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
|
||||
def test_success(
|
||||
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
|
||||
host_info = fakelibvirt.NUMAHostInfo(cpu_nodes=2, cpu_sockets=1,
|
||||
cpu_cores=2, cpu_threads=2,
|
||||
kB_mem=15740000)
|
||||
|
@ -15,6 +15,7 @@
|
||||
import time
|
||||
|
||||
import fixtures
|
||||
import io
|
||||
import mock
|
||||
|
||||
import nova
|
||||
@ -23,7 +24,6 @@ from nova.tests import fixtures as nova_fixtures
|
||||
from nova.tests.functional import fixtures as func_fixtures
|
||||
from nova.tests.unit import cast_as_call
|
||||
from nova.tests.unit import policy_fixture
|
||||
from nova.tests.unit.virt.libvirt import fake_libvirt_utils
|
||||
from nova.tests.unit.virt.libvirt import fakelibvirt
|
||||
from nova.virt.libvirt import guest as libvirt_guest
|
||||
|
||||
@ -39,9 +39,6 @@ class TestSerialConsoleLiveMigrate(test.TestCase):
|
||||
api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
|
||||
api_version='v2.1'))
|
||||
# Replace libvirt with fakelibvirt
|
||||
self.useFixture(fixtures.MonkeyPatch(
|
||||
'nova.virt.libvirt.driver.libvirt_utils',
|
||||
fake_libvirt_utils))
|
||||
self.useFixture(fixtures.MonkeyPatch(
|
||||
'nova.virt.libvirt.driver.libvirt',
|
||||
fakelibvirt))
|
||||
@ -85,7 +82,18 @@ class TestSerialConsoleLiveMigrate(test.TestCase):
|
||||
@mock.patch('nova.conductor.tasks.live_migrate.LiveMigrationTask.'
|
||||
'_check_destination_is_not_source', return_value=False)
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._create_image')
|
||||
def test_serial_console_live_migrate(self, mock_create_image,
|
||||
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
|
||||
return_value={'total': 128,
|
||||
'used': 44,
|
||||
'free': 84})
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
|
||||
return_value=True)
|
||||
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
|
||||
side_effect=[io.BytesIO(b''), io.BytesIO(b'')])
|
||||
def test_serial_console_live_migrate(self, mock_file_open,
|
||||
mock_valid_hostname,
|
||||
mock_get_fs_info,
|
||||
mock_create_image,
|
||||
mock_conductor_source_check,
|
||||
mock_path_get_size,
|
||||
mock_get_disk_size,
|
||||
|
Loading…
x
Reference in New Issue
Block a user