plan/plan.go
func (p *Plan) Calculate() *Plan {
	t := newPlanTable()

	for _, current := range filterRecordsForPlan(p.Current) {
		t.addCurrent(current)
	}
	for _, desired := range filterRecordsForPlan(p.Desired) {
		t.addCandidate(desired)
	}

	changes := &Changes{}
	changes.Create = t.getCreates()
	changes.Delete = t.getDeletes()
	changes.UpdateNew, changes.UpdateOld = t.getUpdates()
	for _, pol := range p.Policies {
		changes = pol.Apply(changes)
	}

	plan := &Plan{
		Current: p.Current,
		Desired: p.Desired,
		Changes: changes,
	}

	return plan
}
func (p *Plan) Calculate() *Plan {
	t := newPlanTable()

	for _, current := range filterRecordsForPlan(p.Current) {
		t.addCurrent(current)
	}
	for _, desired := range filterRecordsForPlan(p.Desired) {
		t.addCandidate(desired)
	}

	changes := &Changes{}
	changes.Create = t.getCreates()
	changes.Delete = t.getDeletes()
	changes.UpdateNew, changes.UpdateOld = t.getUpdates()
	for _, pol := range p.Policies {
		changes = pol.Apply(changes)
	}

	plan := &Plan{
		Current: p.Current,
		Desired: p.Desired,
		Changes: changes,
	}

	return plan
}
func ( p * Plan ) Calculate ( ) * Plan { t := newPlanTable ( ) for _ , current := range filterRecordsForPlan ( p . Current ) { t . addCurrent ( current ) } for _ , desired := range filterRecordsForPlan ( p . Desired ) { t . addCandidate ( desired ) } changes := & Changes { } changes . Create = t . getCreates ( ) changes . Delete = t . getDeletes ( ) changes . UpdateNew , changes . UpdateOld = t . getUpdates ( ) for _ , pol := range p . Policies { changes = pol . Apply ( changes ) } plan := & Plan { Current : p . Current , Desired : p . Desired , Changes : changes , } return plan }
// Calculate computes the actions needed to move current state towards desired
// state. It then passes those changes to the current policy for further
// processing. It returns a copy of Plan with the changes populated.
Calculate computes the actions needed to move current state towards desired state . It then passes those changes to the current policy for further processing . It returns a copy of Plan with the changes populated .