Python之ESXi虚拟机分配
2013-05-28 13:56
127 查看
ESXi Server上的虚拟机分布于不同的Datastores,现有的服务器能够很好的按照如下的方式进行:每个Datastore运行一个Image,这个程序就是实现这样一个功能!因为是在现有框架增加一些功能,所以这个小程序并没有那么的合理,没法,为了加入到现有框架中,所有的方法,数据结构都得按照以前框架中的一套来处理。
谢谢阅读!
''' Created on May 27, 2013 @author: Berlin ''' class VMDispatcher(): vms = [] datastores_dics = {} vms_mapping = {} def __init__(self, vms_to_run, datastores_mapping): self.vms = vms_to_run self.datastores_dics = datastores_mapping def __ParseVmsToRun(self): for datastore in self.datastores_dics.keys(): vms_list = [] for vm_datastore in self.datastores_dics[datastore]: for vm_path in self.vms: if vm_path == vm_datastore: vms_list.append(vm_path) self.vms_mapping[datastore] = vms_list #print self.vms_mapping def __FirstRunVMs(self): self.__ParseVmsToRun() vms_to_run = [] for datastore, vms_path in self.vms_mapping.iteritems(): if len(vms_path): vms_to_run.append(vms_path.pop()) self.vms_mapping[datastore] = vms_path return vms_to_run def __IsAnyVMsOfSameDatastore(self, datastore): if len(self.vms_mapping[datastore]) == 0: return False else: return True #get datastore of vm according to the vm_path def __GetDatastore(self, vm): for datastore in self.datastores_dics.keys(): if vm in self.datastores_dics[datastore]: return datastore def AllocateVMsToRun(self, vm_path): datastore = self.__GetDatastore(vm_path) vm_to_run = [] if self.__IsAnyVMsOfSameDatastore(datastore): vms_path = self.vms_mapping[datastore] vm_to_run = vms_path.pop() self.vms_mapping[datastore] = vms_path return vm_to_run def DispatchToVMs(self): vms_path = self.__FirstRunVMs() return vms_path
谢谢阅读!
相关文章推荐
- ESXi中Linux虚拟机LVM扩展实例
- 虚拟机的MAC地址分配与修改
- mac 访问虚拟机里的python django页面
- Neutron在给虚拟机分配网络时,底层是如何实现的?
- Android Dalvik虚拟机内存分配问题
- SCVMM“云端”自动为虚拟机分配ip地址和MAC地址
- esxi 虚拟机磁盘类型
- Python网络编程-主机-虚拟机之间TCP协议简单通信实例
- python虚拟机virturalenv的使用
- VMWare ESX/ESXi 虚拟机硬盘的厚置备(Thick Provision)与精简置备(Thin Provision)的转换
- 买了新硬盘,给ESXI的虚拟机挂进真实硬盘。
- 凭啥Java的运行环境称虚拟机,Python的只能称解释器
- python日常笔记3--关于分布式任务的分配
- 物理机迁移到虚拟机(ESXi)
- pycharm windows 远程调试 ubuntu虚拟机python 项目
- 【小白】ubuntu虚拟机python打开摄像头并截取照片
- ESXi6.5中将虚拟机从厚置备转换为精简置备
- 理解openstack中与虚拟机相关一些简单网络知识-3.计算节点的网络拓扑以及网络分配
- 如何扩展ESXi虚拟机磁盘容量
- 如何扩展ESXi虚拟机磁盘容量