From 45868bc83f1152196bc9441e1431d986e4321ddc Mon Sep 17 00:00:00 2001 From: zeaslity Date: Thu, 16 Nov 2023 10:41:37 +0800 Subject: [PATCH] [ Server ] [ Harbor ] - sync projects - 5 --- agent-go/executor/HarborExecutor.go | 21 +++++++++++++++++-- .../server/func/TestBaseFuncScheduler.java | 4 ++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/agent-go/executor/HarborExecutor.go b/agent-go/executor/HarborExecutor.go index fb9898b..18accdf 100644 --- a/agent-go/executor/HarborExecutor.go +++ b/agent-go/executor/HarborExecutor.go @@ -255,13 +255,14 @@ func (hOp *HarborOperator) SyncProjectExec(funcArgs []string) (bool, []string) { } } // 创建复制策略 - newPolicy := &model.ReplicationPolicy{ + octopusReplicationPolicy := &model.ReplicationPolicy{ CopyByChunk: nil, Deletion: false, Description: "", DestNamespace: "", // 可以指定目标 Harbor 中的特定项目,如果为空,则使用源项目名称 DestNamespaceReplaceCount: nil, SrcRegistry: octopusSourceRegistry, + DestRegistry: nil, Enabled: true, Filters: []*model.ReplicationFilter{ { @@ -287,7 +288,23 @@ func (hOp *HarborOperator) SyncProjectExec(funcArgs []string) (bool, []string) { // 在源 Harbor 中创建复制策略 log.Info("[Harbor Sync Project ] - Start To Sync Project !") - err = targetClient.NewReplicationPolicy(ctx, newPolicy.DestRegistry, newPolicy.SrcRegistry, newPolicy.Deletion, newPolicy.Override, newPolicy.Enabled, newPolicy.Filters, newPolicy.Trigger, newPolicy.DestNamespace, newPolicy.Name, newPolicy.Name) + + existReplicationPolicy, err := targetClient.GetReplicationPolicyByName(ctx, octopusReplicationPolicy.Name) + if err != nil { + return false, []string{ + "[Harbor Sync Project ] - get exists replication policy failed !", + } + } + if existReplicationPolicy != nil { + err := targetClient.DeleteReplicationPolicyByID(ctx, existReplicationPolicy.ID) + if err != nil { + return false, []string{ + "[Harbor Sync Project ] - delete exists replication policy failed !", + } + } + } + + err = targetClient.NewReplicationPolicy(ctx, octopusReplicationPolicy.DestRegistry, octopusReplicationPolicy.SrcRegistry, octopusReplicationPolicy.Deletion, octopusReplicationPolicy.Override, octopusReplicationPolicy.Enabled, octopusReplicationPolicy.Filters, octopusReplicationPolicy.Trigger, octopusReplicationPolicy.DestNamespace, octopusReplicationPolicy.Name, octopusReplicationPolicy.Name) if err != nil { syncErrorMessage := fmt.Sprintf("[Harbor Sync Project ] - Sync Project Failed !: %s\n", err.Error()) log.Error(syncErrorMessage) diff --git a/server/src/test/java/io/wdd/server/func/TestBaseFuncScheduler.java b/server/src/test/java/io/wdd/server/func/TestBaseFuncScheduler.java index 1a48aa8..05bc2aa 100644 --- a/server/src/test/java/io/wdd/server/func/TestBaseFuncScheduler.java +++ b/server/src/test/java/io/wdd/server/func/TestBaseFuncScheduler.java @@ -34,10 +34,10 @@ public class TestBaseFuncScheduler { ServerQueryEntity serverQueryEntity = new ServerQueryEntity(); // exsi server -// serverQueryEntity.setServerName("Chengdu-amd64-99"); + serverQueryEntity.setServerName("Chengdu-amd64-99"); // lappro - serverQueryEntity.setServerName("Chengdu-amd64-65"); +// serverQueryEntity.setServerName("Chengdu-amd64-65"); ServerInfoPO serverInfoPO = serverService .serverGetByPage(serverQueryEntity)