Re: [libvirt] [test-API][PATCH V2] Add blockjob related test functions and cases
On 2013年11月27日 10:56, Jincheng Miao wrote: * repos/domain/blkstatsflags.py * repos/domain/block_iotune.py * repos/domain/block_peek.py * repos/domain/block_resize.py * repos/domain/domain_blkio.py * cases/basic_blockjob.conf V1-V2: Removed diskpath params for block_resize, this hard code disk device is not convenient for users. --- cases/basic_blockjob.conf | 83 + repos/domain/blkstatsflags.py | 63 repos/domain/block_iotune.py | 118 ++ repos/domain/block_peek.py| 69 ++ repos/domain/block_resize.py | 94 repos/domain/domain_blkio.py | 163 ++ 6 files changed, 590 insertions(+) create mode 100644 cases/basic_blockjob.conf create mode 100644 repos/domain/blkstatsflags.py create mode 100644 repos/domain/block_iotune.py create mode 100644 repos/domain/block_peek.py create mode 100644 repos/domain/block_resize.py create mode 100644 repos/domain/domain_blkio.py diff --git a/cases/basic_blockjob.conf b/cases/basic_blockjob.conf new file mode 100644 index 000..21332dc --- /dev/null +++ b/cases/basic_blockjob.conf @@ -0,0 +1,83 @@ +domain:install_linux_cdrom +guestname +$defaultname +guestos +$defaultos +guestarch +$defaultarch +vcpu +$defaultvcpu +memory +$defaultmem +hddriver +$defaulthd +nicdriver +$defaultnic +macaddr +54:52:00:45:c3:8a + +domain:install_linux_check +guestname +$defaultname +virt_type +$defaulthv +hddriver +$defaulthd +nicdriver +$defaultnic + +domain:block_iotune +guestname +$defaultname +bytes_sec +10 +iops_sec +0 + +domain:block_iotune +guestname +$defaultname +bytes_sec +0 +iops_sec +1000 + +domain:block_peek +guestname +$defaultname + +domain:block_peek +guestname +$defaultname + +domain:block_resize +guestname +$defaultname +disksize +1G + +domain:blkstats +guestname +$defaultname + +domain:blkstatsflags +guestname +$defaultname +flags +0 + +domain:domain_blkinfo +guestname +$defaultname The domain:domain_blkinfo testcase failed to be run. error is: Parameter blockdev is required Guannan -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [test-API][PATCH V2] Add blockjob related test functions and cases
On 2013年11月28日 13:25, Guannan Ren wrote: On 2013年11月27日 10:56, Jincheng Miao wrote: * repos/domain/blkstatsflags.py * repos/domain/block_iotune.py * repos/domain/block_peek.py * repos/domain/block_resize.py * repos/domain/domain_blkio.py * cases/basic_blockjob.conf V1-V2: Removed diskpath params for block_resize, this hard code disk device is not convenient for users. --- cases/basic_blockjob.conf | 83 + repos/domain/blkstatsflags.py | 63 repos/domain/block_iotune.py | 118 ++ repos/domain/block_peek.py| 69 ++ repos/domain/block_resize.py | 94 repos/domain/domain_blkio.py | 163 ++ 6 files changed, 590 insertions(+) create mode 100644 cases/basic_blockjob.conf create mode 100644 repos/domain/blkstatsflags.py create mode 100644 repos/domain/block_iotune.py create mode 100644 repos/domain/block_peek.py create mode 100644 repos/domain/block_resize.py create mode 100644 repos/domain/domain_blkio.py diff --git a/cases/basic_blockjob.conf b/cases/basic_blockjob.conf new file mode 100644 index 000..21332dc --- /dev/null +++ b/cases/basic_blockjob.conf @@ -0,0 +1,83 @@ +domain:install_linux_cdrom +guestname +$defaultname +guestos +$defaultos +guestarch +$defaultarch +vcpu +$defaultvcpu +memory +$defaultmem +hddriver +$defaulthd +nicdriver +$defaultnic +macaddr +54:52:00:45:c3:8a + +domain:install_linux_check +guestname +$defaultname +virt_type +$defaulthv +hddriver +$defaulthd +nicdriver +$defaultnic + +domain:block_iotune +guestname +$defaultname +bytes_sec +10 +iops_sec +0 + +domain:block_iotune +guestname +$defaultname +bytes_sec +0 +iops_sec +1000 + +domain:block_peek +guestname +$defaultname + +domain:block_peek +guestname +$defaultname + +domain:block_resize +guestname +$defaultname +disksize +1G + +domain:blkstats +guestname +$defaultname + +domain:blkstatsflags +guestname +$defaultname +flags +0 + +domain:domain_blkinfo +guestname +$defaultname The domain:domain_blkinfo testcase failed to be run. error is: Parameter blockdev is require I know the reason, the fix to the issue can be found in another patch. One thing you should notice, every patch should not break the running of existed testcases. If this patch is based on other patch. you should send the two patches in a set. Guannan -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [test-API][PATCH V2] Add blockjob related test functions and cases
- Original Message - I know the reason, the fix to the issue can be found in another patch. One thing you should notice, every patch should not break the running of existed testcases. If this patch is based on other patch. you should send the two patches in a set. OK, I will send a V3 patch set includes these two patches. Thanks for your review. Guannan -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [test-API][PATCH V2] Add blockjob related test functions and cases
* repos/domain/blkstatsflags.py * repos/domain/block_iotune.py * repos/domain/block_peek.py * repos/domain/block_resize.py * repos/domain/domain_blkio.py * cases/basic_blockjob.conf V1-V2: Removed diskpath params for block_resize, this hard code disk device is not convenient for users. --- cases/basic_blockjob.conf | 83 + repos/domain/blkstatsflags.py | 63 repos/domain/block_iotune.py | 118 ++ repos/domain/block_peek.py| 69 ++ repos/domain/block_resize.py | 94 repos/domain/domain_blkio.py | 163 ++ 6 files changed, 590 insertions(+) create mode 100644 cases/basic_blockjob.conf create mode 100644 repos/domain/blkstatsflags.py create mode 100644 repos/domain/block_iotune.py create mode 100644 repos/domain/block_peek.py create mode 100644 repos/domain/block_resize.py create mode 100644 repos/domain/domain_blkio.py diff --git a/cases/basic_blockjob.conf b/cases/basic_blockjob.conf new file mode 100644 index 000..21332dc --- /dev/null +++ b/cases/basic_blockjob.conf @@ -0,0 +1,83 @@ +domain:install_linux_cdrom +guestname +$defaultname +guestos +$defaultos +guestarch +$defaultarch +vcpu +$defaultvcpu +memory +$defaultmem +hddriver +$defaulthd +nicdriver +$defaultnic +macaddr +54:52:00:45:c3:8a + +domain:install_linux_check +guestname +$defaultname +virt_type +$defaulthv +hddriver +$defaulthd +nicdriver +$defaultnic + +domain:block_iotune +guestname +$defaultname +bytes_sec +10 +iops_sec +0 + +domain:block_iotune +guestname +$defaultname +bytes_sec +0 +iops_sec +1000 + +domain:block_peek +guestname +$defaultname + +domain:block_peek +guestname +$defaultname + +domain:block_resize +guestname +$defaultname +disksize +1G + +domain:blkstats +guestname +$defaultname + +domain:blkstatsflags +guestname +$defaultname +flags +0 + +domain:domain_blkinfo +guestname +$defaultname + +domain:domain_blkio +guestname +$defaultname +weight +500 + +domain:undefine +guestname +$defaultname + +options cleanup=enable diff --git a/repos/domain/blkstatsflags.py b/repos/domain/blkstatsflags.py new file mode 100644 index 000..4c84a18 --- /dev/null +++ b/repos/domain/blkstatsflags.py @@ -0,0 +1,63 @@ +#!/usr/bin/evn python +# To test domain block device statistics with flags + +import time +import libxml2 + +import libvirt +from libvirt import libvirtError + +from src import sharedmod + +required_params = ('guestname', 'flags') +optional_params = {} + +def check_guest_status(domobj): +Check guest current status +state = domobj.info()[0] +if state == libvirt.VIR_DOMAIN_SHUTOFF or state == libvirt.VIR_DOMAIN_SHUTDOWN: +# add check function +return False +else: +return True + +def check_blkstats(): +Check block device statistic result +pass + +def blkstatsflags(params): +Domain block device statistic +logger = params['logger'] +guestname = params['guestname'] +flags = int(params['flags']) + +conn = sharedmod.libvirtobj['conn'] + +domobj = conn.lookupByName(guestname) + +# Check domain block status +if check_guest_status(domobj): +pass +else: +domobj.create() +time.sleep(90) +try: +xml = domobj.XMLDesc(0) +doc = libxml2.parseDoc(xml) +cont = doc.xpathNewContext() +devs = cont.xpathEval(/domain/devices/disk/target/@dev) + +for dev in devs: +path = dev.content +blkstats = domobj.blockStatsFlags(path, flags) +# check_blkstats() +logger.debug(blkstats) +for entry in blkstats.keys(): +logger.info(%s %s %s %(path, entry, blkstats[entry])) + +except libvirtError, e: +logger.error(API error message: %s, error code is %s + % (e.message, e.get_error_code())) +return 1 + +return 0 diff --git a/repos/domain/block_iotune.py b/repos/domain/block_iotune.py new file mode 100644 index 000..26e4823 --- /dev/null +++ b/repos/domain/block_iotune.py @@ -0,0 +1,118 @@ +#!/usr/bin/evn python +# To test domain block device iotune + +import time +import libxml2 +import libvirt +from libvirt import libvirtError + +from src import sharedmod + +required_params = ('guestname', 'bytes_sec', 'iops_sec') +optional_params = {} + +def check_guest_status(domobj): +Check guest current status +state = domobj.info()[0] +if state == libvirt.VIR_DOMAIN_SHUTOFF or \ +state == libvirt.VIR_DOMAIN_SHUTDOWN: +# add check function +