经贸项目-系统详细设计_第1页
经贸项目-系统详细设计_第2页
经贸项目-系统详细设计_第3页
经贸项目-系统详细设计_第4页
经贸项目-系统详细设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

系统详细设计1/45浙江经贸职业技术学院虚拟化管理软件项目系统详细设计盟智软件(上海)有限公司浙江久远教育软件开发有限公司TIME\@"yyyy'年'M'月'd'日'"2013年1月8日

目录1引言 31.1 编写目的 31.2 背景 31.3 参考资料 41.4 术语定义及说明 51.4.1专门术语 51.4.2英文缩写 51.4.3关键词 52详细设计的任务和目标 53系统总体结构. 64系统详细设计. 84.1系统结构设计及子系统划分 84.1.1系统框架 84.1.2子系统划分 94.2系统功能模块详细设计 104.2.1统一配置管理 104.2.2升级: 114.2.3GC模块设计 124.2.4初始化模块设计 144.2.5虚拟机运行 154.2.6PAAS层接口设计 165.3系统界面详细设计 385.3.1管理员界面设计 385.3.2用户界面设计 43

1引言编写目的本文是路雅私有云教学系统软件的具体实现方案。根据系统需求分析和概要设计说明,对系统的每一个模块的实现方法,进行详细的设计,定义数据结构,模块内部的调用关系,调用流程及异常处理等。本文档作为开发人员开发和调试,以及测试人员单元测试白盒测试的依据。本文档的用户包括架构设计人员、开发人员、测试人员。背景路雅云桌面产品是路雅私有云平台的一个重要组成部分,它的设计目标是:即可以独立的部署,也可以和路雅私有云平台统一部署提供工作用桌面相对于私人桌面,工作桌面的主要要求有:标准化定制每个岗位所需的桌面内容是确定的;不同岗位的桌面内容是不同的,因此,工作用桌面对某个具体岗位来说,是统一的,标准化的;对不同的工作岗位来说,它又是定制的、个性化的。不可修改用户对工作桌面所所的任何修改,包括安装新的应用软件,修改系统配置,生成新的数据文件数据文件的持久保存可以通过第三方的网络存储,或者路雅私有云系统提供的云存储来实现。等,在工作桌面关机后都会自动被清除。这保证了:数据文件的持久保存可以通过第三方的网络存储,或者路雅私有云系统提供的云存储来实现。每次用户开机时,得到的是一个可用的,可靠的工作桌面万一感染病毒或木马,即使已经传染到所有的工作桌面上,用户也只需要通过关机,再重新开机的方式进行免疫路雅云桌面的优点系统管理员负责创建用户,并提供镜像文件模板。每个普通用户都可以共享系统提供的云桌面资源。高级用户还可以自行制作和发布新的云桌面,经管理员审核认可后,即可和它人共享。它的优点是:不变的用户体验:云桌面能够提供和个人电脑上一摸一样的用户体验,包括多媒体音频和视频的播放,2D/3D应用软件等随时随地访问:在企业范围内内,任何地方,任何时间,用户都可以通过各种终端来访问云桌面,包括PC,笔记本电脑,平板电脑。配合CloudStorage应用平台,还可以用来保存重要的数据和文件离线使用功能:通过动态缓存技术,为PC,笔记本电脑等终端提供了离线使用的功能。即使无法接入到云桌面系统之中,缓存的数据也能够让用户正常运行以前运行过的云桌面。对病毒免疫:用户对云桌面的任何改动,在关机以后会自动清除,这不但能为用户提供更高的安全和保护,还能通过简单的关机重启动作,快速的清除掉病毒、木马对工作桌面的破坏。参考资料《系统概要设计》术语定义及说明1.4.1专门术语云桌面:通过云计算平台来管理的虚拟桌面。目录服务:一种数据存储格式,遵循轻量级目录访问协议(LDAP)。离线模式:网络故障的情况下,保证业务部中断。Hypervisor:虚拟机运行的平台,由软件虚拟出来的虚拟硬件层。1.4.2英文缩写MVC:ModelViewControllerLDAP:LightweightDirectoryAccessProtocolVDI:VirtualDesktop

InfrastructurePAAS:Platform-as-a-ServiceIAAS:InfrastructureasaService1.4.3关键词云计算、云桌面、虚拟化、集群2详细设计的任务和目标根据系统的需求说明和概要设计,实现整个系统的每个程序模块对外的提供的接口和功能。这些接口包括Web服务、目录服务、中央控制、存储控制、集群控制、节点控制、本地代理服务、物理机监控服务。这个系统以面向对象思想进行实现,尽量按照MVC的设计模式,将数据处理,业务逻辑,和用户界面进行松耦合。保障系统的可维护性和可扩展性,以利于功能增强或二次开发。3系统总体结构.系统由下几个部分组成:LDAP服务器LDAP服务器保持了整个路雅云集计算平台软件系统正常运行所需要的所有配置数据,它是路雅云集计算平台的核心数据部分。因此它必须得到最好的保护,并以单独物理服务器的方式运行。配置服务器本服务器供管理人员对LDAP服务器上的配置数据进行修改;配置服务器可以通过LDAP服务器找到路雅云集计算平台系统中各个软件部分,并对他们进行操作调用。基本上可以由CLC的8443端口的WEB服务改进而成。云控制器即eucalyptus的CLC。它是路雅云集计算平台的核心控制部分,必须得到最好的保护,并以单独物理服务器的方式运行。镜像管理服务器即eucalyptus的walrus。它负责虚拟机镜像的注册,保存和下载。存储工作转交存储服务器具体完成。集群控制器即eucalyptus的CC。在路雅云集计算平台环境下,可能需要几个CC。例如虚拟桌面CC,虚拟服务器CC等。节点服务器即eucalyptus的NC。在路雅云集计算平台环境下,对归属于不同CC的节点服务器其管理和调度方式不同。终端机器即各种PC机。其上可安装的客户端有:RemoteWindowsClientLocalWindowsClientLocalLinuxClient云存储服务器即iFolder服务器。能为用户提供不同大小的存储空间和共享空间存储服务器即运行HDFS的一个机器集群。其参数配置归配置服务器管理,其性能,负载均衡,容灾备份归性能状态监控服务器管理性能状态监控服务器监控整个路雅云集计算平台系统和各组成部分的状态,并提供工具供管理员进行人工干预。各软件部件在运行后,必须立刻向LDAP服务器注册自己;并根据不同的时间间隔,向LDAP服务器报告自己是否活跃,并报告基本状态信息。4系统详细设计.4.1系统结构设计及子系统划分4.1.1系统框架整个系统按照云计算的IAAS,PAAS,SAAS三层架构划分。运行在服务器的操作系统之上,为上层应用提供服务。系统框架图如下:4.1.2子系统划分整个软件系统分为一下几个模块:目录服务中央控制存储控制集群控制节点控制本地代理服务物理机监控服务子系统划分框图:WebclientserverWebclientserverProxyCLCProxyLDAPNCLocalHostLuhyaserverCCLDAPCLCWalrusspiceonlineonlineonlineofflineonline4.2系统功能模块详细设计4.2.1统一配置管理流程如下:1.每个节点的daemon在系统启动后,会自动的向LDAP更新自己的状态数据等信息

2.用户通过浏览器访问“配置管理WEB服务"

3.该WEB服务从LDAP上获取路雅云集计算平台系统的所有信息并显示,这不但包括配置信息,还包括每个节点通过daemon汇报给LDAP的状态信息

4.用户在配置界面上所作的修改,不但要保存到LDAP服务器上,有些操作命令,例如start,stop,还需要发送到每个节点的daemon进程,并取得返回结果4.2.2升级流程如下:1:用户通过“配置管理WEB服务"把新的安装包提交到"软件升级服务器"的软件仓库之中2:用户通过“配置管理WEB服务"的操作,决定升级到某个指定版本(这项操作的粒度为升级系统中某类节点的软件版本),并可设定升级时间3:每个节点的daemon会定期的查询LDAP服务器,获取升级命令4:每个节点的daemon会联系"软件升级服务器",下载对应的软件安装包,然后执行“停止服务-安装软件-启动服务”等流程。4.2.3GC模块设计GC模块的功能介绍:在客端没有关闭instance就退出的情况下,自动清理残留在NC节点上的instance,GC模块只存在NC节点上。在安装时,先判定是否为NC节点,确认后才安装GC模块(本功能待实现)。设计思路定期检查客户端发送的heartbeat信息,当超出一定的时间(现定为10分钟)没有接收到客户端heartbeat信息时,认为客户端已关闭;如果客端关闭则清除此客户端启动的instance.流程如下:1.检查服务器是否安装了服务模块,如果没有则不能进入下一步;同时判定节点是否为NC节点,如果不是则不进入下一步(本功能待实现)。2.定时通过以下步骤判定客户端是否已经关闭:2.1以关健字(filter):'(&(objectClass=DESKTOPCONFIG)(instanceID=*))'从ldap上查找目录属性,从中得到uuid,instanceid,heartbeat信息,2.2取本地缓存的desktop信息;取当前本地时间。2.3检查客户端发出的heartbeat信息,当heartbeat十分钟没有更新,则判定客户端已经关闭;否则更新本地缓存;3.如果客户端已经关闭,终止由已关闭客户端启动的虚拟机实例。4.从ldap中删除相关instance信息。数据结构:本模块从以下ldap入口节点中读取所有和destop信息;<pre>_basedn='ou=desktopconfig,ou=eucaconfig,cn=clc,o=路雅云集计算平台,o=sinobot'</pre>4.2.4初始化模块设计1.功能介绍:1.在检查LDAP相关设置,并为每个agent在LDAP的ou=deploy,o=路雅云集计算平台,o=sinobot下建立相应的记录。2.检查系统中已经安装的功能和角色,如当前服务器安装了clc,walrus,还是desktop等。3.Init作为第一个被加载的模块,只有在正确设置后才会继续加载后续的模块。2.设计思路:检查LDAP相关设置,检查系统中已经安装的功能和角色,如果没有则安装模块,并在ldap上添加记录。3.流程设计init模块的作用是:检查LDAP相关设置,检查系统中已经安装的功能和角色,流程如下;1.从文件/var/lib/dbus/machine-id中生成本机ID,2.生成关健字'(&(objectClass=Agent)(cn=%s))',检查LDAP相关设置,如果已经设置完毕则不做处理;否则,检查系统中已经安装的功能和角色,如当前服务器安装了clc,walrus,还是desktop等;为每个agent在LDAP的ou=deploy,o=路雅云集计算平台,o=sinobot下建立相应的记录。例如,如果成功属性如下::CAP_CLC,:CAP_WALRUS,:CAP_CC,:CAP_NC,:CAP_DESKTOP,:CAP_STORAGE,:CAP_REPOSITORY3.使用glib库函数创建定时器,定时在/sys/class/net/查找本机所有的以太网IP,然后在ldap上更新本机ip地址。4.2.5虚拟机运行1.功能介绍用户界面上选择某一个云桌面并且启动后,在中心机房的服务器上运行,并将云桌面的图像通过网络传输,显示在客户端。用户感觉就像在使用本地电脑,但实际上所有的运算和操作都是在服务器上。2.设计思路Web服务提供显示云桌面列表和提供云桌面启动操作的处理接口。中央处理器负责机群的调度,机群控制器调度合适节点,然后虚拟机在节点上开始运行,节点将运行状态定时向上汇报。3.流程设计1.客户端首先发起运行虚拟机的请求给Web服务器端,并且将username,imageid发送给Web服务器。2.Web服务器收到请求以后,调用中央控制器提供的运行虚拟机的接口startvm。3.中央控制器负责到目录服务上检查用户的请求是否合法,不合法抱错退出。合法则根据目前集群的状态,按照配置好的算法,选择一个空闲的集群,向该集群发送启动虚拟机的请求。4.集群控制器收到请求以后,将调用一个空闲的节点工作服务器,让其启动虚拟机,并实时监控状态,向中央控制器汇报。5.节点工作服务器,根据请求,运行虚拟机。并且将虚拟机的状态,实时汇报给集群控制器。4.序列图的4.2.6PAAS层接口设计ldap端的接口函数stringluhya_reg_getClcIp()功能:获得clc的IP地址参数:无返回:字符串:clc的IP地址boolluhya_reg_judgeUser(1:stringuserName,2:stringpassword)功能:判断用户是否是合法用户参数:1、用户名称,stringuserName2、密码,stringpassword(用base64加密的字符串)返回:如果ldap上有该用户,且密码相同,返回true,否则返回falselist<thd_ClusterInfo>luhya_reg_getClusterList();功能:从ldap上获得cluster列表参数:无返回:ldap上所有cluster的列表list<thd_NodeInfo>luhya_reg_getNodeList();功能:从ldap上获得node列表参数:无返回:ldap上所有node的列表list<thd_NodeInfo>luhya_reg_getNodeInfoByCluster(1:stringclusterName);功能:从ldap上获得clusterName下的所有node列表参数:cluster名称,stringclusterName返回:ldap上clusterName下的所有node的列表list<thd_UserInfo>luhya_reg_getUserList();功能:从ldap上获得所有用户列表参数:无返回:ldap上所有用户的列表list<thd_ImageInfo>luhya_reg_getImageList();功能:从ldap上获得所有镜像列表参数:无返回:ldap上所有镜像的列表thd_ImageInfoluhya_reg_getImageInfo(1:stringdesktopID);功能:从ldap上获得镜像desktopID的信息参数:镜像名称,stringdesktopID返回:ldap上镜像desktopID的信息boolluhya_reg_mergeImageInfo(1:thd_ImageInfodesktopInfo);功能:修改镜像信息参数:镜像信息,thd_ImageInfodesktopInfo返回:修改成功返回true,否则返回falseboolluhya_reg_addImageInfo(1:thd_ImageInfonewDesktopInfo);功能:增加镜像信息参数:镜像信息,thd_ImageInfodesktopInfo返回:增加成功返回true,否则返回falseboolluhya_reg_deleteImage(1:stringdesktopID);功能:删除镜像desktopID参数:镜像ID,stringdesktopInfo返回:删除成功返回true,否则返回falsestringluhya_reg_getWalrusIp();功能:从ldap上获取walrus的ip地址参数:无返回:字符串,walrus的ip地址stringluhya_reg_getWalrusBucketName();功能:从ldap上获取walrus的存储镜像的bucket目录参数:无返回:字符串,walrus的存储镜像的bucket目录list<string>luhya_reg_getCategoryList();功能:从ldap上获取部门列表参数:无返回:部门列表list<string>luhya_reg_getDesktopTypeList();功能:从ldap上获取镜像的类型列表(desktop,server等)参数:无返回:镜像的类型列表list<string>luhya_reg_getOSTypeList();功能:从ldap上获取镜像的操作系统类型列表(windows,linux等)参数:无返回:操作系统类型列表stringluhya_reg_getMakeImageNode();功能:从ldap上获取制作镜像的node的ip参数:无返回:字符串,ip地址stringluhya_reg_getUserSecretKey(1:stringuserName);功能:从ldap上获取用户的secretKey参数:、用户名称,stringuserName返回:字符串,secretKeystringluhya_reg_getUserQueryId(1:stringuserName)功能:从ldap上获取用户的QueryId参数:、用户名称,stringuserName返回:字符串,QueryIdclc端的接口函数boolluhya_res_terminateInstance(1:stringinstanceID);功能:终止一个运行的instance参数:stringinstanceID返回:成功返回true,否则返回falseboolluhya_res_restartInstance(1:stringinstanceID);功能:重启一个运行的instance参数:stringinstanceID返回:成功返回true,否则返回falsewalrus端的接口函数i64luhya_res_getImageLength(1:stringwalrusBucket,2:stringdesktopID);功能:获得镜像的实际大小参数:1:存储镜像的目录,stringwalrusBucket2:镜像的id号,stringdesktopID返回:镜像的大小cc端的接口函数list<thd_InstanceInfo>luhya_res_getInstanceByNode(1:stringnodeIp);功能:获得指定node上运行的instance列表参数:node的地址,stringnodeIp返回:instance列表nc端的接口函数boolluhya_res_isImageExisit(1:stringdesktopID,2:i64imgLen)功能:判断镜像是否在该nc上下载完成参数:1:镜像的id号,stringdesktopID2:镜像的长度,i64imgLen返回:下载完成返回true,否则返回falsestringluhya_res_runInstanceByBaseImage(1:stringdesktopID,2:stringSecretKey,3:stringQueryId)功能:在该nc上运行镜像desktopID参数:1:镜像的id号,stringdesktopID2:用户的SecretKey,stringSecretKey3:用户的QueryId,stringQueryId返回:成功,返回instanceid号,否则返回空说明:运行镜像的instanceid号命名规则:mke-xxxxxxxxProxy接口设计函数本地缓存数据目录定义:/var/lib/eucalyptus/.luhya/caches/emi-xxxxxx/machine原始镜像文件/imageinfo.xml镜像描述文件/instances/username/emi-xxxxxx/machinecopyonwrite镜像/users/username/logon.xml用户认证文件/clientdata.xml用户虚拟机列表/imageinfos.xml用户可使用镜像列表/ldapcaches/categories.xml部门列表/clc.xmlclcip地址/local_node.xml本地Node信息/cluster.xmlcluster信息/register.xmlNode注册信息/walrus.xml/etc/eucalyptus/eucalyptus-ldap.confLDAP_SERVER=”00/etc/eucalyptus/eucalyptus-real-ldap.confLDAP_SERVER=”00/etc/eucalyptus/eucalyptus-nc.confCC_NAME=cc-demo如何判断Online还是offlineProxyLdapServer启动时增加检测线程设置全局变量g_online,判断方法如下:检测时间间隔:如果是online,1分钟检测一次,如果是offlien,5秒钟检测一次调用LdapThriftServerAPIluhya_reg_is_online()和ClcThriftServerluhya_res_is_online()的判断如果两个同时成功,g_online=true;否则,g_online=false调用时,设定超时10秒ProxyLdapServer也要增加luhya_reg_is_online(),供ProxyClcServer调用用户登录功能ProxyLdapServerAPI1)i64euca_reg_domain_user_logon(1:stringuserName,2:stringpassword,3:stringdomain);伪代码如下:如果是在线模式:1)转发调用LdapThriftServerAPIeuca_reg_domain_user_logon()进行认证2)认证成功时,将认证信息保存/var/lib/eucalyptus/.luhya/users/username/logon.ini如果是离线模式:从/var/lib/eucalyptus/.luhya/users/username/logon.in读取信息进行认证。用户名、密码、domain匹配时,认证成功注:logon.ini(如:logon.ini)格式如下:username=sam.weipassword=123456(MD5)domain=logonname=sam.wei2)i64luhya_reg_get_max_private_instances(1:stringuser);//获取用户最大的运行虚拟机个数伪代码如下:如果是在线模式:转发LdapThriftServerluhya_reg_get_max_private_instancesAPI获取个数;如果是离线模式:直接返回1;注册原来的Node端注册流程:启动注册线程,循环:1、获得本机ip;2、调用ldap的luhya_reg_is_registered(servID,hostIp)判断是否注册(servID为node;hostIp为本机Ip);如果已经注册:1、跳出循环如果没有注册:调用p_get_ccname_conf()获得设定的ccname调用ldap的luhya_reg_init_node_info(nodeInfo)注册node 如果注册成功:跳出循环 如果注册不成功:停1秒,继续循环注册Local模式node运行时,需在proxcyLdap上实现以下接口:luhya_reg_is_registered(servID,hostIp)luhya_reg_init_node_info(nodeInfo)proxcyLdap上实现luhya_reg_init_node_info(nodeInfo):1、调用is_online()判断本机是否在线如果在线:将nodeInfo的isLocal属性设为TRUE调用真正的ldap的接口luhya_reg_init_node_info(nodeInfo)如果注册成功:1、将nodeInfo、clusterInfo保存到local_node.inicluster.ini中2、返回TRUE 如果注册不成功: 返回FALSE如果不在线:返回FALSE注:/var/lib/eucalyptus/.luhya/ldapcaches/local_node.xmlnodeinfo保存格式如下:<nodeInfo><hostIp>00</hostIp> <clusterName>CC-Demo</clusterName> …<isLocal>TRUE</isLocal></nodeInfo>/var/lib/eucalyptus/.luhya/offline/cluser.xmlclusterinfo保存格式如下:<clusterInfo><clusterName>cc-demo</clusterName><hostIp>00</hostIp> <HYPERVISOR>kvm</HYPERVISOR></clusterInfo>proxcyLdap上实现luhya_reg_is_registered(servID,hostIp):调用is_online()判断本机是否在线如果在线:调用真正的ldap的接口luhya_reg_is_registered(servID,hostIp)得到返回值并返回如果不在线:查看/var/lib/eucalyptus/ldapcaches/下是否有local_node.ini文件如果没有: 返回FALSE(没有注册)如果有:返回TRUE(已经注册)查询云桌面列表:ProxyCLCServerAPI1)luhya_clc_get_client_data(user,requestIp):获取用户数据列表调用is_online()判断本机是否在线如果在线:忽略requestIP,WebServer传过来的requestIP总是NULL2.获得本机的IP地址作为requestIP3.判断clientdata.ini是否存在,如果存在,删掉,以下所有文件都类似处理4.调用真正的clc上的luhya_clc_get_client_data(user,requestIp)获得clientInfo列表,并将列表保存到:/var/lib/eucalyptus/.luhya/users/username/clientdata.xml返回clientInfo列表如果不在线:判断文件clientdata.ini是否存在,如果存在:从文件clientdata.ini中读取clientInfo列表将clientInfo列表中远程的instance的is_can_run设为false判断/var/lib/eucalyptus/.luhya/cache/imageID/下machine文件是否存在,若存在,isCanRun为true,反之为false调用nc端的luhya_reg_get_instances_state(user)获得instance状态列表,根据状态列表更新列表clientInfo的state,返回clientInfo列表如果不存在,返回NoneProxyCLCServerAPIluhya_reg_getCategoryList()在线模式:直接调用LdapThriftServerAPIluhya_reg_getCategoryList获取部门列表信息,并保存在:/var/lib/eucalyptus/.luhya/ldapcaches/categories.xml离线模式:从/var/lib/eucalyptus/.luhya/ldapcaches/categories.xml获取部门列表2)list<thd_ImageInfo>euca_reg_getImageList(userName);在线模式:直接调用LdapThriftServer的euca_reg_getImageList(userName)镜像列表信息,并将镜像列表保存在/var/lib/eucalyptus/.luhya/users/userName/imageinfos.xml中。离线模式:从/var/lib/eucalyptus/.luhya/users/imageinfos.xml获取镜像列表信息3)thd_ImageInfoluhya_reg_getImageInfo(1:stringimageID);在线模式:直接调用LdapThriftServerAPIluhya_reg_getImageInfo(1:stringimageID返回镜像列表信息,并将镜像列表保存在:/var/lib/eucalyptus/.luhya/caches/imageID/imageinfo.ini中,离线模式:

从/var/lib/eucalyptus/.luhya/caches/imageID/imageinfo.ini获取镜像列表信息管理员删除image时应该删除imageinfo.ini文件启动虚拟机ProxyLDAPServerAPI:luhya_reg_get_nodeinfo_by_nodeIp(nodeIp)调用is_online()判断本机是否在线:如果在线:调用真正ldap的luhya_reg_get_nodeinfo_by_nodeIp(nodeIp)获得nodeInfo如果不在线:查看/var/lib/eucalyptus/.luhya/ldapCache/是否有local_node.ini文件?如果有:从local_node.ini中取得nodeInfo地址返回如果没有:返回Noneluhya_reg_get_ins_report_intv():调用is_online()判断本机是否在线:如果在线:调用真正ldap的luhya_reg_get_ins_report_intv()获得时间间隔如果不在线:返回1luhya_reg_getWalrusPort()调用is_online()判断本机是否在线:如果在线:调用真正ldap的luhya_reg_getWalrusPort()获得walrus的port,并保存到/var/lib/eucalyptus/.luhya/ldapCache/的walrus.ini中返回walrus的port如果不在线:查看/var/lib/eucalyptus/.luhya/ldapCache/是否有walrus.ini文件,如果有:从walrus.ini中取得walrus的port返回如果没有:返回None4)luhya_reg_getWalrusIp()调用is_online()判断本机是否在线:如果在线:调用真正ldap的luhya_reg_getWalrusIp()获得walrus的ip地址,并保存到/var/lib/eucalyptus/.luhya/ldapCache/的walrus.ini中返回walrus的ip如果不在线:查看/var/lib/eucalyptus/.luhya/ldapCache/是否有walrus.ini文件,如果有:从walrus.ini中取得walrus的ip返回如果没有:返回None5)luhya_reg_get_cluster_ip(clusterName)调用is_online()判断本机是否在线如果在线:调用真正ldap的luhya_reg_get_cluster_ip(clusterName)获得cc的ip如果不在线:查看/var/lib/eucalyptus/.luhya/ldapCache/是否有cluster.ini文件,如果有:从cluster.ini中取得ip地址返回如果没有:返回NoneProxyCLCServerAPI:1)i64luhya_clc_start_vm(thd_ClientInfoclientData);远程模式(clientData.is_local==false):直接调用ClcThriftServerAPIluhya_clc_start_vm(clientData)启动虚拟机本地模式(clientData.is_local==true):

调用本地NcThriftServerAPI

luhya_nc_start_vm(clientData)启动虚拟机。停止虚拟机功能ProxyClcServerAPI:1)i64luhya_clc_stop_vm(1:client_info)伪代码如下:如果是远程模式(clientData.is_local==false):转发调用ClcThriftServerAPIluhya_clc_stop_vm(client_info)停止虚拟机。如果是本地模式(clientData.is_local==true):直接调用NcThriftServerAPIluhya_nc_stop_vm(client_info)停止虚拟机。快照功能说明:只支持在线快照功能,离线时,快照按钮为Disable,所以快照不需要缓存功能,只支持在线转发。ProxyLdapServerAPI:i64luhya_reg_get_available_snapshot_num(1:stringuserName,2:stringimageID);伪代码如下:如果是在线:转发LdapThritServer的luhya_reg_get_available_snapshot_numAPI如果是离线:直接返回i64luhya_reg_get_current_snapshot_id(1:stringuserName,2:stringimageID);伪代码:如果是在线:转发LdapThritServer的luhya_reg_get_current_snapshot_idAPI如果是离线:直接返回3)boolluhya_reg_set_current_snapshot_id(1:stringuserName,2:stringimageID,3:i64snapshotID);伪代码:如果是在线:转发LdapThritServer的luhya_reg_set_current_snapshot_idAPI如果是离线:直接返回list<thd_snapshot>luhya_reg_get_snapshot_list(1:stringuserName,2:stringimageID);伪代码:如果是在线:转发LdapThritServer的luhya_reg_get_snapshot_listAPI如果是离线:直接返回boolluhya_reg_add_snapshot(1:thd_snapshotsnapshotInfo);伪代码:如果是在线:转发LdapThritServer的luhya_reg_add_snapshotAPI如果是离线:直接返回boolluhya_reg_modify_snapshot(1:thd_snapshotsnapshotInfo);伪代码:如果是在线:转发LdapThritServer的luhya_reg_modify_snapshotAPI如果是离线:直接返回boolluhya_reg_delete_snapshot(1:stringuserName,2:stringimageID,3:i64snapshotID);伪代码:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论