Почему я получаю время ожидания подключения?

После аутентификации, если я вызываю какой-либо метод, как 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, чтобы выяснить, какие запросы отправляются в какие конечные точки службы.

Другие вопросы по тегам