2017-01-31 4 views
0

Мы автоматизировали установку сервера SonarQube с использованием Ansible. В рамках этой процедуры Ansible проверяет URL-адрес sonar/api/server/index, чтобы проверить, работает ли сервер. Как только как HTTP 200 возвращается и состояние сервера равно SETUP ...SonarQube отвечает NO_MIGRATION, хотя требуется миграция db

<server> 
    <id>20170131094026</id> 
    <version>5.6.2</version> 
    <status>SETUP</status> 
</server> 

... скрипт запускает обновление базы данных, отправив POST в sonar/api/server/setup и ждет MIGRATION_SUCCEEDED быть возвращены.

До сих пор это работало хорошо, и я попытался обновить SonarQube с версии 5.6.2 до 5.6.5. По какой-то причине sonar/api/server/index теперь всегда возвращает статус UP (хотя графический интерфейс явно указывает, что он по-прежнему поддерживается), а POST - sonar/api/server/setup указывает, что база данных обновлена ​​и не требуется миграция (NO_MIGRATION).

Однако сервер все еще находится в режиме обслуживания и nexus.log продолжает повторять ту же линию:

09:41:05 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer... 
09:41:39 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer... 
09:43:13 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer... 
09:47:28 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer... 

Когда я вручную перейти к sonar/setup и нажмите на кнопку Update, а затем начинается миграция базы данных. .. Были ли какие-либо изменения в API? Я вызываю неправильные конечные точки REST?

+0

Не могли бы вы отправить полный журнал, пожалуйста? –

ответ

1

Вы используете внутренние веб-службы (api/server/index и api/server/upgrade). Ответы и поведение могут изменяться между версиями без уведомления.

Вы должны использовать вместо:

  1. GET API/системы/db_migration_status: чтобы получить миграционный статус базы данных
  2. POST API/системы/migrate_db: для выполнения миграции

Я поощряю вам нужно перейти на http: /// web_api, чтобы просмотреть документацию доступных веб-сервисов для версии SonarQube, используемой вами.

+0

Спасибо за подсказку, теперь мой код снова работает! Могу ли я спросить причину раскрытия внутренних методов API «на свой страх и риск»? – dokaspar

+0

Причина наличия внутренних веб-сервисов заключается в том, что пользовательский интерфейс использует только веб-службы. –

 Смежные вопросы

  • Нет связанных вопросов^_^