文档章节

01、使用OpenStack4j快速开发对外接口

翰霖学院
 翰霖学院
发布于 2017/07/24 08:59
字数 307
阅读 10
收藏 0
点赞 0
评论 0

在项目中增加maven依赖包

<dependency>
  <groupId>org.pacesys</groupId>
  <artifactId>openstack4j</artifactId>
  <version>3.0.3</version>
  <classifier>withdeps</classifier>
</dependency>

通过权限认证

import org.openstack4j.api.OSClient.OSClientV3;
import org.openstack4j.openstack.OSFactory;
import org.openstack4j.model.common.Identifier;

# use Identifier.byId("domainId") or Identifier.byName("example-domain")
Identifier domainIdentifier = Identifier.byId("domainId");

# unscoped authentication
# as the username is not unique across domains you need to provide the domainIdentifier
OSClientV3 os = OSFactory.builderV3()
                       .endpoint("http://127.0.0.1:5000/v3")
                       .credentials("admin","sample", domainIdentifier)
                       .authenticate();

# project scoped authentication
OSClientV3 os = OSFactory.builderV3()
                    .endpoint("http://127.0.0.1:5000/v3")
                    .credentials("admin", "secret", Identifier.byName("example-domain"))
                    .scopeToProject(Identifier.byId(projectIdentifier))
                    .authenticate();

# domain scoped authentication
# using the unique userId does not require a domainIdentifier
OSClientV3 os = OSFactory.builderV3()
                    .endpoint("http://127.0.0.1:5000/v3")
                    .credentials("userId", "secret")
                    .scopeToDomain(Identifier.byId(domainIdentifier))
                    .authenticate();

# Scoping to a project just by name isn't possible as the project name is only unique within a domain. # You can either use this as the id of the project is unique across domains OSClientV3 os = OSFactory.builderV3() .endpoint("http://127.0.0.1:5000/v3") .credentials("userId", "secret") .scopeToProject(Identifier.byName(projectName), Identifier.byName(domainName)) .authenticate(); # Or alternatively OSClientV3 os = OSFactory.builderV3() .endpoint("http://127.0.0.1:5000/v3") .credentials("userId", "secret") .scopeToDomain(Identifier.byName(domainName)) .authenticate();

常用模块调用

// Find all Users
List<? extends User> users = os.identity().users().list();
// List all Tenants
List<? extends Tenant> tenants = os.identity().tenants().list();
// Find all Compute Flavors
List<? extends Flavor> flavors = os.compute().flavors().list();
// Find all running Servers
List<? extends Server> servers = os.compute().servers().list();
// Suspend a Server
os.compute().servers().action("serverId", Action.SUSPEND);
// List all Networks
List<? extends Network> networks = os.networking().network().list();
// List all Subnets
List<? extends Subnet> subnets = os.networking().subnet().list();
// List all Routers
List<? extends Router> routers = os.networking().router().list();
// List all Images (Glance)
List<? extends Image> images = os.images().list();
// Download the Image Data
InputStream is = os.images().getAsStream("imageId");

© 著作权归作者所有

共有 人打赏支持
翰霖学院
粉丝 1
博文 67
码字总数 45112
作品 0
济南
高级程序员
基于 Java 的 OpenStack 客户端--OpenStack4j

OpenStack4j是一个用Java开发的开源的OpenStack客户端,并且抽象出了如下几个类别:Ientity V2、Identity V3、Compute、Image、Network、Block Storage、Object Storage、Telemetry、Orchest...

匿名 ⋅ 2016/10/24 ⋅ 0

跨平台移动应用开发引擎CrossApp推出正式版V0.3.0

跨平台移动应用开发引擎CrossApp终于推出了正式版本V0.3.0, 同时对外放出了与原生应用的详细横评数据,在数据中看,CrossApp已经与原生性能近似,官方也正是对外宣称,开发者可以开始免费使...

大鸡蛋 ⋅ 2014/07/22 ⋅ 23

.Net Micro Framework 快速入门

一、简介 Microsoft .NET Micro Framework 2001年由微软研究院开始研发,并随后在其MSN Direct项目中使用该技术,2007年9月微软对外发布2.0,2008年10月 V3.0、2009年11月 V4.0、2010年5月 ...

物联网积木 ⋅ 2014/05/21 ⋅ 1

【发布】JEECG 3.6.3版本发布 企业级JAVA快速开发平台

JEECG 3.6.3版本发布 企业级JAVA快速开发平台 JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台。引领新的开发模式(OnlineCoding模式->代码生成器模式->手工MERGE智能开发)...

Jeecg ⋅ 2016/04/12 ⋅ 0

iMatrix平台为什么被称为java快速开发平台

java快速开发平台是基于java语言进行开发,采用SOA 技术架构,进行服务化的分割包装,通过ESB 注册管理起来,ESB 主要完成消息转换、路由等通信机制,最后通过BPM 进行流程编排,从而把一些服...

iMatrix ⋅ 2014/07/08 ⋅ 0

keystone rest api V3 版本测试

用户认证,默认域的token curl -i -H "Content-Type: application/json" -d '{ }' http://localhost:5000/v3/auth/tokens ; echo HTTP/1.1 201 CreatedX-Subject-Token: ecfc51857b5747d2b64......

zhailibao ⋅ 2016/01/15 ⋅ 0

C++轻量级通用插件框架平台--X3C

X3 C++ PluginFramework 代号为X3的C++轻量级通用插件框架平台是一套通用的C++轻量级插件体系,没有使用MFC、ATL、COM。可在Windows和Linux下编译运行。应用程序可以基于X3插件框架进行快速开...

云贵高原 ⋅ 2011/01/03 ⋅ 0

JEECG 3.6.3 发布 企业级JAVA快速开发平台

JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台。引领新的开发模式(OnlineCoding模式->代码生成器模式->手工MERGE智能开发), 可以帮助解决Java项目60%的重复工作,让开发...

Jeecg ⋅ 2016/04/11 ⋅ 0

guava cache与spring集成

缓存的背景 缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。在cpu进行计算的时候, 首先是读取寄存器,然后内存,...

爪哇小贩 ⋅ 2016/11/20 ⋅ 0

【Android】快速开发偷懒必备(二) 支持DataBinding啦~爽炸,一行实现花式列表

本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 转载请标明出处: http://blog.csdn.net/zxt0601/article/details/53618694 本文出自:【张旭童的博客】(http://blog.csdn.net/zxt06...

zxt0601 ⋅ 2016/12/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JPA入门,配置文件的设置

<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http......

码农屌丝 ⋅ 8分钟前 ⋅ 0

Java基础——面向对象和构造器

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 静态成员介绍 为什么要有静态成员?静态成员用来...

凯哥学堂 ⋅ 10分钟前 ⋅ 0

vmware中Centos 7 linux的LVM磁盘扩容

系统是RHEL7(centos7差不多一样) 关闭系统,在vmware、设置、硬盘、扩展、输入数字大于当前系统内存、点击扩展。 开机再查看磁盘信息 fdisk -l 注意:可以看出sda磁盘增加了,但是根目录还...

gugudu ⋅ 20分钟前 ⋅ 0

JAVA线程sleep和wait方法区别

昨天面试,突然被问到sleep 和 wait的区别,一下子有点蒙,在这里记一下,以示警戒。 首先说sleep,sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过去后,cpu...

徐玉强 ⋅ 22分钟前 ⋅ 0

vuex学习--模块

随着项目复杂性增加,共享状态也越来越多。需要对转态操作进行分组,分组后在进行分组编写。学习一下module:状态管理器的模块组操作。 首先是声明: const moduleA={ state,mutations,g...

大美琴 ⋅ 24分钟前 ⋅ 0

Selenium 简单入门

安装 pip install selenium 驱动下载 https://chromedriver.storage.googleapis.com/index.html 下载最新的驱动,放入path中,可以放入Python的scripts目录下,也可以放入Chrome安装目录,并...

阿豪boy ⋅ 26分钟前 ⋅ 0

292. Nim Game - LeetCode

Question 292. Nim Game Solution 思路:试着列举一下,就能发现一个n只要不是4的倍数,就能赢。 n 是否能赢1 true2 true3 true4 false 不论删除几,对方都能一把赢5 t...

yysue ⋅ 56分钟前 ⋅ 0

6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩

zip压缩工具 zip命令可以压缩目录和文件,-r 压缩目录。 zip使用方法 zip 1.txt.zip 1.txt //压缩文件 zip -r 123.zip 123/ //压缩目录 unzip 1.txt.zip //解压 unzip 123.zip -d /root/456...

Linux_老吴 ⋅ 今天 ⋅ 0

react-loadable使用跳坑

官方给react-loadable的定义是: A higher order component for loading components with dynamic imports. 动态路由示例 withLoadable.js import React from 'react'import Loadable fro......

pengqinmm ⋅ 今天 ⋅ 0

记录工作中遇到的坑

1、ios safari浏览器向下滚动会触发window resize事件

端木遗风 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部