From 96967ed6f491310302a1d39e40e8697255e0441f Mon Sep 17 00:00:00 2001 From: Luis Fernandez Alvarez Date: Fri, 23 Nov 2012 09:46:52 +0100 Subject: [PATCH] Added cpu_info report to HyperV Compute driver It fixes bug 1082275 The current version of the HyperV Compute driver wasn't returning CPU information when it reported its resources. In order to solve it, this patch extracts the cpu properties from WMI and Win32 calls. Change-Id: I5c2a89b5e432f4e958354a15582258d4cff83658 --- ...ase.test_get_available_resource_ctypes.p.gz | Bin 0 -> 926 bytes ...get_available_resource_multiprocessing.p.gz | Bin 270 -> 270 bytes ...estCase.test_get_available_resource_os.p.gz | Bin 423 -> 423 bytes ...ase.test_get_available_resource_shutil.p.gz | Bin 309 -> 309 bytes ...stCase.test_get_available_resource_wmi.p.gz | Bin 980 -> 1276 bytes nova/tests/test_hypervapi.py | 5 +++-- 6 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 nova/tests/hyperv/stubs/test_hypervapi.HyperVAPITestCase.test_get_available_resource_ctypes.p.gz diff --git a/nova/tests/hyperv/stubs/test_hypervapi.HyperVAPITestCase.test_get_available_resource_ctypes.p.gz b/nova/tests/hyperv/stubs/test_hypervapi.HyperVAPITestCase.test_get_available_resource_ctypes.p.gz new file mode 100644 index 0000000000000000000000000000000000000000..b363af55abaec4a0bb5ffbe73b5a2097f7f010ac GIT binary patch literal 926 zcmV;P17Z9hiwFo_{jE>}|8!+@bYEzBaAk6KVQ^_KNO^E&a#lf5NmONXbVFftWiE7O zb97&4WprO*c4293VPb4$Uvg!0Z*_8GWnW`-d2nTOE^q*?luc{fKomvy^D9a>PM`$c zH!j7EsZ>{Arb>O@b^E>_mZj^*^J(3wsdf*HTI`dj{qa03_N;MdtsVaP zc=~cY+7s9o#|cmedvmZKJ{V+^q1`k}b?{NB)N=3vsBOacVLlBK?-wm~Wm{@rPMg?LH{7yShk&dsUjDig?jK5SsMK+q)eiNVJYb8ww>7Et6=O1d0p=3daJ4hk+u|K*2arFb@=UzHR(=9863A zh5|4ZU^^^;4vxJ925@A6*voLkMj8qo%IT1&LxB!49TGYubSS4oo({!9rlW<97CIX$ z6~U>vC{=i?LdRZAN5l#-D{{5MyA?sMV7o%}3h^s)!NMCBWgKKWB3X!Kv7u%WJd2B> zg*Pp#*o*0iY$3Kqu3LEDA_y03T!?ZZ&P6U=cSJP;@8;l$`@41{J3Au)CsYKg delta 16 XcmeBU>SJP;@8;l8WL~KABzYGUj40+2STTS#6?PrwoUrESk1nC2d)= zinHUSDA)0%)lJ(>UN)7k*OO(LyjFGj`-aW%iB-UoD0*CFd7Bkc#LCCtbkcvaO0es; zlI*r}+3{1Q*!(DplSDU7l$5KYJz|wdU-+!SZ`N_X(haT!v=-v#``Hwyz-bPE3&#)m z^MJz%ji=7&JN;djMfR#|dOUY%JUg45)n(b9eOqQU|1mnD-493Ke>@zW5Tszoc?FWC zh@ApU4N-8BDJXNA$5KNLkXwIh2tj}ZzOHn=A%KvU1b@qEG{5?Mb#dqXkBIIMy1*ei-;lbMQcgJ=lNfv=fg;6a>dT zbp(()LhPy|D38JrqXArO`i<9^oIl#^&=|R!9+{^mU9y zo;I7N)k_n=$>?vyltzC7m+w+^fi8t07Ow0lx^7R=H8&-~GC)0-Mo-snA(c5zjl6ES zi>f%HDlm6Vbf`-9sLI8c-$#dNN)ej!*a8Ij()V!5f1k4*nYt>!H>!N8OS;u%-PQ0g zzeBrlJ~;B9by6lGwHJ{`5qTyeuaC$ZBJy08T46lQv(?1&_7H!3La^Jz4#DR=f={mU zu})r4=%iiM8kzXU9DK>9q19jq&nJ`cjY;^uN%(_F_*7DKcL~R2KHzNeadzo^Y+v%S zIBu6Gj^{eR3g>ba=gvi0>#bUj8*u(J8Xz1vI1qSnAnBCA?G6r9e{kU8!LztnJ;x@F zntaqZ1Ogw^8iN^T8b!jdS9{}9=HMfS%2gl}H%jN+~Elc3xfYMO6 ziE>?-n+4Qga051&X{Y<4dcP~%IA3H<_LysXapu_{`hR~}19WZZT_3WIsOv=AR`jM9 zVKeF~AJEIX(g(5UGI*N_NEn|1(Hjkj!D&E{)f|q^^hwVG`)uKI>>_vq&Vs-2^U)g% zomX+9Pxm#-ZJwX9=C!kmOTEq#J-r;7-NpI8?^IwL49NY!r3qZxz~vCQ+y+jap;Hih zL$4q;hh2Z5zyO(k0p#NL74+{O2wmLTs)?9Lp`#NP`uPHL>xRfipjF|DVx(6uu4~0b zQ(t(lD_q5ubj`jUf$b6je zq0*=JycK)2BfB+g*mr9%b`93AVK8jiIyP)A8@4x|4g01I#f&c5WVwP7{1t9#0rNWq8Om3G(`if+eI8C z7XyN#u&Nr_QYG14Z_)q0GnC}kYId=U8unPEsHgYdaE57GR)@HD8N-m4+or8|XA$b5)mr9@rAESOqMNp2InH0v$*(Sd4ogXGzP$l`5M1# z3}+P2C)2O=zbUu*v#aUyazgRqBDko_vc34S$!Yv;dPb|)v#;OQvonGeY+h6#S%%md zu*?$$g-k*Fw}mY8)Bw3(VEqK7CV9r%&IT+PObI9-2H&ily6>^`Xn>mwYQljMmo)Zt|=- zG_Bis0cX>HF;jXA6hD8ZsDO$>5DO)Hib@R>m9LZ-w*mUO@qVgq3AxN^=>juc4d$-W=I5N9*mPI6NpYVy`D5WapjG~t`z5Qi z7o|s{LJ}2vQQ;seJc*DOA#}@ak6`$KV5onwysQQ}8Q&?4WcL!3 z7F^+!`iJd2{b2{Ksw8#iV@rxMBjca)=DDx-*KVJu?&kHe)~_!Ad!ZViH#3rJNUrI$ z4RWKS+z1B4A~6^ijT&J@jWF_!Fd7QG~da1xEJt zMp|#AMI%GSwN`&T)Hqey6Eku7gE#8^uy6GAlbWHG&&IxWhr0DosdweY(S-r^sFt`jb>QeyJ zr~p*AaA;Kk;ddY^_OvA61*#`gsf_2)m diff --git a/nova/tests/test_hypervapi.py b/nova/tests/test_hypervapi.py index 36f153531..c3091e1b7 100644 --- a/nova/tests/test_hypervapi.py +++ b/nova/tests/test_hypervapi.py @@ -76,7 +76,7 @@ class HyperVAPITestCase(basetestcase.BaseTestCase): fake_image.stub_out_image_service(self.stubs) fake_network.stub_out_nw_api_get_instance_nw_info(self.stubs) - def fake_dumps(msg): + def fake_dumps(msg, default=None, **kwargs): return '""' self.stubs.Set(json, 'dumps', fake_dumps) @@ -108,7 +108,8 @@ class HyperVAPITestCase(basetestcase.BaseTestCase): 'multiprocessing', '_winreg', 'nova.virt.configdrive', - 'nova.utils' + 'nova.utils', + 'ctypes' ] # Modules in which the mocks are going to be injected