[ Server ] [ Harbor ] - sync projects - 5
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user