2017-01-31 3 views
0

私たちはSonarQubeサーバーのインストールを自動化しました。この手順の一部として、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> 

に等しい...スクリプトがsonar/api/server/setupPOSTを送信し、MIGRATION_SUCCEEDEDが返されるのを待つことにより、データベースのアップグレードを開始します。

これまでSonarQubeをバージョン5.6.2から5.6.5にアップグレードしようとしていました。なんらかの理由でsonar/api/server/indexは、ステータスがUP(GUIでまだメンテナンス中であることが明確に示されていますが)でも返され、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に移動し、[更新]ボタンをクリックし、その後、データベースの移行が開始されます。 APIに変更がありましたか?間違ったRESTエンドポイントを呼びますか?

+0

完全なログを送信してください。 –

答えて

1

内部Webサービス(api/server/indexおよびapi/server/upgrade)を使用しています。応答と動作は、通知なしにバージョン間で変更される可能性があります。

あなたは代わりに使用する必要があります。

  1. GET API /システム/ db_migration_status:私は奨励移行

を実行する:

  • POSTのAPI /システム/ migrate_dbをデータベース移行のステータスを取得するためにhttp:// web_apiにアクセスして、使用しているSonarQubeのバージョン用の利用可能なWebサービスのドキュメントを参照してください。

  • +0

    ヒントのためにありがとう、今すぐ私のコードが再び動作します!社内のAPIメソッドを「自分の責任で」公開する理由を尋ねることができますか? – dokaspar

    +0

    内部Webサービスがある理由は、UIがWebサービスのみを使用しているためです。 –

    関連する問題