我们必须为我们的迁移服务支持许多不同的目标云(从AWS到Openstack到vCloud等),所以我认为我至少在我们检索帐户属性的部分(例如地区)使用jclouds ,组织,目录等。)
然而,似乎jclouds支持'泛型' vCloud API停留在1.0 - 当我们在内部运行1.5(和5.1)时,这使得jcloud毫无用处,至少就vcloud而言(我认为1.5是"已弃用" VMWare去年9月回来了?)
有没有人知道我是否遗漏了一些明显的东西,或者是否有计划升级支持?
显然,我们会使用vmware的SDK,但通过jclouds抽象所有的云会很好。
这是我收到的错误:
version 1.0 not present in: {1.5=https://10.10.122.13/api/sessions, 5.1=https://10.10.122.13/api/sessions}
我使用的代码非常直接来自(非常稀疏的)用户指南':
private VCloudApi getVcloudContext() throws IOException {
Credentials creds = getVcloudCredentials();
Properties overrides = new Properties();
overrides.setProperty(VCLOUD_ENDPOINT, creds.url);
overrides.setProperty(Constants.PROPERTY_TRUST_ALL_CERTS, "true");
return ContextBuilder.newBuilder(VCLOUD_PROVIDER)
.overrides(overrides)
.credentials(creds.username, creds.username)
.modules(ImmutableSet.<Module> of(new Log4JLoggingModule(),
new SshjSshClientModule()))
.buildApi(VCloudApi.class);
}
// in my main():
VCloudApi api = app.getVcloudContext();
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
public boolean verify(String string, SSLSession ssls) {
return true;
}
});
Map<String, ?> orgsList = api.getOrgApi().listOrgs();
任何帮助,建议,更好的文档指示都将不胜感激:谢谢!
答案 0 :(得分:4)
jclouds一直很慢地添加和维护对vCloud API的支持。有一段时间VMware支持该项目,但我怀疑今天使用jclouds并使用vCloud的人员可能很小,以至于vCloud支持实际上已经死亡。由于vCD或vCHS的固有成本,可能需要企业vCD / vCHS客户开发和捐赠vCloud API 5.5+支持的更新代码。
如果您不特别喜欢这个答案(我没有),我会向您的VMware代表抱怨第三方图书馆如jclouds或fog的悲惨状态。在这些库中建立vCloud支持符合VMware的最大利益,因为它可以帮助他们赢得客户并让他们尝试从竞争产品中迁移。