Merge branch 'main' of https://gitea.107421.xyz/zeaslity/ProjectOctopus into main
This commit is contained in:
@@ -218,32 +218,59 @@ func (hOp *HarborOperator) SyncProjectExec(funcArgs []string) (bool, []string) {
|
|||||||
|
|
||||||
// 创建复制策略
|
// 创建复制策略
|
||||||
newPolicy := &model.ReplicationPolicy{
|
newPolicy := &model.ReplicationPolicy{
|
||||||
Name: "sync-repositories-to-target",
|
CopyByChunk: nil,
|
||||||
Enabled: true,
|
Deletion: false,
|
||||||
Deletion: false,
|
Description: "",
|
||||||
Override: true,
|
DestNamespace: "", // 可以指定目标 Harbor 中的特定项目,如果为空,则使用源项目名称
|
||||||
SrcRegistry: &model.Registry{
|
DestNamespaceReplaceCount: nil,
|
||||||
Name: "cmii", // 源 Harbor 实例的注册表 ID,通常为 0
|
|
||||||
},
|
|
||||||
DestRegistry: &model.Registry{
|
DestRegistry: &model.Registry{
|
||||||
Name: "cmii", // 目标 Harbor 实例的注册表 ID,需要根据实际情况设置
|
Credential: &model.RegistryCredential{
|
||||||
|
AccessKey: "admin",
|
||||||
|
AccessSecret: "V2ryStr@ngPss",
|
||||||
|
Type: "basic",
|
||||||
|
},
|
||||||
|
Description: "",
|
||||||
|
ID: 4,
|
||||||
|
Insecure: true,
|
||||||
|
Name: "cmii", // 源 Harbor 实例的注册表 ID,通常为 0
|
||||||
|
Type: "harbor",
|
||||||
|
URL: "10.250.0.126:8033",
|
||||||
|
},
|
||||||
|
Enabled: true,
|
||||||
|
//Filters: []*model.ReplicationFilter{
|
||||||
|
// {
|
||||||
|
// Type: "name",
|
||||||
|
// Value: "cmii/**", // 根据需要同步的仓库进行调整
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// Type: "name",
|
||||||
|
// Value: "rancher/**", // 根据需要同步的仓库进行调整
|
||||||
|
// },
|
||||||
|
//},
|
||||||
|
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: true,
|
||||||
|
Name: "cmii", // 源 Harbor 实例的注册表 ID,通常为 0
|
||||||
|
Type: "harbor",
|
||||||
|
URL: "10.250.0.100:8033",
|
||||||
},
|
},
|
||||||
DestNamespace: "", // 可以指定目标 Harbor 中的特定项目,如果为空,则使用源项目名称
|
|
||||||
Trigger: &model.ReplicationTrigger{
|
Trigger: &model.ReplicationTrigger{
|
||||||
Type: "manual", // 可以是 "manual", "scheduled", 或 "event_based"
|
Type: "manual", // 可以是 "manual", "scheduled", 或 "event_based"
|
||||||
// 如果是 "scheduled",还需要设置 Cron 表达式
|
// 如果是 "scheduled",还需要设置 Cron 表达式
|
||||||
// TriggerSettings: &model.TriggerSettings{Cron: "0 * * * *"},
|
// TriggerSettings: &model.TriggerSettings{Cron: "0 * * * *"},
|
||||||
},
|
},
|
||||||
Filters: []*model.ReplicationFilter{
|
|
||||||
{
|
|
||||||
Type: "name",
|
|
||||||
Value: "cmii/**", // 根据需要同步的仓库进行调整
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Type: "name",
|
|
||||||
Value: "rancher/**", // 根据需要同步的仓库进行调整
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 在源 Harbor 中创建复制策略
|
// 在源 Harbor 中创建复制策略
|
||||||
@@ -251,7 +278,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)
|
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 {
|
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)
|
log.Error(syncErrorMessage)
|
||||||
return false, []string{
|
return false, []string{
|
||||||
syncErrorMessage,
|
syncErrorMessage,
|
||||||
|
|||||||
@@ -34,10 +34,10 @@ public class TestBaseFuncScheduler {
|
|||||||
|
|
||||||
ServerQueryEntity serverQueryEntity = new ServerQueryEntity();
|
ServerQueryEntity serverQueryEntity = new ServerQueryEntity();
|
||||||
// exsi server
|
// exsi server
|
||||||
// serverQueryEntity.setServerName("Chengdu-amd64-99");
|
serverQueryEntity.setServerName("Chengdu-amd64-99");
|
||||||
|
|
||||||
// lappro
|
// lappro
|
||||||
serverQueryEntity.setServerName("Chengdu-amd64-65");
|
// serverQueryEntity.setServerName("Chengdu-amd64-65");
|
||||||
|
|
||||||
ServerInfoPO serverInfoPO = serverService
|
ServerInfoPO serverInfoPO = serverService
|
||||||
.serverGetByPage(serverQueryEntity)
|
.serverGetByPage(serverQueryEntity)
|
||||||
|
|||||||
Reference in New Issue
Block a user