get.porter.sh/porter@v1.3.0/pkg/cnab/provider/parameters.go (about) 1 package cnabprovider 2 3 import ( 4 "context" 5 6 "get.porter.sh/porter/pkg/cnab" 7 "get.porter.sh/porter/pkg/storage" 8 "get.porter.sh/porter/pkg/tracing" 9 ) 10 11 // loadParameters resolves the prepared parameter set associated with the Run, and 12 // updates Run.Parameters with the resolved values. 13 func (r *Runtime) loadParameters(ctx context.Context, b cnab.ExtendedBundle, run *storage.Run) error { 14 ctx, span := tracing.StartSpan(ctx) 15 defer span.EndSpan() 16 17 resolvedParameters, err := r.parameters.ResolveAll(ctx, run.Parameters, run.Parameters.Keys()) 18 if err != nil { 19 return err 20 } 21 22 // Apply the resolved values back onto the run, these won't be persisted but are used in-memory 23 for i, param := range run.Parameters.Parameters { 24 run.Parameters.Parameters[i].ResolvedValue = resolvedParameters[param.Name] 25 } 26 27 if err = run.Parameters.ValidateBundle(b.Parameters, run.Action); err != nil { 28 return span.Error(err) 29 } 30 31 if err = run.SetParametersDigest(); err != nil { 32 // Just warn since the digest isn't critical for running the bundle 33 // If it's not set properly, we will recalculate as needed 34 span.Warnf("WARNING: unable to set the run's parameters digest: %w", err) 35 } 36 37 return nil 38 }