| 261 | } |
| 262 | |
| 263 | func (m *imlServiceDiff) diffStrategies(base, target []*commit.Commit[strategy.Commit]) []*service_diff.StrategyDiff { |
| 264 | baseStrategy := utils.SliceToMap(base, func(i *commit.Commit[strategy.Commit]) string { |
| 265 | return i.Target |
| 266 | }) |
| 267 | targetStrategy := utils.SliceToMap(target, func(i *commit.Commit[strategy.Commit]) string { |
| 268 | return i.Target |
| 269 | }) |
| 270 | out := make([]*service_diff.StrategyDiff, 0, len(target)) |
| 271 | for _, tc := range targetStrategy { |
| 272 | |
| 273 | //t := tc.Data |
| 274 | key := tc.Target |
| 275 | o := &service_diff.StrategyDiff{ |
| 276 | Strategy: key, |
| 277 | Name: tc.Data.Name, |
| 278 | Priority: tc.Data.Priority, |
| 279 | Change: service_diff.ChangeTypeNone, |
| 280 | Status: 0, |
| 281 | } |
| 282 | b, hasB := baseStrategy[key] |
| 283 | if !hasB { |
| 284 | o.Change = service_diff.ChangeTypeNew |
| 285 | } else if tc.Data.Version != b.Data.Version { |
| 286 | o.Change = service_diff.ChangeTypeUpdate |
| 287 | } |
| 288 | delete(baseStrategy, key) |
| 289 | out = append(out, o) |
| 290 | } |
| 291 | for _, b := range baseStrategy { |
| 292 | o := &service_diff.StrategyDiff{ |
| 293 | Strategy: b.Target, |
| 294 | Name: b.Data.Name, |
| 295 | Priority: b.Data.Priority, |
| 296 | Change: service_diff.ChangeTypeDelete, |
| 297 | Status: 0, |
| 298 | } |
| 299 | out = append(out, o) |
| 300 | } |
| 301 | return out |
| 302 | } |
| 303 | func (m *imlServiceDiff) diff(partitions []string, base, target *projectInfo) *service_diff.Diff { |
| 304 | out := &service_diff.Diff{ |
| 305 | Apis: nil, |