g# openstack4j 源码分析之入口
背景
去年有个整合多个openstack平台的项目,底层是华为、华3等不同平台的openstack环境,应用管理层为java。虽然各平台功能与原生openstack有所增加,但总体接口风格还是openstack的逻辑。由于openstack接口众多,一个个去适配接口的工作量巨大,所以决定基于openstack的java sdk来开发。对比了几种常见sdk,最后决定选用openstack4j来开发。
- Apache jclouds apache的开源sdk,大而全、杂,可以对接所有常见的云平台,文档较少,使用maven引入。
- openstack-java-sdk 由爱好者开发及维护的sdk,更新很慢,github的demo已经不能成功连接最新的openstack版本。
- openstack4j 官网资料、文档丰富,接口上手简单,更新快。
结构
openstack4j下面包含2个包,分别为:
connectors实现了不同类型的http请求coreopenstack4j核心包
而core下面又分了5个文件夹:apiopenstack4j所有功能的接口common公共父类modelsdk中用到的所有modelcore.transport对于http请求的处理openstack调用openstack的具体功能实现
入口
openstack4j的官网demo给出的入口是
OSClient.OSClientV3 os = OSFactory.builderV3()
.endpoint("http://127.0.0.1:5000/v3")
.credentials("admin", "secret", Identifier.byName(

本文介绍了在java中使用openstack4j SDK作为入口进行openstack操作的原因,并详细分析了SDK的结构,特别是OSFactory、OSClientBuilder和OSClient的角色。通过建造者模式构建认证信息,工厂模式处理不同版本的认证,降低了代码耦合,方便扩展。文章以华为、华3平台为例,展示了如何利用这些设计模式简化不同认证方式的适配工作。
 入口&spm=1001.2101.3001.5002&articleId=72869609&d=1&t=3&u=d8d3d1d1110b4a4e970633a7782b7626)
287

被折叠的 条评论
为什么被折叠?



