示例#1
0
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 
示例#2
0
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))
示例#3
0
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()   
示例#4
0
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))