
On Thu, Feb 19, 2015 at 07:59:38AM -0500, John Ferlan wrote:
Add support for the libvirt_virDomainGetIOThreadsInfo method. This code mostly follows the libvirt_virDomainGetVcpuPinInfo method, but also takes some from the libvirt_virNodeGetCPUMap method with respect to building the cpumap into the returned tuple rather than two separate tuples which vcpu pinning generates
Assuming two domains, one with IOThreads defined (eg, 'iothr-gst') and one without ('noiothr-gst'), execute the following in an 'iothr.py' file:
import libvirt con=libvirt.open("qemu:///system") dom=con.lookupByName('iothr-gst') print dom.getIOThreadsInfo() dom2=con.lookupByName('noiothr-gst') print dom2.getIOThreadsInfo()
$ python iothr.py [(1, [False, False, True, False], ['/home/vm-images/iothr-vol1']), (2, [False, False, False, True], ['/home/vm-images/iothr-vol2']), (3, [True, False, False, False], [])] Traceback (most recent call last): File "iothr.py", line 6, in <module> print dom2.getIOThreadsInfo() File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1197, in getIOThreadsInfo if ret is None: raise libvirtError ('virDomainGetIOThreadsInfo() failed', dom=self) libvirt.libvirtError: virDomainGetIOThreadsInfo() failed
$
Signed-off-by: John Ferlan <jferlan@redhat.com> --- generator.py | 5 +++ libvirt-override-api.xml | 6 +++ libvirt-override.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++ sanitytest.py | 3 ++ 4 files changed, 110 insertions(+)
diff --git a/generator.py b/generator.py index 0d48980..327c896 100755 --- a/generator.py +++ b/generator.py @@ -435,6 +435,7 @@ skip_impl = ( 'virDomainGetVcpuPinInfo', 'virDomainGetEmulatorPinInfo', 'virDomainPinEmulator', + 'virDomainGetIOThreadsInfo', 'virSecretGetValue', 'virSecretSetValue', 'virSecretGetUUID', @@ -592,6 +593,7 @@ skip_function = ( 'virNetworkDHCPLeaseFree', # only useful in C, python code uses list 'virDomainStatsRecordListFree', # only useful in C, python uses dict 'virDomainFSInfoFree', # only useful in C, python code uses list + 'virDomainIOThreadsInfoFree', # only useful in C, python code uses list )
lxc_skip_function = ( @@ -1144,6 +1146,9 @@ def nameFixup(name, classe, type, file): elif name[0:20] == "virDomainGetCPUStats": func = name[9:] func = func[0:1].lower() + func[1:] + elif name[0:25] == "virDomainGetIOThreadsInfo": + func = name[9:] + func = func[0:1].lower() + func[1:] elif name[0:18] == "virDomainGetFSInfo": func = name[12:] func = func[0:2].lower() + func[2:] diff --git a/sanitytest.py b/sanitytest.py index f021e5a..53209b8 100644 --- a/sanitytest.py +++ b/sanitytest.py @@ -142,6 +142,9 @@ for cname in wantfunctions: if name[0:19] == "virDomainFSInfoFree": continue
+ if name[0:26] == "virDomainIOThreadsInfoFree": + continue + if name[0:21] == "virDomainListGetStats": name = "virConnectDomainListGetStats"
-- 2.1.0
One more think, I would also squashed this patch in to make the test happy and also in Python binding we usually remove the "Get" from APIs. diff --git a/generator.py b/generator.py index c79acf1..aa140ed 100755 --- a/generator.py +++ b/generator.py @@ -1148,8 +1148,8 @@ def nameFixup(name, classe, type, file): func = name[9:] func = func[0:1].lower() + func[1:] elif name[0:25] == "virDomainGetIOThreadsInfo": - func = name[9:] - func = func[0:1].lower() + func[1:] + func = name[12:] + func = func[0:2].lower() + func[2:] elif name[0:18] == "virDomainGetFSInfo": func = name[12:] func = func[0:2].lower() + func[2:] diff --git a/sanitytest.py b/sanitytest.py index 53209b8..0e6e0e5 100644 --- a/sanitytest.py +++ b/sanitytest.py @@ -279,6 +279,8 @@ for name in sorted(basicklassmap): func = "nwfilter" + func[8:] if func[0:8] == "fSFreeze" or func[0:6] == "fSThaw" or func[0:6] == "fSInfo": func = "fs" + func[2:] + if func[0:13] == "iOThreadsInfo": + func = "ioThreadsInfo" if klass == "virNetwork": func = func.replace("dHCP", "DHCP") Pavel
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list