func()

in pkg/model/history/changeset.go [143:190]


func (cs *ChangeSet) FlushToHistory(builder *Builder) ([]string, error) {
	changedPaths := []string{}
	// Write revisions in this ChangeSet
	for resourcePath, revisions := range cs.revisions {
		tb := builder.GetTimelineBuilder(resourcePath)
		for _, stagingRevision := range revisions {
			revision, err := stagingRevision.commit(builder.binaryChunk, cs.associatedLog)
			if err != nil {
				return nil, err
			}
			tb.AddRevision(revision)
		}
		changedPaths = append(changedPaths, resourcePath)
	}
	// Write events in this ChangeSet
	for resourcePath, events := range cs.events {
		tb := builder.GetTimelineBuilder(resourcePath)
		for _, event := range events {
			tb.AddEvent(event)
		}
		changedPaths = append(changedPaths, resourcePath)
	}

	// Write log related properties
	if cs.logSummaryRewrite != "" {
		builder.setLogSummary(cs.associatedLog.ID(), cs.logSummaryRewrite)
	}
	if cs.logSeverityRewrite != enum.SeverityUnknown {
		builder.setLogSeverity(cs.associatedLog.ID(), cs.logSeverityRewrite)
	}
	builder.setLogAnnotations(cs.associatedLog.ID(), cs.annotations)

	// Write the alias relationships
	for source, destinations := range cs.aliases {
		for _, dest := range destinations {
			builder.addTimelineAlias(source, dest)
		}
	}

	// Write resource related properties
	for resourcePath, relationship := range cs.resourceRelationshipRewrites {
		err := builder.rewriteRelationship(resourcePath, relationship)
		if err != nil {
			return nil, err
		}
	}
	return common.DedupStringArray(changedPaths), nil
}