Java版OpenStack-API开发实例二则

云计算 OpenStack
本文介绍了两种Java版本的OpenStack-API,分别是JCoulds 和 OpenStack4j,供大家学习参考。

本文介绍了两种Java版本的OpenStack-API,分别是JCoulds 和 OpenStack4j,供大家学习参考。

Java版OpenStack-API开发实例二则

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.举例

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

4.测试效果:

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

#p#

Java版OpenStack-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.举例:

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

4.使用效果

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

博文出处:http://blog.csdn.net/dapao123456789/article/details/44839177

责任编辑:Ophira 来源: AK48的专栏
相关推荐

2015-05-20 13:17:55

OracleWeb应用开发开发框架

2009-08-12 16:33:37

.NET生成缩略图

2011-03-04 15:12:10

磁盘阵列恢复

2015-08-04 11:13:42

中小企业云计算运维实践

2022-07-24 20:58:34

tmuxLinux

2015-11-03 09:51:58

OpenStackAPI应用程序开发

2011-12-15 11:19:08

JavaNIO

2013-07-26 09:29:46

OpenStack平台开源云计算管理平台OpenStack基金

2011-07-26 10:44:15

Sencha Touc

2010-07-21 16:53:33

telnet命令

2017-05-09 17:00:22

OpenStack暂停搁置

2021-08-12 18:49:41

DataStreamAPI注册

2014-11-25 11:25:48

HP Helion惠普OpenStack

2013-12-09 14:29:13

OpenStack命令行工具API

2020-02-04 10:05:54

LinuxWeb命令

2014-07-17 08:52:11

Android LAPI

2015-04-24 09:52:32

OpenStackCloudFoundrPaaS

2011-11-18 16:17:55

OpenStack实例

2014-05-14 16:02:51

OpenStack测试红帽
点赞
收藏

51CTO技术栈公众号