认证后,如果我调用任何方法,比如os.compute().flavors().list()
or os.images().list()
,我会得到connect timed out
. 为什么会这样?
我在 GoogleCloudsPlataform VM 上使用 RDO packstack 建立了一个 OpenStack。我正在对域和项目进行身份验证。我尝试过没有项目的身份验证,并且方法调用没有超时,但是响应是错误的,例如,如果我调用列表风味,则不返回任何风味。
如果我使用 API 端点进行这些调用,它就可以工作;如果我使用相同的信息(用户、通行证、域、项目)进行身份验证并调用风味或图像,它就可以工作。
授权码:
OSClient.OSClientV3 os = OSFactory.builderV3()
.endpoint("http://host:5000/v3")
.credentials("admin", "pass", domain)
.scopeToProject(project)
.authenticate();
os.compute().flavors().list(); // "connection timed out" code
端点身份验证调用(有效):
curl -i \
-H "Content-Type: application/json" \
-d '
{ "auth": {
"identity": {
"methods": ["password"],
"password": {
"user": {
"name": "admin",
"domain": { "id": "default" },
"password": "pass"
}
}
},
"scope": {
"project": {
"name": "admin",
"domain": { "id": "default" }
}
}
}
}' \
"http://host:5000/v3/auth/tokens" ; echo
端点图像调用:
curl -v -i -H "Content-Type: application/json" -H "X-Auth-Token:token" "http://host:8774/v2/images"; echo