华为云操作系统

云操作系统  时间:2021-02-28  阅读:()
eSDKCloudV100R005C50SPC001开发指南(FusionSphereOpenStack,Native,Java)文档版本01发布日期2016-02-17华为技术有限公司版权所有华为技术有限公司2016.
保留一切权利.
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播.
商标声明和其他华为商标均为华为技术有限公司的商标.
本文档提及的其他所有商标或注册商标,由各自的所有人拥有.
注意您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内.
除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证.
由于产品版本升级或其他原因,本文档内容会不定期进行更新.
除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保.
华为技术有限公司地址:深圳市龙岗区坂田华为总部办公楼邮编:518129网址:http://www.
huawei.
com客户服务邮箱:support@huawei.
com客户服务电话:4008302118文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司i前言概述本文档结合Demo以Java语言为例,详细的描述了FusionSphereOpenStackSDK的接口开发方法,使用方法.
读者对象本文档主要适用于:l与OpenStack有对接需求的应用开发者,非OpenStack开发或操作人员.
符号约定在本文中可能出现下列标志,它们所代表的含义如下.
符号说明用于警示紧急的危险情形,若不避免,将会导致人员死亡或严重的人身伤害.
用于警示潜在的危险情形,若不避免,可能会导致人员死亡或严重的人身伤害.
用于警示潜在的危险情形,若不避免,可能会导致中度或轻微的人身伤害.
用于传递设备或环境安全警示信息,若不避免,可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果.
"注意"不涉及人身伤害.
用于突出重要/关键信息、最佳实践和小窍门等.
"说明"不是安全警示信息,不涉及人身、设备及环境伤害.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)前言文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司ii修改记录文档版本发布日期修改说明012016-02-17第一次正式发布.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)前言文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司iii目录前言.
ii1概述.
11.
1背景.
21.
2系统架构.
22配套资源.
33SDK接口说明.
53.
1SDKforJava接口文档.
63.
2SDK源码包.
63.
3RESTAPI与SDK接口.
74使用API.
104.
1开发环境搭建.
114.
1.
1开发环境准备.
114.
1.
2SDK开发资源准备.
114.
1.
3导入开发资源.
114.
2使用SDK调用API.
164.
2.
1鉴权认证.
164.
2.
2发送API请求.
164.
3API异常.
175场景Demo.
185.
1场景描述.
195.
2资源准备.
195.
3场景实现过程.
195.
3.
1场景实现流程.
205.
3.
2流程对应实现.
206日志功能.
296.
1日志文件.
306.
1.
1日志资源.
306.
1.
2文件命名规则和存储路径.
306.
1.
3日志文件生成原则.
316.
1.
4日志内容格式.
316.
2日志级别和级别修改.
32eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)目录文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司iv6.
3日志分析.
326.
3.
1分析方法.
326.
3.
2分析样例.
326.
3.
2.
1鉴权异常.
336.
3.
2.
2网络连接异常.
337附录.
357.
1缩略词.
36eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)目录文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司v1概述1.
1背景1.
2系统架构eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)1概述文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司11.
1背景本文档主要介绍FusionSphereOpenStack系统服务端提供的北向接口RestAPI使用指南,通过开发环境搭建,接口调用方法介绍,并结合具体的场景Demo,以直观的形式展现如何基于FusionSphereOpenStackAPI接口,进行应用开发.
本指南中所使用的API和Demo代码都随本指南一起开放,开发者可以基于《FusionSphereOpenStackAPICompleteReference》文档,根据具体需求自由地修改已有接口代码,增加新的接口等.
希望本指南能起到抛砖引玉的作用,指导开发者快速学会OpenStackAPI接口开发的方法,结合具体的业务需求进行相应的业务开发工作.
本指南中代码的实现以Java语言为例进行说明,开发者可以根据自己开发环境的要求,选择Python、C#、PHP、Ruby等合适的开发语言进行开发.
1.
2系统架构FusionSphereOpenStackSDK在系统中定位如下图所示.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)1概述文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司22配套资源产品版本配套要求本指南中所有使用的API接口,基于以下产品、版本进行开发验证.
如使用其他版本,请自行修改适配.
工具名称版本要求FSPV100R005C10SPC100FCV100R005C10SPC100FSPAPI接口文档V100R005C10SPC100二次开发资源表2-1开发资源名称下载路径DemoeSDKCloudV100R005C50SPC001Demo01(FusionSphereOpenStack,Native,Java).
zip1.
登录http://support.
huawei.
com/enterpriese.
2.
选择"技术支持".
3.
单击"软件".
4.
选择"行业解决方案>eSDK解决方案>eSDKCloud>V100R005C50SPC001",获取SDK开发包.
开发接口参考文档eSDKCloudV100R005C50SPC001APIReference01(FusionSphereOpenStack,Native,Java).
zip1.
登录http://support.
huawei.
com/enterpriese.
2.
选择"技术支持".
3.
单击"文档".
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)2配套资源文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司3开发资源名称下载路径SDK开发指南4.
选择"行业解决方案>eSDK解决方案>eSDKCloud>V100R005C50SPC001",获取.
eSDKCloudV100R005C50SPC001开发指南01(FusionSphereOpenStack,Native,Java).
zipeSDKCloud开发指南(FusionSphereOpenStack,Native,Java)2配套资源文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司43SDK接口说明3.
1SDKforJava接口文档3.
2SDK源码包3.
3RESTAPI与SDK接口eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)3SDK接口说明文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司53.
1SDKforJava接口文档eSDKCloudV100R005C50SPC001APIReference01(FusionSphereOpenStack,Native,Java).
zip提供了JavaSDK的接口说明,如下图所示:左边的APIList与OpenStack各组件相对应,右边提供了API的接口定义、输入输出参数说明以及使用范例.
3.
2SDK源码包eSDKCloudV100R005C50SPC001Demo01(FusionSphereOpenStack,Native,Java).
zip提供了Java语言的SDK的源码,包括API实现的源码以及Demo的实现源码,解压后,可以看到如下架构的源码,在4.
1.
3章节将会详细介绍.
文件夹描述信息.
/bin/源码编译文件夹.
/src/工程源码文件夹.
/src/com/huawei/esdk/fusionopenstack/demoDemo工程源码文件夹.
/src/com/huawei/esdk/fusionopenstack/localSDK源码文件夹.
/src/com/huawei/esdk/fusionopenstack/test工程测试代码文件夹.
/src/log4j.
properties日志属性文件eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)3SDK接口说明文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司6文件夹描述信息.
/src/params.
properties存放Demo参数配置文件.
/WebContent/Web工程源码文件3.
3RESTAPI与SDK接口目前开放9个资源类,接口共计49个,接口与FusionSphereOpenStackAPI的对照关系如下表所示.
根据此表格,可以快速查询相应的SDK接口.
组件APISDK资源类SDK接口Keystone鉴权AuthenticateResourceauthenticateCinder创建卷VolumeResourcecreateVolume删除卷deleteVolume查询卷概要信息列表listVolumes查询卷详细信息列表listVolumesDetail查询单独卷getVolume更新卷updateVolumeNeutron创建网络NetworkResourcecreateNetwork删除网络deleteNetwork批量创建网络batchCreateNetworks更新网络updateNetwork查询网络listNetworks查询网络详情getNetwork创建端口PortResourcecreatePort批量创建端口batchCreatePorts更新端口updatePort删除端口deletePort查询端口列表listPorts查询端口getPorteSDKCloud开发指南(FusionSphereOpenStack,Native,Java)3SDK接口说明文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司7组件APISDK资源类SDK接口创建子网SubnetResourcecreateSubnet批量创建子网batchCreateSubnets更新子网updateSubnet删除子网deleteSubnet查询子网列表listSubnets查询子网getSubnetGlance创建镜像ImageResourcecreateImage更新镜像updateImage更新镜像updateImageT获取镜像列表信息listImages查询单个镜像信息getImageDetail删除单个镜像deleteImageNova创建云主机规格FlavorResourcecreateFlavor删除云主机规格deleteFlavor查询云主机规格列表listFlavors查询云主机规详情getFlavorDetail查询详细规格列表listFlavorsDetail查询云主机列表ServerResourcelistServers查询云主机详情列表listServersDetail创建云主机createServer调整云主机规格resizeServer删除云主机deleteServer云主机挂载卷ServiceResourceattachVolume云主机卸载卷detachVolume查询云主机上所挂卷的信息listAttachedVolumes挂载网卡attachNic查询云主机网卡列表listNicseSDKCloud开发指南(FusionSphereOpenStack,Native,Java)3SDK接口说明文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司8组件APISDK资源类SDK接口查询指定云主机网卡信息getNic启动云主机startServer停止云主机stopServereSDKCloud开发指南(FusionSphereOpenStack,Native,Java)3SDK接口说明文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司94使用API4.
1开发环境搭建4.
2使用SDK调用API4.
3API异常eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)4使用API文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司104.
1开发环境搭建4.
1.
1开发环境准备在进行二次开发之前,需要准备好以下开发工具环境.
工具名称和版本要求如下表所示.
工具名称版本要求JDKJavaDevelopmentKit1.
6.
0及以上版本EclipseJavaEEIDEforWebDevelopers1.
3.
1.
20100916-1202TomcatTomcat7.
0版本FSP系统V100R005C104.
1.
2SDK开发资源准备eSDKFusionSphereOpenStack系统提供以下资源支撑二次开发:解压eSDKCloudV100R005C50SPC001Demo01(FusionSphereOpenStack,Native,Java).
zip,获得源码文件,在WebContent\WEB-INF\lib文件夹中找到进行二次开发所需的JAR文件,文件列表如下:l接口与Demo源码src目录下提供了API和Demo的实现源码.
l二次开发JAR文件commons-codec-1.
6.
jar----ApacheCommons库文件.
commons-io-2.
4.
jar----ApacheCommons库文件.
commons-logging-1.
1.
3.
jar----ApacheCommons库文件.
gson-2.
2.
2.
jar----Json解释库.
hamcrest-core-1.
3.
jar----hamcrest的核心库文件.
httpclient-4.
2.
3.
jar----httpClient库文件.
httpcore-4.
2.
2.
jar----httpClient核心库文件.
httpmime-4.
2.
3.
jar----httpClient库文件.
jackson-1.
9.
7.
jar----Json解释库.
junit-4.
11.
jar----JUnit调试库.
log4j-1.
2.
16.
jar----java日志库.
org.
restlet-2.
2.
1.
jar----restlet库.
org.
restlet.
ext.
slf4j-2.
2.
1.
jar----restlet日志库.
rivendell-annotation-1.
0.
jar----注解库.
slf4j-api-1.
7.
5.
jar----日志API.
slf4j-log4j12-1.
7.
5.
jar----java日志库.
4.
1.
3导入开发资源导入FSPDemo工程.
背景信息导入eSDKFSPDemo工程源文件,了解Demo相关功能,通过Native工程进行二次开发.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)4使用API文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司11操作步骤步骤1打开Eclipse,单击菜单栏的"File>Import.
.
.
",系统显示"Import"窗口.
步骤2选择"General>ExistingProjectsintoWorkspace",如图4-1所示.
图4-1Import步骤3单击"下一步".
系统显示"ImportProjects"窗口.
步骤4单击"Browse",选择"FusionSphere_OpenStack_Demo_Java_V1.
5.
50"工程,如图4-2所示.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)4使用API文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司12图4-2ImportProjects步骤5单击"Finish".
完成FusionSphere_OpenStack_Demo_Java_V1.
5.
50工程的导入.
----结束设置Demo工程的编码格式步骤1在Demo工程上单击右键,在弹出的菜单中选择"Properties".
系统默认打开"Resource"窗口.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)4使用API文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司13步骤2设置编码格式为"UTF-8",单击"OK",完成编码格式设置,如图4-3所示.
图4-3SettingtheDemoEncodingFormat----结束Demo架构本文档提供的Demo基于B/S架构,工程模块如图4-4所示.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)4使用API文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司14图4-4DemoArchitecture工程结构说明如下:src目录结构:|-demo目录:存放demo运行所需资源包.
|--factory:工厂类包.
|--servlet:业务层,处理浏览器发来的请求.
调用Native接口中提供的接口获取eSDKFO子系统的业务能力.
|--utils:用于存放工具类,读取运行Demo所需的参数.
|-local目录:存放Native接口源码.
|--impl:接口实现包.
|--model:接口model层,存放接口model.
|--resource:接口定义层.
|-test目录:存放Native接口测试类.
|-log4j.
properties:日志属性文件.
|-params.
properties:存放Demo参数配置文件.
WebContent目录结构:|-css:用于存放层叠样式表(CSS文件).
|-js:Demo视图页面的JavaScript库.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)4使用API文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司15|-pages:Demo视图页面的HTML资源.
|--index.
html:默认主视图.
|--interface:每个接口对应的主视图.
|--description:接口说明页签的视图.
|--execution:接口执行页签的视图.
|--sourcecode:接口调用过程的源代码展示视图.
|-pic:Demo视图页面的多媒体库.
|-WEB-INF/lib:存放项目中的Jar库.
|-WEB-INF/web.
xml:存放项目中的JSP文件.
4.
2使用SDK调用API4.
2.
1鉴权认证对于Openstack的API操作来说,大量的命令都依赖相关用户的token来完成,所以首先要通过鉴权认证获取token.
//创建配置实例ClientProviderBeanbean=newClientProviderBean();bean.
setServerAddr("az1.
dc1.
fusionsphere.
com");//设置服务器地址,当前仅支持域名访问bean.
setServerPort("443");//设置服务器端口号bean.
setHttpType("https");//设置服务器,默认https//获取鉴权接口实例AuthenticateResourceauth=ServiceFactory.
getService(AuthenticateResource.
class,bean);AuthenticateReqreq=newAuthenticateReq();Identityidentity=newIdentity();//设置鉴权方式,本例使用password鉴权,输入UserID及Passwordreq.
setIdentity(identity.
password("49e94459d1ea44b08d1441dca3be3681","Huawei@123"));//调用鉴权接口,获取鉴权登陆信息AuthenticateRespresp=auth.
authenticate(req);System.
out.
println(newGson().
toJson(resp));4.
2.
2发送API请求【样例】使用SDK调用API来查询云主机列表://导入所需类库importcom.
google.
gson.
Gson;importcom.
huawei.
esdk.
fusionopenstack.
local.
ServiceFactory;importcom.
huawei.
esdk.
fusionopenstack.
local.
model.
ClientProviderBean;importcom.
huawei.
esdk.
fusionopenstack.
local.
model.
keystone.
AuthenticateReq;importcom.
huawei.
esdk.
fusionopenstack.
local.
model.
keystone.
AuthenticateResp;importcom.
huawei.
esdk.
fusionopenstack.
local.
model.
keystone.
Identity;importcom.
huawei.
esdk.
fusionopenstack.
local.
model.
nova.
ListServersReqEx;importcom.
huawei.
esdk.
fusionopenstack.
local.
model.
nova.
ListServersResp;importcom.
huawei.
esdk.
fusionopenstack.
local.
resources.
keystone.
AuthenticateResource;importcom.
huawei.
esdk.
fusionopenstack.
local.
resources.
nova.
ServerResource;publicclassDemo{publicstaticvoidmain(String[]args){//创建配置实例ClientProviderBeanbean=newClientProviderBean();bean.
setServerIp("az1.
dc1.
fusionsphere.
com");//设置服务器地址bean.
setServerPort("443");//设置服务器端口号bean.
setHttpType("https");//设置服务器,默认https//获取鉴权接口实例AuthenticateResourceauth=ServiceFactory.
getService(AuthenticateResource.
class,bean);AuthenticateReqreq=newAuthenticateReq();Identityidentity=newIdentity();//设置鉴权方式,本例使用password鉴权,输入UserID及Passwordreq.
setIdentity(identity.
password("49e94459d1ea44b08d1441dca3be3681","Huawei@123"));//调用鉴权接口,获取鉴权登陆信息eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)4使用API文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司16AuthenticateRespresp=auth.
authenticate(req);System.
out.
println(newGson().
toJson(resp));//获取云主机接口实例ServerResourceserver=ServiceFactory.
getService(ServerResource.
class,bean);//创建查询请求实例ListServersReqExlistServersReqEx=newListServersReqEx();//设置查询条件listServersReqEx.
setLimit(10);//执行查询云主机列表接口ListServersResplistServersResp=server.
listServers(listServersReqEx);//打印查询结果System.
err.
println(newGson().
toJson(listServersResp));}}其他接口的调用方法请参考接口说明中的代码示例.
4.
3API异常API在执行过程中可能会遇到的错误码如下表所示:错误码错误描述建议解决方案2130000400BadRequestError请求错误,请检查请求信息的正确性2130000401UnauthorizedError未鉴权,请检查鉴权请求信息是否正确2130000404NotFoundError找不到地址,请检查访问对象或地址是否存在2130000405MethodNotAllowedError方法操作不允许,请检查是否具有操作权限2130000500InternalServerError服务端异常,请检查服务端2130001001CommunicationError网络连接错误,请检查网络连接2130000020eSDKError内部错误,请联系技术人员其他错误码及错误信息请参考《OpenStackAPICompleteReference》.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)4使用API文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司175场景Demo5.
1场景描述5.
2资源准备5.
3场景实现过程eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司185.
1场景描述用户A欲创建一云主机想要创建一台云主机名称为server01,系统使用RedHat5.
9镜像,规格采用2GB内存,20GB本地磁盘并挂载10GB磁盘,使用共享外部网络.
5.
2资源准备准备FusionSphereOpenStack环境,例如当前访问环境地址:az1.
dc1.
fusionsphere.
com,访问端口:443,用户ID(49e94459d1ea44b08d1441dca3be3681),环境中已存在所需的RedHat5.
9镜像(3b728e91-ea82-4a06-abc2-a56b15a2bceb)等.
说明FusionSphereOpenStack目前仅支持域名访问.
5.
3场景实现过程eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司195.
3.
1场景实现流程5.
3.
2流程对应实现步骤1运行Demo,效果如下图所示.
l描述:用于描述接口及参数信息.
l执行:用于演示接口调用过程.
l源码:用于说明Demo接口执行过程.
步骤2填写鉴权配置信息.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司20步骤3修改配置文件"FusionSphereOpenStackSDKJavaV1.
5.
50\src\params.
properties".
#ConfigurationfileabsolutepathpropertyFilePath=D:\\FusionSphereOpenStackSDKJavav1.
5.
50\\src\\params.
properties#AccesstypehttpType=https#ServeraddressserverAddr=az1.
dc1.
fusionsphere.
com#AccessportserverPort=443#UserIDuserId=ca7159dfa9974907914a62709bf1f580#Passwordpassword=Huawei@123步骤4创建自定义规格.
创建规格flavor01,内存2048MB,CPU2个,硬盘大小20GB,执行效果如图.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司21接口调用示例:CreateFlavorReqcreateFlavorReq=newCreateFlavorReq();createFlavorReq.
setName("flavor001");createFlavorReq.
setRam(2048);createFlavorReq.
setVcpus(2);createFlavorReq.
setDisk(20);CreateFlavorRespresp=flavor.
createFlavor(createFlavorReq);步骤5查询自定义规格.
输入查询条件,检测刚刚创建的镜像规格是否可用.
接口调用示例:eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司22ListFlavorsDetailReqlistFlavorsDetailReq=newListFlavorsDetailReq();listFlavorsDetailReq.
setMinDisk("20");listFlavorsDetailReq.
setMinRam("2048");ListFlavorsDetailRespresp=flavor.
listFlavorsDetail(listFlavorsDetailReq);步骤6创建自定义网络.
创建网络network01,共享外部网络,执行结果如下图所示.
接口调用示例:CreateNetworkReqcreateNetworkReq=newCreateNetworkReq();createNetworkReq.
setName("network01");createNetworkReq.
setShared(true);createNetworkReq.
setRouterExternal(true);CreateNetworkRespresp=server.
createNetwork(createNetworkReq);步骤7查询创建的网络输入查询条件,检查自定义网络状态,结果如下图所示.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司23接口调用示例:ListNetworksReqlistNetworksReq=newListNetworksReq();listNetworksReq.
setName("network01");listNetworksReq.
setShared(true);ListNetworksRespresp=server.
listNetworks(listNetworksReq);步骤8创建自定义磁盘.
创建磁盘volume01,大小10GB,执行结果如下图所示.
接口调用示例:CreateVolumeReqcreateVolumeReq=newCreateVolumeReq();createVolumeReq.
setName("volume01");eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司24createVolumeReq.
setSize(10);CreateVolumeRespresp=server.
createVolume(createVolumeReq);步骤9查询磁盘.
通过查询接口查询磁盘状态,结果如下图所示.
接口调用示例:ListVolumesDetailReqlistVolumesDetailReq=newListVolumesDetailReq();listVolumesDetailReq.
setName("volume01");listVolumesDetailReq.
setLimit(10);listVolumesDetailReq.
setOffset(0);ListVolumesDetailRespresp=server.
listVolumesDetail(listVolumesDetailReq);步骤10查询镜像.
查询系统镜像,通过镜像创建云主机,查询结果如下图所示.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司25接口调用示例:ListImagesReqlistImagesReq=newListImagesReq();ListImagesRespresp=image.
listImages(listImagesReq);步骤11创建云主机.
通过上述步骤获取的资源创建云主机,执行步骤及结果如下图所示.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司26接口调用示例:CreateServerReqcreateServerReq=newCreateServerReq();createServerReq.
setImageRef("3b728e91-ea82-4a06-abc2-a56b15a2bceb");createServerReq.
setFlavorRef("c182b7b5-4437-4137-acd9-76c3273b494d");createServerReq.
setName("server01");Listlist=newArrayList();Networksnetworks=newNetworks();networks.
setUuid("13d00cf0-47c7-4b19-a84a-171259e93778");list.
add(networks);createServerReq.
setNetworks(list);Listblock2=newArrayList();BlockDeviceMappingV2e=newBlockDeviceMappingV2();e.
setBootIndex("0");e.
setSourceType("volume");e.
setUuid("109c1f4f-a74f-4ba2-8e0c-8d297aa6aa55");block2.
add(e);createServerReq.
setBlockDeviceMappingV2(block2);CreateServerResplistServersResp=server.
createServer(createServerReq);步骤12查询云主机.
通过云主机名称查询创建云主机状态,效果如下图所示.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司27接口调用示例:ListServersDetailReqExreqEx=newListServersDetailReqEx();reqEx.
setName("server01");ListServersDetailRespresp=server.
listServersDetail(reqEx);----结束eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)5场景Demo文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司286日志功能SDK提供了日志功能的接口,当系统出现问题需要定位时,可以通过启用日志来获取更多的信息.
每个日志记录都提供有关访问请求的详细信息,可以帮助您了解您的客户群并了解您的账单.
6.
1日志文件6.
2日志级别和级别修改6.
3日志分析eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)6日志功能文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司296.
1日志文件6.
1.
1日志资源接口表6-1SDK资源类SDK接口LogUtilinfLogForRest说明通过修改infLogForRest接口的实现类来修改日志的输出格式.
配置文件6.
1.
2文件命名规则和存储路径文件命名规则日志以文件形式存储,正在记录的日志文件名为"openstack_log.
log";日志文件根据大小备份,备份后的文件名为"openstack_log.
log.
x"(x表示数字1、2、3……),每个日志文件的大小为10M,日志文件总数为50.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)6日志功能文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司30存储路径日志路径:默认配置为${user.
dir}/logs,即如果是web应用则日志打印在tomcat的bin/logs目录下.
如需修改,则可以通过修改src中的"log4j.
properties"文件来更改.
6.
1.
3日志文件生成原则日志信息要充分有效而不冗余,在系统、业务逻辑运行异常以及对系统、业务逻辑有重要影响的地方都要有日志记录.
日志文件名可通过配置文件log4j.
properties的配置项file设置,日志文件大小通过配置项MaxFileSize修改,最大保存数通过配置项MaxBackUpIndex修改.
6.
1.
4日志内容格式日志格式为:日志时间|级别|接口所属业务|接口类型|接口协议|接口名称|源端设备|宿端设备|事务标识|请求时间|应答时间|请求参数|结果码|应答参数.
内容项说明日志时间记录日志的时间,精确至毫秒;格式为yyyy-MM-ddHH:mm:sss.
级别支持INFO级别.
接口所属业务接口所属的产品,包括UC、IVS、TP、FusionSphere、Storage等.
接口类型接口类型:北向接口南向接口注:北向接口指的是FSPSDK与第三方应用交互的接口,南向接口指的是FSPSDK与FSP产品之间交互的接口.
接口协议接口协议分为SOAP(细分ParlayX)、Rest、COM、Native、HTTP+XML,SMPP.
接口名称接口的名称.
源端设备发送消息设备/模块的唯一标识字符串,一般是IP地址,本地调用时显示空.
宿端设备接收消息设备/模块的唯一标识字符串,一般是IP地址,本地调用时显示空.
事务标识唯一标识接口消息所属事务,一般用于异步消息中请求与响应消息的关联,业务模块自定义,没有则显示空.
请求时间北向接口收到请求的时间,南向接口发起请求的时间,格式为yyyy-MM-ddHH:mm:sss.
应答时间北向接口应答的时间,南向接口收到应答的时间,格式为yyyy-MM-ddHH:mm:sss.
请求参数请求参数,涉及用户敏感信息时,显示*(比如即时消息,用*替代),涉及多媒体信息时,显示*.
eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)6日志功能文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司31内容项说明结果码接口处理结果,0或不显示表示成功,其它情况显示错误码.
应答参数应答参数,涉及用户敏感信息时,显示*(例如即时消息,用*替代),涉及多媒体信息时,显示*.
6.
2日志级别和级别修改日志级别当系统出现问题需要定位且当前的日志无法满足要求时,可以通过修改日志的级别来获取更多的信息.
其中DEBUG日志信息最丰富,ERROR日志信息最少.
具体说明如下:DEBUG:调试级别INFO:信息级别WARN:告警级别ERROR:错误级别运行日志级别修改可以通过修改src中的"log4j.
properties"文件来更改日志级别.
正常情况下运行日志级别为INFO,调试时需要修改为DEBUG.
修改项如下所示:log4j.
rootLogger:修改整个eSDK服务器的日志级别,调试时修改为DEBUG.
6.
3日志分析6.
3.
1分析方法根据错误发生时间、日志级别(ERROR、WARN)及操作的相关信息,在"${user.
dir}/logs"路径下找到日志文件"openstack_log.
log",然后根据日志的错误记录分析相关问题.
6.
3.
2分析样例eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)6日志功能文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司326.
3.
2.
1鉴权异常错误信息当调用接口时出现错误码401,可能是账户、密码输入有误,或者账户过期冻结,或者没有权限等原因.
根据已有案例和经验对问题进行预估如果已有案例已经搜集此问题,可以根据已有案例中的解决方法解决该问题.
如果没有相关案例参考,执行下面的步骤进行问题定位.
步骤1查找日志信息.
根据错误发生时间、日志级别(ERROR、WARN)及操作的相关信息,在"${user.
dir}/logs"路径的日志文件"openstack_log.
log"中查找相关的调试日志,日志示例如下.
[160128143931]INFORestletClient[main]:2016-01-2814:39:31|error|FSP|2|Rest|AuthenticateResource#authenticate|172.
24.
0.
231|identity.
az1.
dc1.
fusionsphere.
com||2016-01-2814:39:29|2016-01-2814:39:31|url={https://identity.
az1.
dc1.
fusionsphere.
com:443/identity/v3/auth/tokens},method={POST},body={{"auth":{"identity":{"methods":["password"],"password":{"user":{"id":"f9dc3eac6a2349e785c0a75f6e336c31","password"401|{"errorCode":"2130000401","errorDes":"UnauthorizedError"}|步骤2根据错误日志信息分析错误原因.
根据日志信息"UnauthorizedError",分析失败的原因是提供的签名不匹配.
可能的原因是:提供的账户、密码有误.
步骤3检查账户、密码设置是否有误.
----结束6.
3.
2.
2网络连接异常错误信息当调用接口时出现错误码-1时,一般属于sdk的内部错误,比如网络连接异常等问题.
根据已有案例和经验对问题进行预估如果已有案例已经搜集此问题,可以根据已有案例中的解决方法解决该问题.
如果没有相关案例参考,执行下面的步骤进行问题定位.
步骤1查找日志信息.
根据错误发生时间及操作的相关信息,在"${user.
dir}\logs"路径的日志文件"openstack_log.
log"中查找相关的调试日志,日志示例如下.
[160128144629]INFORestletClient[main]:2016-01-2814:46:29|error|FSP|2|Rest|AuthenticateResource#authenticate|172.
24.
0.
231|identity.
az1.
dc2.
fusionsphere.
com||2016-01-2814:44:24|2016-01-2814:46:29|url={https://identity.
az1.
dc2.
fusionsphere.
com:443/identity/v3/auth/tokens},method={POST},body={{"auth":{"identity":{"methods":["password"],"password":{"user":eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)6日志功能文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司33{"id":"f9dc3eac6a2349e785c0a75f6e336c31","password"1001|{"errorCode":"2130001001","errorDes":"CommunicationError"}|步骤2根据错误日志信息分析错误原因.
基于日志信息"CommunicationError"分析,可以确定是连接异常问题.
步骤3检查服务地址和端口是否拼写正确.
如果拼写无误,则需要找相关服务管理人员定位问题.
----结束eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)6日志功能文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司347附录7.
1缩略词eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)7附录文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司357.
1缩略词缩略词英文全名解释FSPFusionSphereOpenStack云计算操作系统FCFusionComputer云操作系统软件FMFusionManager云管理系统软件eSDKCloud开发指南(FusionSphereOpenStack,Native,Java)7附录文档版本01(2016-02-17)华为专有和保密信息版权所有华为技术有限公司36

JustHost俄罗斯VPS有HDD、SSD、NVMe SSD,不限流量低至约9.6元/月

justhost怎么样?justhost服务器好不好?JustHost是一家成立于2006年的俄罗斯服务器提供商,支持支付宝付款,服务器价格便宜,200Mbps大带宽不限流量,支持免费更换5次IP,支持控制面板自由切换机房,目前JustHost有俄罗斯6个机房可以自由切换选择,最重要的还是价格真的特别便宜,最低只需要87卢布/月,约8.5元/月起!总体来说,性价比很高,性价比不错,有需要的朋友可以...

御云(RoyalYun):香港CN2 GIA VPS仅7.9元每月起,美国vps仅8.9/月,续费同价,可叠加优惠

御云怎么样?炎炎暑期即将来临,御云(royalyun)香港、美国服务器开启大特惠模式。御云是新成立的云服务提供商,主要提供香港、美国的云服务器,不久将开启虚拟主机业务。我们的香港和美国主机采用CN2 GIA线路。目前,香港cn2 gia vps仅7.9元每月起,美国vps仅8.9/月,续费同价,可叠加优惠,香港云服务器国内延迟一般在50ms左右,是搭建网站的最佳选择,但是请不要用于违法用途。点击进...

菠萝云:带宽广州移动大带宽云广州云:广州移动8折优惠,月付39元

菠萝云国人商家,今天分享一下菠萝云的广州移动机房的套餐,广州移动机房分为NAT套餐和VDS套餐,NAT就是只给端口,共享IP,VDS有自己的独立IP,可做站,商家给的带宽起步为200M,最高给到800M,目前有一个8折的优惠,另外VDS有一个下单立减100元的活动,有需要的朋友可以看看。菠萝云优惠套餐:广州移动NAT套餐,开放100个TCP+UDP固定端口,共享IP,8折优惠码:gzydnat-8...

云操作系统为你推荐
博客外链求博客外链方法万网核心代理哪里可以注册免费代理?ghostxp3GHOST系统 ghostxp3 ghostxp2 ghostxp1 三者有什么区别?渗透测试网站渗透测试怎么做?申请证书手机申请证书godaddy美国GODADDY 域名支持域名别名解析吗?人人逛街过节了,这儿可真热闹写一段话bt封杀BT下载被封锁了,怎么办,下载不了电影了!商标注册查询官网怎么查商标有没有注册网站优化方案网站优化方案怎么写?
域名网 北京域名注册 vps代理 中国域名交易中心 com域名抢注 virpus ion 新世界电讯 远程登陆工具 绍兴高防 165邮箱 php空间推荐 hkg 空间合租 华为云盘 环聊 海外空间 丽萨 沈阳主机托管 下载速度测试 更多