無署名のジョブをNexusリポジトリーに移行する - 7.2

Talend Data Management Platform 移行&アップグレードガイド

EnrichVersion
7.2
EnrichProdName
Talend Data Management Platform
EnrichPlatform
Talend Activity Monitoring Console
Talend Administration Center
Talend Artifact Repository
Talend CommandLine
Talend Data Preparation
Talend Data Stewardship
Talend DQ Portal
Talend Identity and Access Management
Talend JobServer
Talend Log Server
Talend Repository Manager
Talend Runtime
Talend SAP RFC Server
Talend Studio
task
インストールとアップグレード
Talend Administration Centerをアップグレードした後に、新しいTalend Administration Centerで実行する前に、Nexusリポジトリーに公開済みの無署名のジョブを移行する必要があります。

始める前に

[Redeploy] (再デプロイ)オプションがNexus側で有効になっていることを確認します。

手順

  1. Talend Administration Centerパッケージに含まれているアーカイブArtifact-Repository-Nexus-<version>.zipを解凍して、migration-<version>フォルダーを取得します。
  2. configurationサブフォルダーに移動し、設定ファイルrepository.propertiesを開きます。
  3. 設定ファイルを編集して、実際の状況に従って以下の詳細を指定します。
    • リポジトリータイプ
    • リポジトリーのURL
    • リポジトリーID
    • グループIDまたは検索キーワード
    • ユーザー名とパスワード
    • ライセンスファイルへのパス
  4. migration-<version>フォルダー内のJARファイルnexus-signature-migration-<version>.jarを実行します。
    java -jar nexus-signature-migration-<version>.jar

タスクの結果

Nexusリポジトリーに公開された古いジョブがローカルファイルシステムにダウンロードされ、署名されてNexusリポジトリーに再デプロイされます。
トラブルシューティング: 移行が失敗してもエラーメッセージが表示されない場合は、次の手順を試してください。
  1. Nexus Repository Managerに管理者としてログインします。
  2. [Server administration and configuration] (サーバーの管理と設定)ボタンをクリックします。
  3. Update stored script by name APIまでスクロールダウンします。
  4. nameパラメーターの値にsearchと書き込みます。
  5. 検索スクリプトがまだない場合は、bodyパラメーターのvalueに次のスクリプトを貼り付けます:
    { "name": "search", "content": "import org.sonatype.nexus.repository.storage.Query; 
    import org.sonatype.nexus.repository.storage.StorageFacet; 
    import org.sonatype.nexus.repository.storage.Query.Builder; 
    import groovy.json.JsonOutput; 
    import groovy.json.JsonSlurper; 
    def search = new JsonSlurper().parseText(args); 
    log.info('search arguments: ' + args); 
    def repositoryId = search.repositoryId; 
    def groupId = search.g; 
    def artifactId = search.a; 
    def version = search.v; 
    def data = []; 
    def repo = repository.repositoryManager.get(repositoryId); 
    StorageFacet storageFacet = repo.facet(StorageFacet); 
    def tx = storageFacet.txSupplier().get(); 
    tx.begin(); 
    def builder = Query.builder(); 
    if(groupId != null){ builder.where('group = ').param(groupId); };
    if(version != null){ if(builder.hasWhere()){ builder.and('version = ').param(version); }else{ builder.where('version = ').param(version); } };
    if(artifactId != null){ artifactId =[artifactId]; log.info('artifactId: ' + artifactId); if(builder.hasWhere()){ builder.and('name in ').param(artifactId); }else{ builder.where('name in ').param(artifactId); } };
    def query = builder.build() ;
    log.info('query: ' + query.getParameters());
    log.info('query: ' + query.getWhere());
    def components = tx.findComponents(query , [repo]);
    components.each{ ArtifactResult artifact = new ArtifactResult(); artifact.groupId = it.attributes().child('maven2').get('groupId'); artifact.artifactId = it.attributes().child('maven2').get('artifactId'); artifact.version = it.attributes().child('maven2').get('baseVersion'); artifact.extension = it.attributes().child('maven2').get('packaging'); artifact.last_updated = it.lastUpdated(); artifact.description = it.attributes().child('maven2').get('pom_description'); log.info('search arguments: ' + it.attributes()); log.info('search getProperties: ' + it.getProperties()); log.info('search getEntityMetadata: ' + it.getEntityMetadata()); log.info('search getMetaPropertyValues: ' + it.getMetaPropertyValues()); data << artifact; };
    tx.commit();
    tx.close();
    return JsonOutput.toJson(data);
    class ArtifactResult{ String groupId; String artifactId; String version; String extension; String last_updated; String description; } ", "type": "groovy" }
  6. [Try it out!] (試してみる)をクリックします。