import java.util.List;
import java.util.Map;
import org.openstack4j.api.OSClient.OSClientV3;
import org.openstack4j.api.identity.EndpointURLResolver;
import org.openstack4j.api.types.Facing;
import org.openstack4j.core.transport.Config;
import org.openstack4j.model.common.Identifier;
import org.openstack4j.model.compute.Address;
import org.openstack4j.model.compute.Flavor;
import org.openstack4j.model.compute.FloatingIP;
import org.openstack4j.model.compute.HostAggregate;
import org.openstack4j.model.compute.Keypair;
import org.openstack4j.model.compute.QuotaSet;
import org.openstack4j.model.compute.SecGroupExtension;
import org.openstack4j.model.compute.Server;
import org.openstack4j.model.compute.ext.AvailabilityZone;
import org.openstack4j.model.compute.ext.AvailabilityZone.NovaService;
import org.openstack4j.model.compute.ext.DomainEntry;
import org.openstack4j.model.compute.ext.Hypervisor;
import org.openstack4j.model.compute.ext.HypervisorStatistics;
import org.openstack4j.model.compute.ext.Service;
import org.openstack4j.model.identity.URLResolverParams;
import org.openstack4j.model.identity.v3.Endpoint;
import org.openstack4j.model.identity.v3.Group;
import org.openstack4j.model.identity.v3.Project;
import org.openstack4j.model.identity.v3.Role;
import org.openstack4j.model.identity.v3.User;
import org.openstack4j.model.image.Image;
import org.openstack4j.model.network.Agent;
import org.openstack4j.model.network.IP;
import org.openstack4j.model.network.Network;
import org.openstack4j.model.network.Pool;
import org.openstack4j.model.network.Port;
import org.openstack4j.model.network.Router;
import org.openstack4j.model.network.Subnet;
import org.openstack4j.model.storage.block.Volume;
import org.openstack4j.openstack.OSFactory;
public class OpenStackConnection {
public static void main(String[] args) {
final EndpointURLResolver endpointUrlResolver = new EndpointURLResolver() {
@Override
public String findURLV2(URLResolverParams params) {
// TODO Auto-generated method stub
return null;
}
@Override
public String findURLV3(URLResolverParams params) {
switch (params.type.getServiceName()) {
case "keystone":
return "http://xx.xx.xx.xx:5000/v3";
case "glance":
return "http://xx.xx.xx.xx:9292";// 经openstack4j检验用的是v1版本
case "nova":
return "http://xx.xx.xx.xx:8774/v2.1/d65c0ead45594d0d8fc3e2eace892ba7";// compute计算相关
case "neutron":
return "http://xx.xx.xx.xx:9696";
case "cinder":
return "http://xx.xx.xx.xx:8776/v1/d65c0ead45594d0d8fc3e2eace892ba7";// 经openstack4j检验用的是v1版本
default:
return null;
}
}
};
// OSFactory.enableHttpLoggingFilter(true);//
Identifier domainIdentitier = Identifier.byName("default");
try {
// 不同域内的项目名和用户名有可能相同。
OSClientV3 os = OSFactory.builderV3()
.withConfig(Config.newConfig().withEndpointURLResolver(endpointUrlResolver))
.endpoint("http://xx.xx.xx.xx:5000/v3").credentials("admin", "Neusoft", domainIdentitier)
.scopeToProject(Identifier.byName("admin"), Identifier.byName("default")).perspective(Facing.PUBLIC)
.authenticate();
System.out.println("鉴权通过!");
List<? extends Network> networks = os.networking().network().list();
for (Network network : networks) {
System.out.println("网络名称:" + network.getName());
System.out.println("网络ID:" + network.getId());
System.out.println("状态:" + network.getStatus());
for (Subnet subnet : network.getNeutronSubnets()) {
System.out.println("子网ID:" + subnet.getId());
System.out.println("子网cidr:" + subnet.getCidr());
}
}
List<? extends Server> servers = os.compute().servers().list();
for (Server server : servers) {
System.out.println("主机名称:" + server.getName());
System.out.println("主机ID:" + server.getId());
System.out.println("主机状态:" + server.getStatus());
System.out.println("主机网络信息:");
Map<String, List<? extends Address>> addressesMap = server.getAddresses().getAddresses();
for (String key : addressesMap.keySet()) {
System.out.println("网络:" + key);
for (Address address : addressesMap.get(key)) {
System.out.println("IP地址 :" + address.getAddr());
}
}
}
} catch (Exception e) {
System.out.println("message: " + e.getMessage());
} finally {
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
openstack rest api 调用示例
共58个文件
jar:30个
class:6个
xml:4个
需积分: 48 28 下载量 193 浏览量
2017-03-24
18:39:24
上传
评论
收藏 15.63MB 7Z 举报
温馨提示
用的是openstack4j库,java web,Maven工程。
资源推荐
资源详情
资源评论
收起资源包目录
WebofOpenstack4j.7z (58个子文件)
WebofOpenstack4j
.project 1KB
WebContent
WEB-INF
lib
META-INF
MANIFEST.MF 39B
src
OpenStackConnection.java 4KB
target
WebofOpenstack4j-0.0.1-SNAPSHOT.war 7.9MB
WebofOpenstack4j-0.0.1-SNAPSHOT
WEB-INF
classes
OpenStackConnection.class 3KB
OpenStackConnection$1.class 2KB
lib
jackson-dataformat-yaml-2.7.3.jar 314KB
jackson-module-jaxb-annotations-2.3.2.jar 31KB
javassist-3.18.1-GA.jar 697KB
hk2-utils-2.4.0-b31.jar 99KB
openstack4j-core-3.0.4-SNAPSHOT.jar 1.59MB
aopalliance-repackaged-2.4.0-b31.jar 14KB
guava-17.0.jar 2.14MB
javax.inject-2.4.0-b31.jar 6KB
hk2-api-2.4.0-b31.jar 169KB
msg-simple-1.1.jar 36KB
json-patch-1.9.jar 41KB
jersey-client-2.22.1.jar 160KB
snakeyaml-1.15.jar 263KB
jackson-core-2.7.3.jar 247KB
jackson-databind-2.7.3.jar 1.15MB
jsr305-2.0.0.jar 31KB
openstack4j-jersey2-3.0.3.jar 16KB
jackson-jaxrs-json-provider-2.3.2.jar 16KB
jackson-annotations-2.7.0.jar 50KB
jersey-common-2.22.1.jar 680KB
jersey-media-json-jackson-2.11.jar 7KB
jersey-guava-2.22.1.jar 949KB
javax.annotation-api-1.2.jar 26KB
javax.ws.rs-api-2.0.1.jar 113KB
btf-1.2.jar 9KB
jackson-jaxrs-base-2.3.2.jar 27KB
slf4j-api-1.7.21.jar 40KB
osgi-resource-locator-1.0.1.jar 20KB
hk2-locator-2.4.0-b31.jar 175KB
jackson-coreutils-1.6.jar 30KB
META-INF
MANIFEST.MF 39B
m2e-wtp
web-resources
META-INF
MANIFEST.MF 107B
maven
WebofOpenstack4j
WebofOpenstack4j
pom.properties 268B
pom.xml 2KB
maven-status
maven-compiler-plugin
compile
default-compile
createdFiles.lst 54B
inputFiles.lst 82B
generated-sources
annotations
classes
OpenStackConnection.class 6KB
OpenStackConnection$1.class 2KB
maven-archiver
pom.properties 138B
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 353B
org.eclipse.m2e.core.prefs 90B
org.eclipse.jdt.core.prefs 430B
org.eclipse.wst.validation.prefs 50B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.prefs.xml 171B
org.eclipse.wst.common.component 599B
.jsdtscope 567B
build
classes
src
OpenStackConnection.class 1KB
org
openstack4j
openstack
identity
v3
domain1
KeystoneToken1.class 8KB
pom.xml 2KB
.classpath 863B
共 58 条
- 1
资源评论
Jerry_liu20080504
- 粉丝: 205
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 机械设计整经机上纱自动化sw20非常好的设计图纸100%好用.zip
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功