介绍两种OpenStack-API(Java版)——jcoulds && openstack4j


Jclouds

1.介绍

jclouds -该API提供云计算环境的可移植抽象层以及云规范特性,支持包括 Amazon, VMWare, Azure, and OpenStack 等云计算平台,其中针对OpenStack,目前支持Nova、cinder、glance、Neutron、Keystone、swift等API接口,但是不支持Ceilometer的API接口。

2.使用与Jar包

官方文档——强烈推荐

http://jclouds.apache.org/guides/openstack/

jcloudsjar包使用maven安装下载管理即可;

3.举例

import com.google.common.collect.ImmutableSet;
import com.google.common.io.Closeables;
import com.google.inject.Module;
import org.jclouds.ContextBuilder;
import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
import org.jclouds.openstack.nova.v2_0.NovaApi;
import org.jclouds.openstack.nova.v2_0.domain.Server;
import org.jclouds.openstack.nova.v2_0.features.ServerApi; import java.io.Closeable;
import java.io.IOException;
import java.util.Set; public class JCloudsNova implements Closeable {
private final NovaApi novaApi;
private final Set<String> regions; public static void main(String[] args) throws IOException {
JCloudsNova jcloudsNova = new JCloudsNova(); try {
jcloudsNova.listServers();
jcloudsNova.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
jcloudsNova.close();
}
} public JCloudsNova() {
Iterable<Module> modules = ImmutableSet.<Module>of(new SLF4JLoggingModule()); String provider = "openstack-nova";
String identity = "demo:demo"; // 项目管理员和用户
String credential = "devstack";// 用户密码 novaApi = ContextBuilder.newBuilder(provider)
.endpoint("http://xxx.xxx.xxx.xxx:5000/v2.0/")//API地址
.credentials(identity, credential)
.modules(modules)
.buildApi(NovaApi.class);
regions = novaApi.getConfiguredRegions();
} private void listServers() {
for (String region : regions) {
ServerApi serverApi = novaApi.getServerApi(region); System.out.println("Servers in " + region); for (Server server : serverApi.listInDetail().concat()) {
System.out.println(" " + server);
}
}
} public void close() throws IOException {
Closeables.close(novaApi, true);
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

4.测试效果:

比较稳定,而且API文档很全,教好理解;


OpenStack4j

1.介绍

针对OpenStack的Web-API,包含Keystone、Nova、Neutron、Glance、Cinder

、Swift、Ceilometer、Heat的API支持,更新速度快,有问题需求及时联系Github可以得到解决。

2.使用与Jar包

官方文档——http://www.openstack4j.com/learn/

http://www.openstack4j.com/javadoc/

OpenStack4j -jar包使用提供的 openstack4j-2.0.1-withdeps-sources.jar即可,注意使用的jdk最好为1.7以上,jdk1.7最佳。java ee 5 或Java ee 6 均可。(使用Myeclipse时,jdk版本为1.6,容易报 version 51 错误。)

3.举例:

        List<String> openStackNetworkList=new ArrayList<String>();
openStackNetworkList.add("df6effa2-a1b5-400a-8ab1-457673591aa1");
String openstackImageId = ""
String openstackFlavorId= "";
String openstackServerName = "";
String openstackZone = "nova:compute2"; ServerCreate sc = Builders.server().name(openstackServerName)
.flavor(openstackFlavorId)
.image(openstackImageId)
.networks(openStackNetworkList)
.availabilityZone(openstackZone)
.build(); // Boot the Server
OSClient os = OSFactory.builder()
.endpoint("http://x.x.x.x:5000/v2.0/")
.credentials("xxx","xxx")
.tenantName("xxx")
.authenticate(); Server server = os.compute().servers().boot(sc);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

4.使用效果

API简单易用;而且支持Ceilometer和Heat,推荐使用。

OpenStack-API开发的更多相关文章

  1. Openstack API 开发 快速入门

    Openstack 做为流行的开源云计算平台,其最大特性是利用其提供的基础设施API,让我们可以以软件的方式来动态管理IAAS资源.Openstack 提供的api是流行的Rest API.     ...

  2. Openstack API 类型 & REST 风格

    目录 目录 Openstack 提供了三种操作方式 Web界面 CIL 指令行 RESTful API REST 风格 RESTFul风格的API设计 基于HTTP协议的RESTful API Ope ...

  3. 第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南

    欢迎查看第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南,该处理器可为开发人员和最终用户提供领先的 CPU 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...

  4. 天气预报API开发

    天气预报API开发 一.        寻觅篇 最近想要跟着视频练习一下利用API开发一个天气预报系统,就在网上找了一下可以用的API,结果好多都已经失效了... 1.       百度车联网天气预报 ...

  5. Openstack api 学习文档 & restclient使用文档

    Openstack api 学习文档 & restclient使用文档 转载请注明http://www.cnblogs.com/juandx/p/4943409.html 这篇文档总结一下我初 ...

  6. 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计

    ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...

  7. ASP.NET Core Web API 开发-RESTful API实现

    ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...

  8. 基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解

    概述:  ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.调用API过程中参数的传递是必须的,本节就来谈谈 ...

  9. API 开发实践

    整个2015年,如果要给自己打上一个标签的话,那应该就是 API. 在各个不同的系统中定制各种 API 框架. 在做商城对接各种电商 ERP 的 API 开发中,我采用的是兼容SHOPEX 的 API ...

  10. 报表引擎API开发入门— EJB程序数据源

    我们前面讲了几个数据源,今天我们来讲一下EJB数据源,这篇讲完我们数据源这部分就讲完了.数据连接不需要直接访问数据库,而是使用EJB做为数据源.FR通过定义程序数据集使用EJB的相关类获取到EJB数据 ...

随机推荐

  1. 小程序--wepy省市区三级联动选择

    产品老哥对项目再一次进行关爱, 新增页面, 新增需求, 很完美........ 不多说, 记录一下新增东西中的省市区联动选择, (这里全国地区信息是在本地, 但不建议这么做, 因为js文件太大.. 建 ...

  2. CF487E Tourists(圆方树+堆+链剖)

    本题解并不提供圆方树讲解. 所以不会圆方树的出门右转问yyb 没有修改的话圆方树+链剖. 方点的权值为点双连通分量里的最小值. 然后修改的话圆点照修,每一个方点维护一个小根堆. 考虑到可能被菊花卡死. ...

  3. 模板 NTT 快速数论变换

    NTT裸模板,没什么好解释的 这种高深算法其实也没那么必要知道原理 #include <cstdio> #include <cstring> #include <algo ...

  4. crm 系统项目(三) 业务

    1. 项目背景 crm系统是某教育平台正在使用的项目,系统主要为 销售部.运营部.教质部门提供管理平台,随着公司规模的扩展,对公司员工的业务信息量化以及信息化建设越来越重要. crm系统为不同角色的用 ...

  5. 数组实例的 entries(),keys() 和 values()

    数组实例的 entries(),keys() 和 values() entries(),keys()和values(),用于遍历数组.它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一 ...

  6. YAML说明

    YAML说明 https://www.cnblogs.com/songchaoke/p/3376323.html XML的简化

  7. JDK+JDBC+MySQL实例及注意事项

    by qx.zhong Hangzhou 29 Jun 2014 开发环境 OS:  Win8.1 x64 JDK: 1.8 SE DB:  MySQL 5.5  Lib:  mysql-connec ...

  8. atitit。企业组织与软件project的策略 战略 趋势 原则 attilax 大总结

    atitit. 企业组织与软件project的策略 战略 趋势 原则 attilax 大总结 1. 战略规划,适当的过度设计 1 2. 跨平台化 1 3. 可扩展性高于一切 1 4. 界面html5化 ...

  9. GNU Linux中的SO_RCVLOWAT和SO_SNDLOWAT说明

    /*********************************************************************  * Author  : Samson  * Date   ...

  10. SQL语句将某字段查询出以逗号隔开

    MySQL的sql语句有好多能够省去server端的复杂处理 1.group_concat 这玩意儿能够实现  将一个字段如id查询出来   成为这种格式:121,122,123,124,125,12 ...