jclouds支持更新的vCloud API

时间:2014-05-11 01:01:42

标签: cloud jclouds vcloud-director-rest-api

我们必须为我们的迁移服务支持许多不同的目标云(从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();

任何帮助,建议,更好的文档指示都将不胜感激:谢谢!

1 个答案:

答案 0 :(得分:4)

jclouds一直很慢地添加和维护对vCloud API的支持。有一段时间VMware支持该项目,但我怀疑今天使用jclouds并使用vCloud的人员可能很小,以至于vCloud支持实际上已经死亡。由于vCD或vCHS的固有成本,可能需要企业vCD / vCHS客户开发和捐赠vCloud API 5.5+支持的更新代码。

如果您不特别喜欢这个答案(我没有),我会向您的VMware代表抱怨第三方图书馆如jclouds或fog的悲惨状态。在这些库中建立vCloud支持符合VMware的最大利益,因为它可以帮助他们赢得客户并让他们尝试从竞争产品中迁移。