0

我们使用 Ansible 自动安装了 SonarQube 服务器。作为此过程的一部分,Ansible 会轮询 URLsonar/api/server/index以检查服务器是否正在运行。只要返回 HTTP 200 并且服务器状态等于SETUP...

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

...脚本通过发送POSTsonar/api/server/setup并等待MIGRATION_SUCCEEDED返回来触发数据库升级。

在我尝试将 SonarQube 从版本 5.6.2 升级到 5.6.5 之前,这一直运行良好。由于某种原因sonar/api/server/index,现在总是返回状态UP(即使 GUI 清楚地表明它仍在维护中)和一个POSTtosonar/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并单击更新按钮时,数据库迁移开始...... API 是否有任何更改?我是否调用了错误的 REST 端点?

4

1 回答 1

1

您正在使用内部 Web 服务(api/server/index 和 api/server/upgrade)。响应和行为可以在版本之间更改,而无需任何通知。

您应该改用:

  1. GET api/system/db_migration_status :获取数据库迁移状态
  2. POST api/system/migrate_db : 执行迁移

我鼓励您访问 http:///web_api 查看您使用的 SonarQube 版本的可用 Web 服务文档。

于 2017-02-01T12:53:09.947 回答