设为首页 收藏本站
查看: 1726|回复: 0

[Cloudstack] 虚拟化平台cloudstack(8)——从UI开始

[复制链接]

尚未签到

发表于 2015-4-18 08:48:21 | 显示全部楼层 |阅读模式
UI
  ucloudstack采用的是前后端分离的架构,就是说前端可以选择使用web、swing甚至其它的界面,都可以。
  我们来看cloudstack的UI信息吧,所有的cloudstack的UI都在{cloudstack_home}/cloudstack/ui目录下。
DSC0000.jpg
  用firefox打开工程,打开firebug,找到login.js,在100行加上断点。
DSC0001.jpg
  执行登录,这时就会触发断点,让我们看看发生了什么:
DSC0002.jpg
  最终是使用jquery的ajax来提交post请求给服务器端,也就是说,manager server提供给我们的是一组API,我们可以通过http的请求方式提交请求。

处理http请求
  看完了前端,我们继续看一下后端处理。
  在web.xml中,我们看到所有的api/请求都会到ApiServlet中处理。



   
apiServlet
com.cloud.api.ApiServlet
5

   
apiServlet   
/api/*

  在ApiServlet中,重点看下



    @Override
public void init(ServletConfig config) throws ServletException {
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
}
  这样在web容器中就可以查看spring中使用注解的接口了。
  说实话这块感觉设计的挺一般的,一个servlet里边承担了太多的任务,我打了个断点在



processRequest(req, resp);
  这个方法中,但是一个登录的操作就走了四次断点,一个退出操作又走了两次,不清楚这块为什么这样设计。
  而且很多业务代码都在这个类中操作,感觉很冗余。但这个不是我们重点关心的问题。

CloudStack API提供的三种角色


  • 管?理?员?。?获?得?云?的?所?有?功?能?,包?括?虚?拟?和?物?理?资?源?管?理?。?
  • 域?管?理?员?。?进?入?到?虚?拟?资?源?的?云?属?于?管?理?员?的?域?。
  • 用?户?。?只?访?问?允?许?用?户?管?理?的?功?能?,虚?拟?实?例?,存?储?,和?网?络?。?

API文档的地址
  http://cloudstack.apache.org/docs/api/
  可以看到不同角色的API的地址,进去之后,可以看到每个API的详细描述。

处理简单列举一下4.1中API的新特性
  在VM中重新配置物理网络
  支持IPV6
  扩展VMX设置
  重新设置SSH密钥来访问虚拟机
  在4.1中改变的API命令:



API Commands


Description






createNetworkOffering



The following request parameters have been added:





  • isPersistent


  • startipv6


  • endipv6


  • ip6gateway


  • ip6cidr






listNetworkOfferings

listNetworks



The following request parameters have been added:





  • isPersistent

    This parameter determines if the network or network offering listed are persistent or not.


  • ip6gateway


  • ip6cidr






createVlanIpRange



The following request parameters have been added:





  • startipv6


  • endipv6


  • ip6gateway


  • ip6cidr






deployVirtualMachine



The following parameter has been added: ip6Address.

The following parameter is updated to accept the IPv6 address: iptonetworklist.





CreateZoneCmd



The following parameter have been added: ip6dns1, ip6dns2.





listRouters

listVirtualMachines



For nic responses, the following fields have been added.





  • ip6address


  • ip6gateway


  • ip6cidr






listVlanIpRanges



For nic responses, the following fields have been added.





  • startipv6


  • endipv6


  • ip6gateway


  • ip6cidr






listRouters

listZones



For DomainRouter and DataCenter response, the following fields have been added.





  • ip6dns1


  • ip6dns2






addF5LoadBalancer

configureNetscalerLoadBalancer

addNetscalerLoadBalancer

listF5LoadBalancers

configureF5LoadBalancer

listNetscalerLoadBalancers



The following response parameter is removed: inline.





listFirewallRules

createFirewallRule



The following request parameter is added: traffictype (optional).





listUsageRecords



The following response parameter is added: virtualsize.





deleteIso



The following request parameter is added: forced (optional).





createStoragePool



The following request parameters are made mandatory:





  • podid


  • clusterid






createAccount



The following new request parameters are added: accountid, userid





createUser



The following new request parameter is added: userid





createDomain



The following new request parameter is added: domainid





listZones



The following request parameters is added: securitygroupenabled

  同时添加了一些新的API






  • createEgressFirewallRules (creates an egress firewall rule on the guest network.)


  • deleteEgressFirewallRules (deletes a egress firewall rule on the guest network.)


  • listEgressFirewallRules (lists the egress firewall rules configured for a guest network.)


  • resetSSHKeyForVirtualMachine (Resets the SSHkey for virtual machine.)


  • addBaremetalHost (Adds a new host.)


  • addNicToVirtualMachine (Adds a new NIC to the specified VM on a selected network.)


  • removeNicFromVirtualMachine (Removes the specified NIC from a selected VM.)


  • updateDefaultNicForVirtualMachine (Updates the specified NIC to be the default one for a selected VM.)


  • addRegion (Registers a Region into another Region.)


  • updateRegion (Updates Region details: ID, Name, Endpoint, User API Key, and User Secret Key.)


  • removeRegion (Removes a Region from current Region.)


  • listRegions (List all the Regions. Filter them by using the ID or Name.)


  • getUser (This API can only be used by the Admin. Get user details by using the API Key.)

配置8096端口
  8096端?口?, 不?需?要?验?证?即?可?进?行?API调?用?. 在?所?有?的?3.0.1版?本?全?新?安?装?时?, 这?个?端?口?都?是?默?认?被?禁?用?的?. 你?可?以?通?过?下?面?的?设?置?启?用?8096(或?使?用?其?它?端?口?号?):





  • 确?保?第?一?个?管?理?服?务?器?安?装?并?运?行?.


  • 设?置?你?期?望?的?端?口?号?到?全?局?配?置?参?数? integration.api.port.


  • 重?启?管?理?服?务?器?.


  • 在?管?理?服?务?器?的?节?点?上?, 创?建?一?个?防?火?墙?规?则?以?便?允?许?访?问?这?个?端?口?.
DSC0003.jpg

使用API请求
  所?有?CloudStack API请?求?都?是?以?HTTP GET/POST形?式?提?交?, 同?时?附?上?相?关?的?命?令?和?参?数?. 无?论?是?HTTP或?HTTPS, 一?个?请?求?都?有?以?下?内?容?组?成?:






  • CloudStack API URL: 这?是?Web服?务?API入?口?(例?如?, http://www.cloud.com:8080/client/api)


  • 命?令?: 你?想?要?执?行?的?Web服?务?命?令?, 比?如?开?启?一?个?虚?拟?机?或?创?建?一?个?磁?盘?卷?


  • 参?数?: 命?令?所?需?的?任?何?必?要?或?可?选?的?参?数?
  一?个?API GET请?求?的?样?例?看?起?来?像?这?样?:



http://localhost:8080/client/api?command=deployVirtualMachine&serviceOfferingId=1&diskOfferingId=1&templateId=2&zoneId=4&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ&signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D
  更容易读的方式:



http://localhost:8080/client/api
?command=deployVirtualMachine
&serviceOfferingId=1
&diskOfferingId=1
&templateId=2
&zoneId=4 &apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXqjB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ
&signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-58306-1-1.html 上篇帖子: 虚拟化平台cloudstack(1)——介绍 下篇帖子: 虚拟化平台cloudstack(4)——几个异常
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表