我们使用 Ansible 自动安装了 SonarQube 服务器。作为此过程的一部分,Ansible 会轮询 URLsonar/api/server/index
以检查服务器是否正在运行。只要返回 HTTP 200 并且服务器状态等于SETUP
...
<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
(即使 GUI 清楚地表明它仍在维护中)和一个POST
tosonar/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 端点?