当我尝试连接我的openstack时,我遇到了一些问题。我正在使用jcloud,这是我的代码:
context = ContextBuilder.newBuilder("openstack-nova")
.endpoint("http://xxx.xxx.xxx.xxx:5000/v2.0/")
.credentials("tenantname:username", "password")
.modules(ImmutableSet.<Module> of(new SLF4JLoggingModule(), new SshjSshClientModule()))
.buildView(ComputeServiceContext.class);
service = context.getComputeService();
for(ComputeMetadata node: service.listNodes()) {
System.out.println("NODE: " + node.getId());
}但它总是返回以下错误:
DEBUG [org.jclouds.rest.internal.InvokeHttpMethod] [main] >> invoking AuthenticationApi.authenticateWithTenantNameAndCredentials
DEBUG [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService] [main] Sending request -1502473400: POST http://xxx.xxx.xxx.xxx:5000/v2.0/tokens HTTP/1.1
ERROR [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService] [main] Command not considered safe to retry because request method is POST: [method=org.jclouds.openstack.keystone.v2_0.AuthenticationApi.public abstract org.jclouds.openstack.keystone.v2_0.domain.Access org.jclouds.openstack.keystone.v2_0.AuthenticationApi.authenticateWithTenantNameAndCredentials(java.lang.String,org.jclouds.openstack.keystone.v2_0.domain.PasswordCredentials)[tenantname, PasswordCredentials{username=username, password=*****}], request=POST http://xxx.xxx.xxx.xxx:5000/v2.0/tokens HTTP/1.1]我正在使用eclipse和Intellij IDEA进行开发。我一直在检查代理配置,但一切正常。
有谁能帮帮我吗?
谢谢!
发布于 2015-10-16 15:32:04
代码看起来不错,但如果您需要通过代理,则可能需要在jcloud中配置代理属性。如下所示,并为您的代理设置正确的值:
Properties overrides = new Properties();
overrides.setProperty(Constants.PROPERTY_PROXY_HOST, "localhost");
overrides.setProperty(Constants.PROPERTY_PROXY_PORT, "8888");您可以将属性传递给ContextBuilder的overrides方法。
您还可以启用jclouds.wire日志来查看正在发送的每个请求和响应。这将显示确切的网络错误或OpenStack安装返回的错误。看看:http://jclouds.apache.org/reference/logging/
https://stackoverflow.com/questions/33164049
复制相似问题