github.com/jenspinney/cli@v6.42.1-0.20190207184520-7450c600020e+incompatible/actor/v2v3action/manifest.go (about)

     1  package v2v3action
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/v2action"
     5  	"code.cloudfoundry.org/cli/actor/v3action"
     6  	"code.cloudfoundry.org/cli/util/manifest"
     7  )
     8  
     9  type ManifestV2Actor interface {
    10  	CreateApplicationManifestByNameAndSpace(string, string) (manifest.Application, v2action.Warnings, error)
    11  }
    12  
    13  type ManifestV3Actor interface {
    14  	GetApplicationByNameAndSpace(string, string) (v3action.Application, v3action.Warnings, error)
    15  }
    16  
    17  func (actor *Actor) CreateApplicationManifestByNameAndSpace(appName string, appSpace string) (manifest.Application, Warnings, error) {
    18  	var allWarnings Warnings
    19  
    20  	manifestApp, v2warnings, err := actor.V2Actor.CreateApplicationManifestByNameAndSpace(appName, appSpace)
    21  	allWarnings = append(allWarnings, v2warnings...)
    22  	if err != nil {
    23  		return manifest.Application{}, allWarnings, err
    24  	}
    25  
    26  	v3App, v3warnings, v3Err := actor.V3Actor.GetApplicationByNameAndSpace(appName, appSpace)
    27  	allWarnings = append(allWarnings, v3warnings...)
    28  	if v3Err != nil {
    29  		return manifest.Application{}, allWarnings, v3Err
    30  	}
    31  
    32  	manifestApp.Buildpacks = v3App.LifecycleBuildpacks
    33  
    34  	return manifestApp, allWarnings, err
    35  }
    36  
    37  func (Actor) WriteApplicationManifest(manifestApp manifest.Application, manifestPath string) error {
    38  	return manifest.WriteApplicationManifest(manifestApp, manifestPath)
    39  }