MCPcopy Index your code
hub / github.com/APIParkLab/APIPark / Diff

Method Diff

module/service-diff/iml.go:32–66  ·  view source on GitHub ↗
(ctx context.Context, serviceId string, baseRelease, targetRelease string)

Source from the content-addressed store, hash-verified

30}
31
32func (m *imlServiceDiff) Diff(ctx context.Context, serviceId string, baseRelease, targetRelease string) (*service_diff.Diff, error) {
33 if targetRelease == "" {
34 return nil, fmt.Errorf("target release is required")
35 }
36
37 var target *projectInfo
38
39 targetReleaseValue, err := m.releaseService.GetRelease(ctx, targetRelease)
40 if err != nil {
41 return nil, fmt.Errorf("get target release failed:%w", err)
42 }
43 if targetReleaseValue.Service != serviceId {
44 return nil, errors.New("project not match")
45 }
46
47 target, err = m.getReleaseInfo(ctx, targetRelease)
48 if err != nil {
49 return nil, err
50 }
51 base, err := m.getBaseInfo(ctx, serviceId, baseRelease)
52 if err != nil {
53 return nil, err
54 }
55 target.id = serviceId
56 clusters, err := m.clusterService.List(ctx)
57 if err != nil {
58 return nil, err
59 }
60 clusterIds := utils.SliceToSlice(clusters, func(i *cluster.Cluster) string {
61 return i.Uuid
62 })
63 diff := m.diff(clusterIds, base, target)
64 return diff, nil
65
66}
67func (m *imlServiceDiff) getBaseInfo(ctx context.Context, serviceId, baseRelease string) (*projectInfo, error) {
68 if baseRelease == "" {
69 return &projectInfo{}, nil

Callers

nothing calls this directly

Calls 5

getReleaseInfoMethod · 0.95
getBaseInfoMethod · 0.95
diffMethod · 0.95
GetReleaseMethod · 0.65
ListMethod · 0.65

Tested by

no test coverage detected