[Kimchi-devel] [PATCH V9 2/7] add method to test libvirt metadata api are available
Royce Lv
lvroyce at linux.vnet.ibm.com
Mon Apr 28 06:23:15 UTC 2014
Reviewed-by: Royce Lv<lvroyce at linux.vnet.ibm.com>
On 2014年04月25日 22:14, shaohef at linux.vnet.ibm.com wrote:
> From: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
>
> same mechanism with other feature tests.
>
> Signed-off-by: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
> Signed-off-by: Royce Lv <lvroyce at linux.vnet.ibm.com>
> ---
> src/kimchi/featuretests.py | 31 +++++++++++++++++++++++++++++++
> src/kimchi/model/config.py | 2 ++
> 2 files changed, 33 insertions(+)
>
> diff --git a/src/kimchi/featuretests.py b/src/kimchi/featuretests.py
> index b1001ea..5192361 100644
> --- a/src/kimchi/featuretests.py
> +++ b/src/kimchi/featuretests.py
> @@ -28,6 +28,7 @@ import threading
> from lxml.builder import E
>
>
> +from kimchi.rollbackcontext import RollbackContext
> from kimchi.utils import kimchi_log
>
>
> @@ -53,6 +54,16 @@ ISO_STREAM_XML = """
> </devices>
> </domain>"""
>
> +SIMPLE_VM_XML = """
> +<domain type='kvm'>
> + <name>A_SIMPLE_VM</name>
> + <memory unit='KiB'>10240</memory>
> + <os>
> + <type arch='x86_64' machine='pc'>hvm</type>
> + <boot dev='hd'/>
> + </os>
> +</domain>"""
> +
> SCSI_FC_XML = """
> <pool type='scsi'>
> <name>TEST_SCSI_FC_POOL</name>
> @@ -175,3 +186,23 @@ class FeatureTests(object):
> pool is None or pool.undefine()
> conn is None or conn.close()
> return True
> +
> + @staticmethod
> + def has_metadata_support():
> + KIMCHI_META_URL = "https://github.com/kimchi-project/kimchi/"
> + KIMCHI_NAMESPACE = "kimchi"
> + with RollbackContext() as rollback:
> + FeatureTests.disable_screen_error_logging()
> + rollback.prependDefer(FeatureTests.enable_screen_error_logging)
> + conn = libvirt.open('qemu:///system')
> + rollback.prependDefer(conn.close)
> + dom = conn.defineXML(SIMPLE_VM_XML)
> + rollback.prependDefer(dom.undefine)
> + try:
> + dom.setMetadata(libvirt.VIR_DOMAIN_METADATA_ELEMENT,
> + "<metatest/>", KIMCHI_NAMESPACE,
> + KIMCHI_META_URL,
> + flags=libvirt.VIR_DOMAIN_AFFECT_CURRENT)
> + return True
> + except libvirt.libvirtError:
> + return False
> diff --git a/src/kimchi/model/config.py b/src/kimchi/model/config.py
> index c9e3e9d..0ef0855 100644
> --- a/src/kimchi/model/config.py
> +++ b/src/kimchi/model/config.py
> @@ -53,6 +53,7 @@ class CapabilitiesModel(object):
> self.qemu_stream_dns = False
> self.libvirt_stream_protocols = []
> self.fc_host_support = False
> + self.metadata_support = False
>
> # Subscribe function to set host capabilities to be run when cherrypy
> # server is up
> @@ -65,6 +66,7 @@ class CapabilitiesModel(object):
> self.qemu_stream_dns = FeatureTests.qemu_iso_stream_dns()
> self.nfs_target_probe = FeatureTests.libvirt_support_nfs_probe()
> self.fc_host_support = FeatureTests.libvirt_support_fc_host()
> + self.metadata_support = FeatureTests.has_metadata_support()
>
> self.libvirt_stream_protocols = []
> for p in ['http', 'https', 'ftp', 'ftps', 'tftp']:
More information about the Kimchi-devel
mailing list