Почему я получаю время ожидания подключения? - PullRequest
0 голосов
/ 19 апреля 2019

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

0 голосов
/ 19 апреля 2019

Как правило, если вы получаете тайм-ауты по HTTP-запросам, проверьте следующее:

  • Используете ли вы правильное имя хоста или IP-адрес?
  • Используете ли выправильный порт?
  • заблокирован ли доступ брандмауэром (где-то)?
  • заблокирован ли доступ из-за неправильно настроенной сетевой маршрутизации (где-то)?

Поскольку выиспользуя openstack4j, вы, вероятно, сможете получить больше информации о том, что происходит, включив ведение журнала HTTP-запросов:

OSFactory.enableHttpLoggingFilter(true);

Убедитесь, что он отправляет запросы в конечную точку взгляда V2.

Если это не помогло, используйте отладчик Java вашей среды IDE, чтобы выяснить, какие запросы отправляются на какие конечные точки службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...