文档章节

基于OpenStack4j进行OpenStack开发

xhHuang
 xhHuang
发布于 2017/08/11 10:55
字数 395
阅读 282
收藏 0

一、说明

项目通过Maven(3.x)进行构建,然后使用的是openstack JAVA版的SDK工具openstack4j。

注意:开发前,必须在主机的hosts文件中添加openstack控制节点的主机信息,如下图所示是在windows系统下修改hosts文件(文件地址:C:\Windows\System32\drivers\etc\hosts)

二、pom.xml设置

pom文件中添加对slf4j-api、slf4j-log4j12和openstack4j的依赖,由于本人开发环境使用的jdk是1.7,所以使用的openstack4j版本为2.x,如果jdk是1.8的话,则可以使用3.x

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.21</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.21</version>
    </dependency>    
    
    <!-- OpenStack4j -->
    <dependency>
	  <groupId>org.pacesys</groupId>
	  <artifactId>openstack4j</artifactId>
	  <version>2.20</version>
	  <classifier>withdeps</classifier>
	</dependency>

三、测试代码

写的java的测试代码如下,实现以下功能:1)创建OSClient实例;2)获取Swfit中container信息;3)新建一个名为xhhuangContainer的container

package com.xhhuang.openstack;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.openstack4j.model.identity.User;
import org.openstack4j.model.storage.object.SwiftAccount;
import org.openstack4j.model.storage.object.SwiftContainer;
import org.openstack4j.model.storage.object.options.CreateUpdateContainerOptions;
import org.openstack4j.openstack.OSFactory;
import org.openstack4j.api.OSClient;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
    	// 开始认证
    	System.out.println("开始认证:");
        OSClient os = OSFactory.builder()
        						.endpoint("http://10.3.1.123:5000/v2.0")
        						.credentials("pipsCloud", "pipsCloudTeam")
        						.tenantName("pipsCloud")
        						.authenticate();
        System.out.println("完成认证:"+os.toString());
        
        System.out.println("获取Swift账户:");
        SwiftAccount swiftAccount = os.objectStorage().account().get();
        System.out.println(swiftAccount);
        
        System.out.println("获取对象存储元数据信息:");
        Map<String, String> metadata = new HashMap<String, String>();
        boolean result = os.objectStorage().account().updateMetadata(metadata);
        System.out.println(result);
        
        System.out.println("获取容器信息:");
        List<? extends SwiftContainer> containers = os.objectStorage().containers().list();
        int containerCount = (int) swiftAccount.getContainerCount();
        
        for(int i=0; i<containerCount; i++){
        	System.out.println(containers.get(i).getName()+containers.get(i).getTotalSize()+"\n");
        }
        
        System.out.println("新建容器:");
        os.objectStorage().containers().create("xhhuangContainer", CreateUpdateContainerOptions.create()
        																					.accessAnybodyRead()
        																					);
        
        
    }
}

测试结果如下:

  • (console端)

  • openstack container查看

 

© 著作权归作者所有

共有 人打赏支持
xhHuang
粉丝 7
博文 36
码字总数 28921
作品 0
武汉
程序员
加载中

评论(2)

xhHuang
xhHuang

引用来自“对象已抛出”的评论

我用fuel+virtualbox搭建的Openstack M版,现在想用openstack4j开发,eclipse是在本机还是在节点
eclipse在本机还是节点都可以 因为在代码的一开始就要连接上openstack。我开发的时候eclipse是在自己的电脑上,而openstack是在机房的
对象已抛出
对象已抛出
我用fuel+virtualbox搭建的Openstack M版,现在想用openstack4j开发,eclipse是在本机还是在节点
开放基础架构新浪潮:互联网巨头背后的OpenStack

2018年5月21-24日,第十七届OpenStack峰会在温哥华盛大开幕,今年峰会的主题为“Open Infrastructure”。凸显出OpenStack基金会积极拥抱变化,主动求变的态度更加清晰,也是OpenStack基金会开...

云科技时代
05/25
0
0
知行合一新华三借OpenStack乘“云”而上

云计算时代,企业如何搭上OpenStack的列车实现“云”路通途?7月14日~15日,首次登录中国大陆的OpenStack Days China峰会上,新华三集团旗下杭州华三通信云计算产品线总裁吴健指出,新华三基...

玄学酱
05/21
0
0
OpenStack centos版安装(一)

OpenStack是一个美国国家航空航天局和Rackspace合作研发的,以Apache许可证授权,并且是一个自由软件和开放源代码项目。 OpenStack是一个云平台管理的项目,这个项目由几个主要的组件组合起来...

蓝狐乐队
2014/04/18
0
0
《云计算架构技术与实践》读书笔记(一):OpenStack概述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/75370853 这位大侠,这是我的公众号:程序员江湖。 分享程序员面试与技术的那些事。...

你的猫大哥
2017/07/19
0
0
浅谈OpenStack平台的安全问题及措施

OpenStack的优势与劣势 Openstack具有三大特点:免费开源、强大的兼客性以及开放性。 Openstack 本身是一个开源、免费的软件,同商业软件相比它给了客户足够的自由度,可以在任何场合使用,O...

凌洛
05/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

原型模式

1、原型模式-定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 克隆(浅度克隆->拷贝值类型或者引用,深度克隆->创建新的对象,开辟新的内存) 例如客户端知道抽象Pro...

阿元
今天
55
0
awk命令扩展使用操作

awk 中使用外部shell变量 示例1 [root@centos01 t1022]# A=888[root@centos01 t1022]# echo "" | awk -v GET_A=$A '{print GET_A}'888[root@centos01 t1022]# echo "aaaaaaaaaaaaa" | aw......

野雪球
今天
47
0
深入解析MySQL视图VIEW

Q:什么是视图?视图是干什么用的? A:视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。   通过视图,可以展现基表的部分数据;...

IT--小哥
今天
52
0
虚拟机学习之二:垃圾收集器和内存分配策略

1.对象是否可回收 1.1引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器值为0的对象就是不可能...

贾峰uk
今天
54
0
smart-doc功能使用介绍

smart-doc从8月份底开始开源发布到目前为止已经迭代了几个版本。在这里非常感谢那些敢于用smart-doc去做尝试并积极提出建议的社区用户。因此决定在本博客中重要说明下smart-doc的功能,包括使...

上官胡闹
昨天
50
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部