Почему я получаю время ожидания подключения?
После аутентификации, если я вызываю какой-либо метод, как os.compute().flavors().list()
или же os.images().list()
, Я получил connect timed out
, Почему это происходит?
Я установил OpenStack с пакетом стека RDO на виртуальной машине GoogleCloudsPlataform. Я делаю авторизацию с доменом и проектом. Я пытался выполнить аутентификацию без проекта, и вызовы методов не выполнялись по тайм-ауту, но ответы были неправильными, например, если я вызывал списочные варианты, ничего не возвращалось.
Если я делаю эти вызовы с конечными точками 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
1 ответ
В общем, если вы получаете тайм-ауты на HTTP-запросах, необходимо проверить следующее:
- Вы используете правильное имя хоста или IP-адрес?
- Вы используете правильный порт?
- Доступ заблокирован брандмауэром (где-то)?
- Доступ заблокирован неправильно настроенной сетевой маршрутизацией (где-то)?
Поскольку вы используете openstack4j
возможно, вы сможете получить больше информации о том, что происходит, включив ведение журнала HTTP-запросов:
OSFactory.enableHttpLoggingFilter(true);
Убедитесь, что он отправляет запросы конечной точке V2 glance.
Если это не удается, используйте отладчик Java вашей среды IDE, чтобы выяснить, какие запросы отправляются в какие конечные точки службы.