既存のプロジェクトを新しいプロジェクトルートにインポートする

Validate には、プロジェクトを既存の projects_root から新しいインストールにインポートできる、簡素な GUI が含まれています。これにより、コマンドラインを使用せずに、プロジェクト単位でデータを移行することができます。

プロジェクトをインポートする前に、新しくインストールする Klocwork 製品でこの機能がサポートされていることを確認してください。

一般的に、このプロセスには以下の手順が必要です。

  1. 既存の projects_root をバックアップする (念のため)。
  2. (新しいマシンで、または別のポート番号を使用して) 新しい Validate サーバーをインストールし、サーバーを起動する。
  3. データベースを検証する。
  4. ポータルを開き、GUI を使用して、既存のプロジェクトを新しいサーバーにインポートする。
  5. 新しいインストールをテストした後に、既存のサーバーをアンインストールし、古い projects_root および/またはバックアップ projects_root を削除する。

お使いになる前に

インポートには、既存のインストール済み Validate (および projects_root) と新規にインストールする Validate (および空の projects_root) を同時に実行する必要があります。新しいサーバーをインストールしたら、既存の projects_root 内のすべてのプロジェクトを空の projects_root にインポートする必要があります。

同じマシン上で 2 台の Validate サーバーを実行するには、それぞれに一意のポート番号が指定されていなければなりません。新しい Validate を同じマシンにインストールする場合は、別のポート番号を使用して既存のサーバーを停止および再起動するようにお勧めします。これによって、新しくインストールしたサーバーに対して既存のポート番号を引き続き使用することができます。

ソフトウェアの新規メジャーリリースに移行する場合、メジャーリリースに新しい Validate ライセンスが必要な場合など、適格なライセンスのあることを確認してください。詳細については、ライセンスを参照してください。

また、1 台のホストで 2 つのライセンスサーバーは実行できません。1 つのライセンスサーバーを実行し、両方の Validate インストールをそのライセンスサーバーにポイントする必要があります。詳細については、複数の projects_root ディレクトリを使用する場合のライセンスを参照してください。

Validate サーバーとデータベース サーバーの両方には、インポート プロセス時に対象のサーバーからアクセスできるように割り当てられた完全修飾ドメイン名か IP アドレスが必要です。localhost は使用しないでください。

インポート操作を実行するには、プロジェクトの root 管理者アクセスが必要です。

プロジェクトのインポートに対応した Validate バージョンについてサポートされるアップグレード パス

下の表で最新のバージョンおよび適切なアップグレード パスを確認してください。適切なバージョンの Validate へのアップグレードが完了したら、アップグレード後の Insight を使用して既存のプロジェクトをインポートしてください。

下のチャートは、最新の現行リリースを正確に示しています。Perforce はここでも役に立ちます。以前のリリースからの移行が必要な場合には、Static Code Analysis プロフェッショナルサービスまでお問い合わせいただき、サービスエンゲージメントを介して相談してください。

Validate のバージョンを使用している場合は、 以下のバージョンのインポートがサポートされています。
2023.4 最新 Validate 2024.1 最新
2023.3 最新 Validate 2024.1 最新
2023.2 最新 Validate 2024.1 最新
2023.1 最新 Validate 2024.1 最新
2022.4 最新 Validate 2024.1 最新
2022.3 最新 Validate 2024.1 最新
2022.2 最新 Validate 2024.1 最新

リリース間の相互運用

Validate の最新の改善点を活用するには、Server、Build、および Desktop Analysis プラグインを常に最新バージョンの製品にアップグレードすることを推奨します。Validate サーバーツールとビルドツールは、各メジャーリリース内でデスクトップ解析プラグインとの互換性があります。

また Validate には、以前のメジャーバージョンの Validate から現在のバージョンの Validate にビルドをロードする機能もあります。たとえば、これは、データのインポートまたは移行を行わずに、Validate 2022 の任意のバージョンから Validate 2024.1 にビルドをロードできるということです。

現行の Validate サーバーのバージョンがインポートされるプロジェクトのバージョン要件を満たさない場合は、既存の Validate のバージョンをサポートされているサービスリリースまたはバージョンに更新します。次に最新バージョンの Validate をインストールします。最新バージョンの Validate をインストールしてから、それを使用して既存の Validate サーバーに接続してプロジェクトをインポートします。プロジェクトをインポートするには、下記の手順に従ってください。

Validateサーバーパッケージのインストール

Validate サーバーパッケージをインストールします。手順については、Validate のインストールを参照してください。

ライセンス ファイルを <projects_root>/licenses にコピーします。

オプションについては、ライセンスを参照してください。

サーバーを起動します。

新しいバージョンの Validate のインストールを完了してから、サーバーを起動します。Validate のインストールごとに、一意のホスト名およびポート番号の組合せを指定する必要があります。

一意のホスト名とポート番号の組合せの指定は、起動時またはインストールプロセス中に行うことができます。

データベースの検証 (必須)

dbvalidate は、データベースのデータの一貫性をチェックするツールです。移行またはインポートにデータベースのエラーを修正できるようにするには、このツールの実行が必須です。インストールされているソフトウェアのバージョンと一致する dbvalidate ツールのバージョンを使用します (つまり projects_root ディレクトリと一致するバージョン)。

データベースを検証するには、古いインストールのデータベース サーバーを実行する必要があります。データベースサーバーは、Validate サーバーとは別のサービスとして一覧表示されるため、それが実行されていることを確認します。

次のコマンドを実行します。たとえば、

java -jar <server_install>/class/dbvalidate.jar --projects-root <projects_root>

フィールド

  • <server_install> はお客様のインストールディレクトリです。
  • <projects_root> は検証する古いプロジェクトルートの場所を指定します。

java -jar /local/tools/validate/server/class/dbvalidate.jar --projects-root /local/tools/validate/server/projects_root 

dbvalidate ツールは、"validation started" から "validation finished" までの行のエラーを報告します。

Wed Jun 01 07:53:58 CDT 2020 kw_central database (version: 95) validation started
<detected errors appear here>
Wed Jun 01 07:54:28 CDT 2018 Database validation finished.
  • エラーが表示される場合は、インポートまたは移行前にエラーを修正できるようにサポートチケットを開いてください。
  • エラーが表示されない場合は、データベースは正常に検証されました。

--rebuildIndex=true オプションを使用して dbvalidate を実行することもできます。これにより、指定したプロジェクト用に lucene インデックスを再作成でき、多くの場合インデックスのサイズを減らすことができます。

Important: --rebuildIndex=true オプションを使用して dbvalidate を実行する前に、lucene インデックスフォルダーを必ずバックアップしてください。

たとえば、次を実行できます。

java -cp dbvalidate.jar com.klocwork.dbvalidate.Cleanup231 --projects-root <projects_root_folder> --project <project_name> --rebuildIndex=true

Validate へのログイン

サーバーを起動した後、Validate には、Validate サーバーホスト名の URL とインストール中に選択した Validate サーバーポート (たとえば、server21:8080) を使用して、ブラウザーからアクセスできます。デフォルトでは、Validate をインストールした人が Validate 管理者になり、プロジェクト root 管理者の役割に割り当てられます。最初は、基本認証アクセス制御メソッドが使用されるので、パスワードなしでログインできます。たとえば、インストール時に使用したユーザー アカウントが jsmith の場合、管理者の役割で Validate にログインするには、次の資格情報を使用します。
username: jsmith
password: <empty>
セキュリティと認証方法の詳細については、セキュリティとパーミッションを参照してください。

プロジェクトとサーバー設定のインポート

新しい Validate サーバーがインストールされ、ポータルが立ち上がった状態になったら、既存の Validate インストールからサーバー設定およびプロジェクトをインポートできます。

既存のソースサーバーからサーバー設定をインポートすると、宛先サーバー上に存在するプロジェクトのみのパーミッション設定とともにすべてのグローバル パーミッション設定がインポートされます。つまり、サーバー A の設定をサーバー B に設定してから、サーバー A のプロジェクトをサーバー B にインポートする場合、プロジェクト A に固有のパーミッション設定はサーバー B に繰り越されません。プロジェクト A のプロジェクト固有パーミッション設定を繰り越すには、インポート操作を実行した後でサーバー設定を再インポートしなければなりません。

ソースサーバー A からターゲットサーバー B にサーバー設定をインポートする場合、次も適用されます。
  • ソースサーバー A の認証設定は、ターゲットサーバー B の認証設定を上作成します。
  • 両方のサーバーに存在する役割の場合、ソースサーバー A の役割のパーミッションによって、ターゲットサーバー B の役割のパーミッションが上作成されます。
  • ソースサーバー A にのみ存在していた役割とそれに関連付けられたパーミッションが、ターゲットサーバー B にコピーされます。
  • ターゲットサーバー B にのみ存在する役割は変更されません。それらのパーミッションは同じままです。

Important: プロジェクトにカスタム設定が含まれている場合は、プロジェクトのインポートを実行した後でサーバー設定を再インポートする必要があります。

大量の指摘とビルドを含む projects_root をインポートすると、新しい projects_root のサイズが大きくなる可能性があるので注意してください。

既存のプロジェクトのインポート

  1. ポータルで、Validate をクリックし、プロジェクトの root 管理者ユーザーとして製品にログインします。
  2. [プロジェクト] タブをクリックします。

    その際、Insight を初めて使用する場合は、[設定またはプロジェクトのインポート] ボタンをクリックします。

    既にプロジェクトを作成したか、またはインポートした場合は、[インポート] ボタンをクリックします。

  3. [Validate server connection] ダイアログで、既存の Validate インストール (インポートする元のインストール) のログインおよび接続情報を指定します。指定項目は以下のとおりです。
    • 既存のサーバーの URL、例: http://server21:8082
    • ユーザー名。サーバーに接続してプロジェクトをインポートするには、プロジェクトの root 管理者権限が必要です。
    • パスワード (必要に応じて)
  4. [サーバー構成のインポート] をクリックして既存のサーバーの構成設定をインポートします。この設定には、認証構成設定、パーミッション、カスタム メトリクス、レポート定義、電子メール購読設定が含まれます。

    認証設定をインポートする場合、認証情報が無効になることがあるため、システムからログアウトされることがあります。この場合、今インポートした Admin 認証情報でログインしてください。

  5. [プロジェクトのリスト] をクリックして既存の projects_root にあるプロジェクトのリストを表示します。
  6. [インポートするプロジェクトの選択] ダイアログで、新しい projects_root にインポートするプロジェクトを選択します。

    リリース 2024.1 以降では、プロジェクトを繰り返しインポートしたり、対象サーバー上に既に存在するプロジェクトと同一または類似した名前のソースプロジェクトをインポートしたりできるようになりました。これを容易にするため、対象プロジェクトに新しい名前を指定する必要があります。

  7. [インポート] をクリックします。[Import status] ダイアログに、[プロジェクト インポート]のステータスが表示され、[プロジェクト] タブの上部にインポート ステータス メッセージが表示されます。正常にインポートされたプロジェクトはプロジェクトリストに表示されます。

    インポートプロセス中に、プロジェクトがアクティブにインポートされるときに、[プロジェクト] ビューの指摘情報がソースプロジェクトのデータに正確に反映されていない場合があります。[プロジェクト] ビューの情報は、インポート操作が完了すると同時に更新されます。インポート ステータス インジケーターをチェックすると、進行状況を確認できます。

  8. [サーバー構成のインポート] を再びクリックしてプロジェクトに固有の構成設定をインポートします。サーバー設定を再インポートしないとプロジェクトに固有の構成設定はすべて失われるため、このステップは必須です。
  9. インポートするプロジェクトごとに [パーミッション] をクリックして、各プロジェクトのパーミッションが正しいことを確認します。

インポート時以降、各プロジェクトのパーミッションを確認することが重要です。インポート操作が完了するたびにこのプロセスを繰り返し、インポート元の各ソースサーバーのサーバー設定を再インポートするよう注意する必要があります。

<old_Validate_install>/config/java_wrappers_memory.conf にあるメモリ割り当てファイルを以前に変更した場合は、それらの変更が引き続き必要であることを確認し、新しいインストールで java_wrappers_memory.conf に同じ変更を加えます。

Web API を使用したプロジェクトのインポート

Validate Web API を使用すると、コマンドラインでプロジェクトをインポートできます。Web API では Web API アクセス権限が必要です。デフォルトでは、プロジェクト管理者役割とプロジェクトの root 管理者役割は Web API にアクセスできます。次の例は、プロジェクトをインポートするための curl スクリプトです。

curl --data "action=import_project&user=myself&project=my_project&sourceURL=
http://oldserver:8080&sourceAdmin=user&sourcePassword=pwd" http://localhost.mycompany.com:8080/review/api

フィールド

  • project は、インポートするプロジェクトの名前です。
  • sourceURL は、インポート元の既存の Validate サーバーの URL です。
  • sourceAdmin は、インポート元の Validate サーバー管理者 (プロジェクトの root 管理アクセス権を持っている必要がある) のユーザー ID です。
  • sourcePassword は管理者のパスワードです。

インポート元の projects_root フォルダーにあるプロジェクトすべてのリストを取得するには、次のコマンドを実行します。

curl --data "action=projects&user=myself&" http://localhost.mycompany.com:8080/review/api

Web API を使用してサーバー構成設定をインポートすることもできます。

curl --data "action=import_server_configuration&user=myself&sourceURL=
http://oldserver:8080&sourceAdmin=user&sourcePassword=pwd" http://localhost.mycompany.com:8080/review/api

通常、これらの操作のスクリプトは、Python などの言語で作成されています。

リリース 2024.1 以降では、プロジェクトを繰り返しインポートしたり、対象サーバー上に既に存在するプロジェクトと同一または類似した名前のソースプロジェクトをインポートしたりできるようになりました。これを容易にするため、newProjectName パラメーターを使用して、対象プロジェクトに新しい名前を指定する必要があります。

分類基準ファイルのインポート

これまでのリリースでカスタム分類基準をインポートしていた場合は、新しい分類基準ファイルを再インポートして変更を反映させる必要があります。分類基準の変更のリストについては、新機能を参照してください。

アップグレードのテスト

プロジェクトおよびビルドが Validate に表示されることを確認します。

新しいライセンスファイルをインストールした場合、ライセンス数が正しいことのチェックにより、ライセンスファイルが正しくインストールされたことを確認します。

新しくインストールされたサーバーの立ち上げ

新しくインストールされたサーバーが有効で、既存のプロジェクトが正しくインポートされことを確認したら、サーバーを立ち上げます。

新しいサーバーの新規で一意のポート番号を選択したら、ユーザーにこの情報を通知してください。

既存のポート番号を再利用する (ユーザーが自身のローカル設定を更新しなくても済むように) 場合は、すべての Validate サーバーを停止して再起動し、新しいサーバーに既存のサーバーのポート番号を指定してください。

Validate を使用した最初の統合ビルド解析の前に

通常、新しいリリースの Validate には、現在のイベントに対応して顧客の要求に応えるようにチェッカー設定が変更されています。これらの変更は、以前のリリースからのチェッカー設定と新しいリリースの設定が異なっていることを意味している可能性があります。

古い設定に対応する正しいチェッカーが有効になっていることを確認してください。新機能で更新されたチェッカーのリストを確認し、チェッカー設定を変更してください。設定が完了したら、build specification (ビルドスペック) を再生成して最新の変更をキャプチャし、修正されていないソースコードで統合ビルド解析を実行します。

既に最初の Validate 解析を実行しており、指摘またはステータス変更の一部が欠落している場合は、そのビルドを削除し、チェッカーを再設定して、新しい解析を実行します。

最後のプレアップグレード統合ビルド解析と最初の Validate 解析を同じソースコードで実行してから、2 つのビルドを比較することをお勧めします。こうすると、解析エンジンの変化を正しく評価できます。このバージョンのチェッカーの改良、追加、削除の詳細については、新機能を参照してください。