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  }