您的位置:首页 > 编程语言 > Python开发

Python之虚拟机操作:利用VIX二次开发,实现自己的pyvix(系列一)成果展示和python实例

2013-09-02 20:50 1086 查看
在日常工作中,需要使用python脚本去自动化控制VMware虚拟机,现有的pyvix功能较少,而且不适合个人编程习惯,故萌发了开发一个berlin版本pyvix的想法,暂且叫其OpenPyVix。OpenPyVix利用vmware提供的VIX接口,对其重新封装,导出为dll文件,然后利用python的CDLL模块调用其中的方法来实现python自动化控制虚拟机的操作。本系列文章将逐步为你揭开OpenPyVix的神秘面纱,喜欢的猿们支持一下!

好了,言归正传,今天我带给大家的是可用的dll和python的sample,在随后的文章中,我会stepbystep的揭开OpenPyVix的面纱:如何创建dll工程,如何生成不依赖于dll(即静态编译方法)的dll文件,python中使用OpenPyVix的类实例;在具体的dll工程的开发过程中,我会带给大家诸如单例模式,以及Windows中实现互斥的方法等。

需要使用到的python模块有:ctypes中的find_library等。

libpath=my_find_library('VixLib.dll')

[code]cwd=os.getcwd()
os.chdir(os.path.dirname(libpath))

vix=CDLL(libpath)

os.chdir(cwd)


vmOrdinal=c_int()

res=vix.openVMX(byref(vmOrdinal),vmxpath,isLinux,\

sESXHost,sESXUser,sESXPw)

vix.powerOn(vmOrdinal)

...

vix.closeHandle(vmOrdinal)

[/code]

其中my_find_library方法如下:


1:defmy_find_library(name):

[code]lib=find_library(name)
iflib:

returnlib


#find_librarysucksonWindows,sowe'llfakeit

paths=[xforxinsys.path]

paths.append(os.getcwd())

paths.append(module_path)


forpathinpaths:

try:

libpath=os.path.join(path,name)

ifos.path.exists(libpath):

returnlibpath

exceptWindowsError:

continue


returnNone

[/code]

那么,我们的dll中到底有那些方法呢?看图:





正如博客园所说,代码改变世界,我是一个想通过代码来改变自己人生,改变世界的程序猿!

感谢大家的阅读,敬请期待本系列之二:Python之虚拟机操作:利用VIX二次开发,实现自己的pyvix(系列二)单例模式和互斥访问

PublishedbyWindowsLiveWriter.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐