热门标签 | 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


推荐阅读
  • jQuery 1.4.4 已经发布,这是自 1.4.3 版本以来不到一个月的又一更新。本次更新主要集中在基于用户反馈的错误修复,并引入了一项新的功能。 ... [详细]
  • ServletContext接口在Java Web开发中扮演着重要角色,它提供了一种方式来获取关于整个Web应用程序的信息。通过ServletContext,开发者可以访问初始化参数、共享数据以及应用资源。 ... [详细]
  • 本文详细介绍了如何在Apache Shiro框架中实现对并发登录人数的限制,包括配置和自定义过滤器的具体步骤。 ... [详细]
  • 本文基于作者使用Flask框架处理后端逻辑和原生JavaScript及jQuery进行前端开发的经验,详细介绍了如何在前后端之间高效地传输JSON数据。文章不仅涵盖了技术实现细节,还提供了实用的代码示例。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 本文详细介绍了如何使用 HTML 和 CSS 对文件上传按钮进行样式美化,使用户界面更加友好和美观。 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • 本文探讨了如何通过WebBrowser控件在用户点击输入框时自动显示图片验证码。该过程可能涉及JavaScript事件的触发与响应。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
  • Microsoft即将发布WPF/E的CTP(Community Technology Preview)和SDK,标志着RIA(Rich Internet Application)技术的新里程碑。更多详情及下载链接请参见MSDN官方页面。 ... [详细]
  • Mario Peshev,自1999年起从事编程工作,现任DevriX首席执行官。本文最初发布于Quora,探讨了计算机技术与编程语言的区别及其对软件开发的影响。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 开发工具WebDeveloper1.1.8https:addons.mozilla.orgen-USfirefoxaddon60以工具栏的形式对网页的(X)HTML、脚本、多媒体、 ... [详细]
  • 尝试在数据库中查询数据并在datatables中异步显示时总是报错。有人帮我看下吗,好像是这个json的格式出问题,我看了firebug,应该是servlet返回的json数据格式问题,但因为新 ... [详细]
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社区 版权所有