From b0e61e70411a17b65e58e00864cc7b407258c8c7 Mon Sep 17 00:00:00 2001 From: zeaslity Date: Wed, 15 Nov 2023 15:11:25 +0800 Subject: [PATCH 1/3] [ Server ] [ Harbor ] - sync projects - 2-1 --- agent-go/executor/HarborExecutor.go | 23 ++++++++++--------- .../server/func/TestBaseFuncScheduler.java | 4 ++-- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/agent-go/executor/HarborExecutor.go b/agent-go/executor/HarborExecutor.go index 95bed2f..02c727c 100644 --- a/agent-go/executor/HarborExecutor.go +++ b/agent-go/executor/HarborExecutor.go @@ -235,16 +235,17 @@ func (hOp *HarborOperator) SyncProjectExec(funcArgs []string) (bool, []string) { // 如果是 "scheduled",还需要设置 Cron 表达式 // TriggerSettings: &model.TriggerSettings{Cron: "0 * * * *"}, }, - Filters: []*model.ReplicationFilter{ - { - Type: "name", - Value: "cmii/**", // 根据需要同步的仓库进行调整 - }, - { - Type: "name", - Value: "rancher/**", // 根据需要同步的仓库进行调整 - }, - }, + //Filters: []*model.ReplicationFilter{ + // { + // Type: "name", + // Value: "cmii/**", // 根据需要同步的仓库进行调整 + // }, + // { + // Type: "name", + // Value: "rancher/**", // 根据需要同步的仓库进行调整 + // }, + //}, + Filters: nil, } // 在源 Harbor 中创建复制策略 @@ -252,7 +253,7 @@ func (hOp *HarborOperator) SyncProjectExec(funcArgs []string) (bool, []string) { err := sourceClient.NewReplicationPolicy(ctx, newPolicy.DestRegistry, newPolicy.SrcRegistry, newPolicy.Deletion, newPolicy.Override, newPolicy.Enabled, newPolicy.Filters, newPolicy.Trigger, newPolicy.DestNamespace, newPolicy.Name, newPolicy.Name) if err != nil { - syncErrorMessage := fmt.Sprintf("[Harbor Sync Project ] - Sync Project Failed !: %v\n", err) + syncErrorMessage := fmt.Sprintf("[Harbor Sync Project ] - Sync Project Failed !: %s\n", err.Error()) log.Error(syncErrorMessage) return false, []string{ 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) From 0d9f158ab82b9781bb24f922c04db241da8eb987 Mon Sep 17 00:00:00 2001 From: zeaslity Date: Wed, 15 Nov 2023 15:26:47 +0800 Subject: [PATCH 2/3] [ Server ] [ Harbor ] - sync projects - 3 --- agent-go/executor/HarborExecutor.go | 56 +++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/agent-go/executor/HarborExecutor.go b/agent-go/executor/HarborExecutor.go index 02c727c..d990757 100644 --- a/agent-go/executor/HarborExecutor.go +++ b/agent-go/executor/HarborExecutor.go @@ -219,22 +219,25 @@ func (hOp *HarborOperator) SyncProjectExec(funcArgs []string) (bool, []string) { // 创建复制策略 newPolicy := &model.ReplicationPolicy{ - Name: "sync-repositories-to-target", - Enabled: true, - Deletion: false, - Override: true, - SrcRegistry: &model.Registry{ - Name: "cmii", // 源 Harbor 实例的注册表 ID,通常为 0 - }, + CopyByChunk: nil, + Deletion: false, + Description: "", + DestNamespace: "", // 可以指定目标 Harbor 中的特定项目,如果为空,则使用源项目名称 + DestNamespaceReplaceCount: nil, DestRegistry: &model.Registry{ - Name: "cmii", // 目标 Harbor 实例的注册表 ID,需要根据实际情况设置 - }, - DestNamespace: "", // 可以指定目标 Harbor 中的特定项目,如果为空,则使用源项目名称 - Trigger: &model.ReplicationTrigger{ - Type: "manual", // 可以是 "manual", "scheduled", 或 "event_based" - // 如果是 "scheduled",还需要设置 Cron 表达式 - // TriggerSettings: &model.TriggerSettings{Cron: "0 * * * *"}, + Credential: &model.RegistryCredential{ + AccessKey: "admin", + AccessSecret: "V2ryStr@ngPss", + Type: "basic", + }, + Description: "", + ID: 4, + Insecure: false, + Name: "cmii", // 源 Harbor 实例的注册表 ID,通常为 0 + Type: "harbor", + URL: "10.250.0.126:8033", }, + Enabled: true, //Filters: []*model.ReplicationFilter{ // { // Type: "name", @@ -245,7 +248,30 @@ func (hOp *HarborOperator) SyncProjectExec(funcArgs []string) (bool, []string) { // Value: "rancher/**", // 根据需要同步的仓库进行调整 // }, //}, - Filters: nil, + Filters: nil, + ID: 0, + Name: "sync-repositories-to-target", + Override: true, + ReplicateDeletion: false, + Speed: nil, + SrcRegistry: &model.Registry{ + Credential: &model.RegistryCredential{ + AccessKey: "admin", + AccessSecret: "V2ryStr@ngPss", + Type: "basic", + }, + Description: "", + ID: 4, + Insecure: false, + Name: "cmii", // 源 Harbor 实例的注册表 ID,通常为 0 + Type: "harbor", + URL: "10.250.0.100:8033", + }, + Trigger: &model.ReplicationTrigger{ + Type: "manual", // 可以是 "manual", "scheduled", 或 "event_based" + // 如果是 "scheduled",还需要设置 Cron 表达式 + // TriggerSettings: &model.TriggerSettings{Cron: "0 * * * *"}, + }, } // 在源 Harbor 中创建复制策略 From 53d1959220b5e86cbd0a9dd8d96a3c0756e98930 Mon Sep 17 00:00:00 2001 From: zeaslity Date: Wed, 15 Nov 2023 15:27:23 +0800 Subject: [PATCH 3/3] [ Server ] [ Harbor ] - sync projects - 3-1 --- agent-go/executor/HarborExecutor.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/agent-go/executor/HarborExecutor.go b/agent-go/executor/HarborExecutor.go index d990757..6e99110 100644 --- a/agent-go/executor/HarborExecutor.go +++ b/agent-go/executor/HarborExecutor.go @@ -232,7 +232,7 @@ func (hOp *HarborOperator) SyncProjectExec(funcArgs []string) (bool, []string) { }, Description: "", ID: 4, - Insecure: false, + Insecure: true, Name: "cmii", // 源 Harbor 实例的注册表 ID,通常为 0 Type: "harbor", URL: "10.250.0.126:8033", @@ -262,7 +262,7 @@ func (hOp *HarborOperator) SyncProjectExec(funcArgs []string) (bool, []string) { }, Description: "", ID: 4, - Insecure: false, + Insecure: true, Name: "cmii", // 源 Harbor 实例的注册表 ID,通常为 0 Type: "harbor", URL: "10.250.0.100:8033",