github.com/arunkumar7540/cli@v6.45.0+incompatible/actor/v7pushaction/actualize.go (about) 1 package v7pushaction 2 3 import ( 4 log "github.com/sirupsen/logrus" 5 ) 6 7 func (actor Actor) Actualize(plan PushPlan, progressBar ProgressBar) ( 8 <-chan PushPlan, <-chan Event, <-chan Warnings, <-chan error, 9 ) { 10 log.Debugln("Starting to Actualize Push plan:", plan) 11 planStream := make(chan PushPlan) 12 eventStream := make(chan Event) 13 warningsStream := make(chan Warnings) 14 errorStream := make(chan error) 15 16 go func() { 17 log.Debug("starting actualize go routine") 18 defer close(planStream) 19 defer close(eventStream) 20 defer close(warningsStream) 21 defer close(errorStream) 22 23 var err error 24 var warnings Warnings 25 for _, changeAppFunc := range actor.ChangeApplicationSequence(plan) { 26 plan, warnings, err = changeAppFunc(plan, eventStream, progressBar) 27 warningsStream <- warnings 28 if err != nil { 29 errorStream <- err 30 return 31 } 32 planStream <- plan 33 } 34 35 log.Debug("completed apply") 36 eventStream <- Complete 37 }() 38 39 return planStream, eventStream, warningsStream, errorStream 40 }