def updateVMserver(): serverList = VMServer.listVmServer() for server in serverList: VMS = LibvirtManage(server.uri) SERVER = VMS.genre(model='server') server_id = server.id if SERVER: if server.status == 0: data = SERVER.getVmServerInfo() VMServer.updateVmServer(server_id=server_id,instance=data.get('ins'), mem=data.get('mem'),cpu_total=data.get('cpu_total'), mem_per=data.get('mem_per')) elif server.status == 1: result = VMServer.updateVmServerStatus(server_id=server_id, status=0) if isinstance(result, str):return result VMS.close() else: result = VMServer.updateVmServerStatus(server_id=server_id, status=1) if isinstance(result, str):return result
def listVmServer(request): hostList = VMServer.listVmServer() return render_to_response('vmServer/list_server.html', { "user": request.user, "localtion": [{ "name": "首页", "url": '/' }, { "name": "虚拟机管理器", "url": '#' }, { "name": "主机列表", "url": "/listServer" }], "dataList": hostList, "model": "server" }, context_instance=RequestContext(request))
def updateVMinstance(host=None): if host is None: serverList = VMServer.listVmServer() for server in serverList: if server.status == 0: VMS = LibvirtManage(server.uri) SERVER = VMS.genre(model='server') if SERVER: dataList = SERVER.getVmInstanceBaseInfo(server_ip=server.server_ip,server_id=server.id) for ds in dataList: result = VmServerInstance.objects.filter(server=server,name=ds.get('name')) if result:VmServerInstance.objects.filter(server=server,name=ds.get('name')).update(server=server,cpu=ds.get('cpu'), mem=ds.get('mem'),status=ds.get('status'), name=ds.get('name'),token=ds.get('token'), vnc=ds.get('vnc'), ) else:VmServerInstance.objects.create(server=server,cpu=ds.get('cpu'), mem=ds.get('mem'),vnc=ds.get('vnc'), status=ds.get('status'),name=ds.get('name'), token=ds.get('token')) VMS.close() else: server = VMServer.selectOneHostBy(host) if server and server.status == 0: VMS = LibvirtManage(server.uri) SERVER = VMS.genre(model='server') if SERVER: dataList = SERVER.getVmInstanceBaseInfo(server_ip=server.server_ip,server_id=server.id) for ds in dataList: result = VmServerInstance.objects.filter(server=server,name=ds.get('name')) if result:VmServerInstance.objects.filter(server=server,name=ds.get('name')).update(server=server,cpu=ds.get('cpu'), mem=ds.get('mem'),vnc=ds.get('vnc'), status=ds.get('status'),name=ds.get('name'), token=ds.get('token')) else:VmServerInstance.objects.create(server=server,cpu=ds.get('cpu'), mem=ds.get('mem'),status=ds.get('status'), name=ds.get('name'),token=ds.get('token'), vnc=ds.get('vnc')) VMS.close()
def viewInstance(request): if request.method == "GET": vMserverId = request.GET.get('id') vmServer = VMServer.selectOneHost(id=vMserverId) serverList = VMServer.listVmServer() try: VMS = LibvirtManage(vmServer.uri) INSTANCE = VMS.genre(model='instance') SERVER = VMS.genre(model='server') NETWORK = VMS.genre(model='network') if INSTANCE: instance = INSTANCE.queryInstance( name=str(request.GET.get('vm_name'))) '''获取存储池''' poolInfo = SERVER.getVmStorageInfo() '''获取网络设备''' netkInfo = NETWORK.listNetwork() '''获取cdrom设备''' imgList = INSTANCE.getMediaDevice(instance) '''获取iso存储池的iso列表''' isoList = SERVER.getVmIsoList() '''获取实例的xml文件''' insXml = INSTANCE.getInsXMLDesc(instance, flag=0) '''获取实例信息''' insInfo = INSTANCE.getVmInstanceInfo( instance, server_ip=vmServer.server_ip, vMname=request.GET.get('vm_name')) insInfo['cpu_per'] = INSTANCE.getCpuUsage(instance) snapList = INSTANCE.snapShotList(instance) VMS.close() else: return render_to_response( '404.html', context_instance=RequestContext(request)) except Exception, e: snapList = None insInfo = None return render_to_response('vmInstance/view_instance.html', { "user": request.user, "localtion": [{ "name": "首页", "url": '/' }, { "name": "虚拟机实例", "url": '#' }, { "name": "虚拟机实例列表", "url": "/listInstance" }], "inStance": insInfo, "vmServer": vmServer, "snapList": snapList, "poolInfo": poolInfo, "netkInfo": netkInfo, "imgList": imgList, "isoList": isoList, "serverList": serverList, "insXml": insXml }, context_instance=RequestContext(request))