get.porter.sh/porter@v1.3.0/pkg/cnab/provider/runtime.go (about) 1 package cnabprovider 2 3 import ( 4 "fmt" 5 6 "get.porter.sh/porter/pkg/cnab" 7 "get.porter.sh/porter/pkg/config" 8 "get.porter.sh/porter/pkg/secrets" 9 "get.porter.sh/porter/pkg/storage" 10 ) 11 12 var _ CNABProvider = &Runtime{} 13 14 type Runtime struct { 15 *config.Config 16 credentials storage.CredentialSetProvider 17 //lint:ignore U1000 unused at the moment, will be used in the future 18 parameters storage.ParameterSetProvider 19 secrets secrets.Store 20 installations storage.InstallationProvider 21 sanitizer *storage.Sanitizer 22 Extensions cnab.ProcessedExtensions 23 } 24 25 func NewRuntime(c *config.Config, installations storage.InstallationProvider, credentials storage.CredentialSetProvider, parameters storage.ParameterSetProvider, secrets secrets.Store, sanitizer *storage.Sanitizer) *Runtime { 26 return &Runtime{ 27 Config: c, 28 installations: installations, 29 credentials: credentials, 30 parameters: parameters, 31 secrets: secrets, 32 sanitizer: sanitizer, 33 Extensions: cnab.ProcessedExtensions{}, 34 } 35 } 36 37 func (r *Runtime) ProcessRequiredExtensions(b cnab.ExtendedBundle) error { 38 exts, err := b.ProcessRequiredExtensions() 39 if err != nil { 40 return fmt.Errorf("unable to process required extensions: %w", err) 41 } 42 r.Extensions = exts 43 return nil 44 }