热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

cloudstack云计算平台的UI设计讲解

UIucloudstack采用的是前后端分离的架构,就是说前端可以选择使用web、swing甚至其它的界面,都可以。我们来看cloudstack的UI信息吧,所有的cloudstack的UI都在{cloudstack_home}/cloudstack/ui目录下。用firefox打开工程,打开firebug,找到log

UI

ucloudstack采用的是前后端分离的架构,就是说前端可以选择使用web、swing甚至其它的界面,都可以。

我们来看cloudstack的UI信息吧,所有的cloudstack的UI都在{cloudstack_home}/cloudstack/ui目录下。

用firefox打开工程,打开firebug,找到login.js,在100行加上断点。

执行登录,这时就会触发断点,让我们看看发生了什么:

最终是使用jquery的ajax来提交post请求给服务器端,也就是说,manager server提供给我们的是一组API,我们可以通过http的请求方式提交请求。

处理http请求

看完了前端,我们继续看一下后端处理。

在web.xml中,我们看到所有的api/请求都会到ApiServlet中处理。

apiServlet
class>com.cloud.api.ApiServletclass>
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:

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.

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:

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.

重启管理服务器.

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

使用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


推荐阅读
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • 本文深入探讨了Ajax的工作机制及其在现代Web开发中的应用。Ajax作为一种异步通信技术,改变了传统的客户端与服务器直接交互的模式。通过引入Ajax,客户端与服务器之间的通信变得更加高效和灵活。文章详细分析了Ajax的核心原理,包括XMLHttpRequest对象的使用、数据传输格式(如JSON和XML)以及事件处理机制。此外,还介绍了Ajax在提升用户体验、实现动态页面更新等方面的具体应用,并讨论了其在当前Web开发中的重要性和未来发展趋势。 ... [详细]
  • from:http:www.myquickphp.comarchives147(请求的跨域服务器不支持常规”?”查询请求时的解决方案)昨天第一次做VIP需求时,发现一 ... [详细]
  • 前端图片合成技术_靠谱的前端需要做哪些准备?
    Web前端开发源于传统的互联网,互联网普及让人才需求量居高不下,随着移动互联网的高速发展,移动终端的前端开发也越来越受到重视, ... [详细]
  • JavaScript与DOM(上)——也适用于新手 – 深入理解JavaScript系列 23
    本文是《JavaScript深度解析》系列文章第23篇(共51篇)文档对象模 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了用Python写网络爬虫-云图相关的知识,希望对你有一定的参考价值。 ... [详细]
  • HTML:  将文件拖拽到此区域 ... [详细]
  • 使用 jQuery 实现页面加载进度条
    页面加载进度条是提升用户体验的重要工具,通过在页面头部显示一个加载状态,并在页面完全加载后隐藏,可以有效减少用户的等待焦虑。本文将详细介绍如何使用 jQuery 实现这一功能。 ... [详细]
  • 在现代Web开发中,HTML5 Canvas常用于图像处理和绘图任务。本文将详细介绍如何将Canvas中的图像导出并上传至服务器,适用于拼图、图片编辑等场景。 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 首先,我有点像jQuerynoob和整个PHPnoob,所以如果这是一个愚蠢的问题,我感到很抱歉(尽管我已经搜索了Internet,尤其是这个网站的上下无法弄清我的意思.错了).另 ... [详细]
  • 项目中的prop()的attr()的jQuery大坑
    说起来惭愧,在现在React横行的年代,自己还在大学的项目里面用jQuery慢慢磨。大一的时候深受《锋利的jQuery》的影响,一直都觉得jQuery是一个特别Niubility的 ... [详细]
author-avatar
afagds
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有