Factor out get_server_xml()
Getting an instance's libvirt XML is a common operation in all tests. Create a helper for it. Change-Id: Ib1897cf683c205b1e283a69f6687c7d833fa53ff
This commit is contained in:
parent
2738ae0bb0
commit
2b3cc2d891
@ -13,13 +13,15 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from tempest.api.compute import base
|
from tempest.api.compute import base
|
||||||
from tempest.common import waiters
|
from tempest.common import waiters
|
||||||
from tempest import config
|
from tempest import config
|
||||||
|
|
||||||
from whitebox_tempest_plugin import exceptions
|
from whitebox_tempest_plugin import exceptions
|
||||||
|
from whitebox_tempest_plugin.services import clients
|
||||||
|
|
||||||
CONF = config.CONF
|
CONF = config.CONF
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
@ -73,3 +75,12 @@ class BaseWhiteboxComputeTest(base.BaseV2ComputeAdminTest):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
raise exceptions.MissingHypervisorException(server=server_id,
|
raise exceptions.MissingHypervisorException(server=server_id,
|
||||||
host=host)
|
host=host)
|
||||||
|
|
||||||
|
def get_server_xml(self, server_id):
|
||||||
|
hv_ip = self.get_hypervisor_ip(server_id)
|
||||||
|
server_instance_name = self.servers_client.show_server(
|
||||||
|
server_id)['server']['OS-EXT-SRV-ATTR:instance_name']
|
||||||
|
|
||||||
|
virshxml = clients.VirshXMLClient(hv_ip)
|
||||||
|
xml = virshxml.dumpxml(server_instance_name)
|
||||||
|
return ET.fromstring(xml)
|
||||||
|
@ -12,13 +12,11 @@
|
|||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
import xml.etree.ElementTree as ET
|
|
||||||
|
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from tempest import config
|
from tempest import config
|
||||||
|
|
||||||
from whitebox_tempest_plugin.api.compute import base
|
from whitebox_tempest_plugin.api.compute import base
|
||||||
from whitebox_tempest_plugin.services import clients
|
|
||||||
|
|
||||||
|
|
||||||
CONF = config.CONF
|
CONF = config.CONF
|
||||||
@ -35,11 +33,7 @@ class CpuModelExtraFlagsTest(base.BaseWhiteboxComputeTest):
|
|||||||
# virt_type = kvm
|
# virt_type = kvm
|
||||||
def test_cpu_model_extra_flags(self):
|
def test_cpu_model_extra_flags(self):
|
||||||
server = self.create_test_server(wait_until="ACTIVE")
|
server = self.create_test_server(wait_until="ACTIVE")
|
||||||
server_id = server['id']
|
root = self.get_server_xml(server['id'])
|
||||||
compute_node_address = self.get_hypervisor_ip(server_id)
|
|
||||||
virshxml_client = clients.VirshXMLClient(compute_node_address)
|
|
||||||
dump = virshxml_client.dumpxml(server_id)
|
|
||||||
root = ET.fromstring(dump)
|
|
||||||
|
|
||||||
# Assert that the correct CPU model as well as the proper flags
|
# Assert that the correct CPU model as well as the proper flags
|
||||||
# are correctly defined in the instance XML
|
# are correctly defined in the instance XML
|
||||||
|
@ -42,11 +42,7 @@ class BasePinningTest(base.BaseWhiteboxComputeTest):
|
|||||||
vcpus = 2
|
vcpus = 2
|
||||||
|
|
||||||
def get_server_cpu_pinning(self, server):
|
def get_server_cpu_pinning(self, server):
|
||||||
compute_node_address = self.get_hypervisor_ip(server['id'])
|
root = self.get_server_xml(server['id'])
|
||||||
|
|
||||||
virshxml = clients.VirshXMLClient(compute_node_address)
|
|
||||||
xml = virshxml.dumpxml(server['id'])
|
|
||||||
root = ET.fromstring(xml)
|
|
||||||
|
|
||||||
vcpupin_nodes = root.findall('./cputune/vcpupin')
|
vcpupin_nodes = root.findall('./cputune/vcpupin')
|
||||||
cpu_pinnings = {int(x.get('vcpu')): int(x.get('cpuset'))
|
cpu_pinnings = {int(x.get('vcpu')): int(x.get('cpuset'))
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
import testtools
|
import testtools
|
||||||
import xml.etree.ElementTree as ET
|
|
||||||
|
|
||||||
from tempest.common import utils
|
from tempest.common import utils
|
||||||
from tempest.common import waiters
|
from tempest.common import waiters
|
||||||
@ -24,7 +23,6 @@ from tempest import config
|
|||||||
from tempest.lib import decorators
|
from tempest.lib import decorators
|
||||||
|
|
||||||
from whitebox_tempest_plugin.api.compute import base
|
from whitebox_tempest_plugin.api.compute import base
|
||||||
from whitebox_tempest_plugin.services import clients
|
|
||||||
|
|
||||||
CONF = config.CONF
|
CONF = config.CONF
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
@ -82,16 +80,6 @@ class LiveMigrationTest(base.BaseWhiteboxComputeTest):
|
|||||||
self.assertEqual(target_host, self.get_host_for_server(server_id),
|
self.assertEqual(target_host, self.get_host_for_server(server_id),
|
||||||
msg)
|
msg)
|
||||||
|
|
||||||
def _get_server_libvirt_domain(self, server_id):
|
|
||||||
compute_node_address = self.get_hypervisor_ip(server_id)
|
|
||||||
|
|
||||||
LOG.debug("Connecting to hypervisor %s for server %s",
|
|
||||||
compute_node_address, server_id)
|
|
||||||
|
|
||||||
virshxml = clients.VirshXMLClient(compute_node_address)
|
|
||||||
xml = virshxml.dumpxml(server_id)
|
|
||||||
return ET.fromstring(xml)
|
|
||||||
|
|
||||||
@testtools.skipUnless(CONF.compute_feature_enabled.
|
@testtools.skipUnless(CONF.compute_feature_enabled.
|
||||||
volume_backed_live_migration,
|
volume_backed_live_migration,
|
||||||
'Volume-backed live migration not available')
|
'Volume-backed live migration not available')
|
||||||
@ -103,7 +91,7 @@ class LiveMigrationTest(base.BaseWhiteboxComputeTest):
|
|||||||
volume_backed=True)['id']
|
volume_backed=True)['id']
|
||||||
|
|
||||||
def root_disk_cache():
|
def root_disk_cache():
|
||||||
domain = self._get_server_libvirt_domain(server_id)
|
domain = self.get_server_xml(server_id)
|
||||||
return domain.find(
|
return domain.find(
|
||||||
"devices/disk/target[@dev='vda']/../driver").attrib['cache']
|
"devices/disk/target[@dev='vda']/../driver").attrib['cache']
|
||||||
|
|
||||||
|
@ -20,7 +20,6 @@ from oslo_log import log as logging
|
|||||||
from tempest import config
|
from tempest import config
|
||||||
|
|
||||||
from whitebox_tempest_plugin.api.compute import base
|
from whitebox_tempest_plugin.api.compute import base
|
||||||
from whitebox_tempest_plugin.services import clients
|
|
||||||
|
|
||||||
CONF = config.CONF
|
CONF = config.CONF
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
@ -41,17 +40,11 @@ class PointerDeviceTypeFromImages(base.BaseWhiteboxComputeTest):
|
|||||||
self.assertEqual(req_metadata, resp_metadata)
|
self.assertEqual(req_metadata, resp_metadata)
|
||||||
|
|
||||||
def _verify_pointer_device_type_from_images(self, server_id):
|
def _verify_pointer_device_type_from_images(self, server_id):
|
||||||
# Retrieve the server's hypervizor hostname
|
domain = self.get_server_xml(server_id).text
|
||||||
compute_node_address = self.get_hypervisor_ip(server_id)
|
tablet = domain.find('./input[@type="tablet"][@bus="usb"]')
|
||||||
|
mouse = domain.find('./input[@type="mouse"][@bus="ps2"]')
|
||||||
# Retrieve input device from virsh dumpxml
|
self.assertTrue(tablet)
|
||||||
virshxml_client = clients.VirshXMLClient(compute_node_address)
|
self.assertTrue(mouse)
|
||||||
output = virshxml_client.dumpxml(server_id)
|
|
||||||
# Verify that input device contains tablet and mouse
|
|
||||||
tablet = "input type='tablet' bus='usb'"
|
|
||||||
mouse = "input type='mouse' bus='ps2'"
|
|
||||||
self.assertTrue(tablet in output)
|
|
||||||
self.assertTrue(mouse in output)
|
|
||||||
|
|
||||||
def test_pointer_device_type_from_images(self):
|
def test_pointer_device_type_from_images(self):
|
||||||
# TODO(stephenfin): I'm pretty sure this modifying the main image. We
|
# TODO(stephenfin): I'm pretty sure this modifying the main image. We
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
import xml.etree.ElementTree as ET
|
|
||||||
|
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from tempest.common import waiters
|
from tempest.common import waiters
|
||||||
@ -21,7 +20,6 @@ from tempest import config
|
|||||||
from tempest.lib.common.utils import data_utils
|
from tempest.lib.common.utils import data_utils
|
||||||
|
|
||||||
from whitebox_tempest_plugin.api.compute import base
|
from whitebox_tempest_plugin.api.compute import base
|
||||||
from whitebox_tempest_plugin.services import clients
|
|
||||||
|
|
||||||
CONF = config.CONF
|
CONF = config.CONF
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
@ -72,12 +70,7 @@ class RxTxQueueSizeTest(base.BaseWhiteboxComputeTest):
|
|||||||
# [libvirt]
|
# [libvirt]
|
||||||
# rx_queue_size = 1024
|
# rx_queue_size = 1024
|
||||||
def test_rx_queue_size(self):
|
def test_rx_queue_size(self):
|
||||||
compute_node_address = self.get_hypervisor_ip(self.server_id)
|
domain = self.get_server_xml(self.server_id)
|
||||||
LOG.debug("Connecting to hypervisor %s for server %s",
|
|
||||||
compute_node_address, self.server_id)
|
|
||||||
virshxml = clients.VirshXMLClient(compute_node_address)
|
|
||||||
xml = virshxml.dumpxml(self.server_id)
|
|
||||||
domain = ET.fromstring(xml)
|
|
||||||
driver = domain.find(
|
driver = domain.find(
|
||||||
"devices/interface[@type='bridge']/driver[@name='vhost']")
|
"devices/interface[@type='bridge']/driver[@name='vhost']")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user