What's openstack ?
OpenStack是一个IaaS层基础资源管理平台,由Nova、Cinder、Neutron等主要的组件组合起来,提供计算服务、存储服务、网络服务等云服务,为公共及私有云的建设与管理提供一种开源实现方案。它最初是由 Rackspace 和 NASA 共同开发帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS),更多信息科参考openstack官网。
关于此项目
Openstack提供了Python接口以及RESTFul API,但却一直没有Java版本的SDK,这个项目的最终目的就是要实现一个便于调用、易于扩展的Openstack Java SDK包,为Java开发人员提供直接访问和管理Openstack平台的接口,弥补Openstack API的不足。它是基于Openstack RESTFul的二次开发。最初应实验室需求而开展工作,目前已经花了陆陆续续近1个月的时间,实现了基本功能。当然存在很多bug以及许多尚未实现的功能。
如何使用
本项目使用Maven构建,因此首先使用mvn命令构建本项目:
mvn package
如果需要把依赖包一块打进一个包,可以使用以下命令实现:
mvn assembly:assembly
项目运行时需要配置文件,配置文件路径由系统变量OPENSTACK_CONF_PATH指定,默认为/etc/openstack,参考配置文件说明
该项目设计模式参考了Openstack官方Python库的设计理念,尽力做到调用简单、利于扩展并可实现热插拔.以下是一个简单的使用例子:
OpenstackSession session = OpenstackSession.getSession("username", "password");// get session
Nova nova = session.getNovaClient(); // get nova client
// get a flavor list, print their name
for (Flavor flavor : nova.flavors.list()) {
System.out.println(flavor.getName());
}
// create a new server
Server server = new Server();
server.setName("demo");
server.setImageRef("imageId");
server.setFlavorRef("flavorId");
// some other config
nova.servers.create(server); // call create method to execute.