v7pushaction

package
v6.44.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2019 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package v7pushaction contains the business logic for orchestrating a V2 app push.

Index

Constants

View Source
const ProtocolRegexp = "^https?://|^tcp://"
View Source
const PushRetries = 3
View Source
const URLRegexp = "^(?:https?://|tcp://)?(?:(?:[\\w-]+\\.)|(?:[*]\\.))+\\w+(?:\\:\\d+)?(?:/.*)*(?:\\.\\w+)?$"

Variables

This section is empty.

Functions

This section is empty.

Types

type Actor

type Actor struct {
	SharedActor SharedActor
	V2Actor     V2Actor
	V7Actor     V7Actor

	PushPlanFuncs []UpdatePushPlanFunc

	ChangeApplicationFuncs []ChangeApplicationFunc
	StartFuncs             []ChangeApplicationFunc
	NoStartFuncs           []ChangeApplicationFunc
	// contains filtered or unexported fields
}

Actor handles all business logic for Cloud Controller v2 operations.

func NewActor

func NewActor(v2Actor V2Actor, v3Actor V7Actor, sharedActor SharedActor) *Actor

NewActor returns a new actor.

func (Actor) Actualize

func (actor Actor) Actualize(plan PushPlan, progressBar ProgressBar) (
	<-chan PushPlan, <-chan Event, <-chan Warnings, <-chan error,
)

func (Actor) CreateAndMapDefaultApplicationRoute

func (actor Actor) CreateAndMapDefaultApplicationRoute(orgGUID string, spaceGUID string, app v7action.Application) (Warnings, error)

func (Actor) CreateAndReturnArchivePath

func (actor Actor) CreateAndReturnArchivePath(plan PushPlan, unmatchedResources []sharedaction.V3Resource) (string, error)

func (Actor) CreateAndUploadApplicationBits

func (actor Actor) CreateAndUploadApplicationBits(plan PushPlan, progressBar ProgressBar, eventStream chan<- Event) (v7action.Package, Warnings, error)

func (Actor) CreateBitsPackageForApplication

func (actor Actor) CreateBitsPackageForApplication(pushPlan PushPlan, eventStream chan<- Event, progressBar ProgressBar) (PushPlan, Warnings, error)

func (Actor) CreateDockerPackageForApplication

func (actor Actor) CreateDockerPackageForApplication(pushPlan PushPlan, eventStream chan<- Event, progressBar ProgressBar) (PushPlan, Warnings, error)

func (Actor) CreatePushPlans

func (actor Actor) CreatePushPlans(appNameArg string, spaceGUID string, orgGUID string, parser ManifestParser, overrides FlagOverrides) ([]PushPlan, error)

CreatePushPlans returns a set of PushPlan objects based off the inputs provided. It's assumed that all flag and argument and manifest combinations have been validated prior to calling this function.

func (Actor) DefaultDomain

func (actor Actor) DefaultDomain(orgGUID string) (v2action.Domain, Warnings, error)

DefaultDomain looks up the shared and then private domains and returns back the first one in the list as the default.

func (Actor) MatchResources

func (actor Actor) MatchResources(resources []sharedaction.V3Resource) ([]sharedaction.V3Resource, []sharedaction.V3Resource, Warnings, error)

MatchResources returns back a list of matched and unmatched resources for the provided resources.

func (Actor) PrepareSpace

func (actor Actor) PrepareSpace(pushPlans []PushPlan, manifestParser ManifestParser) (<-chan []PushPlan, <-chan Event, <-chan Warnings, <-chan error)

func (Actor) ScaleWebProcessForApplication

func (actor Actor) ScaleWebProcessForApplication(pushPlan PushPlan, eventStream chan<- Event, progressBar ProgressBar) (PushPlan, Warnings, error)

func (Actor) SetDropletForApplication

func (actor Actor) SetDropletForApplication(pushPlan PushPlan, eventStream chan<- Event, progressBar ProgressBar) (PushPlan, Warnings, error)

func (Actor) SetupAllResourcesForPushPlan

func (actor Actor) SetupAllResourcesForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)

func (Actor) StagePackageForApplication

func (actor Actor) StagePackageForApplication(pushPlan PushPlan, eventStream chan<- Event, progressBar ProgressBar) (PushPlan, Warnings, error)

func (Actor) StopApplication

func (actor Actor) StopApplication(pushPlan PushPlan, eventStream chan<- Event, progressBar ProgressBar) (PushPlan, Warnings, error)

func (Actor) UpdateApplication

func (actor Actor) UpdateApplication(pushPlan PushPlan, eventStream chan<- Event, progressBar ProgressBar) (PushPlan, Warnings, error)

func (Actor) UpdateApplicationSettings

func (actor Actor) UpdateApplicationSettings(pushPlans []PushPlan) ([]PushPlan, Warnings, error)

UpdateApplicationSettings syncs the Application state and GUID with the API.

func (Actor) UpdateRoutesForApplication

func (actor Actor) UpdateRoutesForApplication(pushPlan PushPlan, eventStream chan<- Event, progressBar ProgressBar) (PushPlan, Warnings, error)

func (Actor) UpdateWebProcessForApplication

func (actor Actor) UpdateWebProcessForApplication(pushPlan PushPlan, eventStream chan<- Event, progressBar ProgressBar) (PushPlan, Warnings, error)

type Application

type Application struct {
	v2action.Application
	Buildpacks []string
	Stack      v2action.Stack
}

func (Application) CalculatedBuildpacks

func (app Application) CalculatedBuildpacks() []string

CalculatedBuildpacks will return back the buildpacks for the application.

func (*Application) SetStack

func (app *Application) SetStack(stack v2action.Stack)

func (Application) String

func (app Application) String() string

type ChangeApplicationFunc

type ChangeApplicationFunc func(pushPlan PushPlan, eventStream chan<- Event, progressBar ProgressBar) (PushPlan, Warnings, error)

ChangeApplicationFunc is a function that is used by Actualize to setup application for staging, droplet creation, etc.

type Event

type Event string
const (
	ApplicationAlreadyExists        Event = "App already exists"
	ApplyManifest                   Event = "Applying manifest"
	ApplyManifestComplete           Event = "Applying manifest Complete"
	BoundRoutes                     Event = "bound routes"
	BoundServices                   Event = "bound services"
	ConfiguringServices             Event = "configuring services"
	CreatedApplication              Event = "created application"
	CreatedRoutes                   Event = "created routes"
	CreatingAndMappingRoutes        Event = "creating and mapping routes"
	CreatingApplication             Event = "creating application"
	CreatingArchive                 Event = "creating archive"
	CreatingPackage                 Event = "creating package"
	PollingBuild                    Event = "polling build"
	ReadingArchive                  Event = "reading archive"
	ResourceMatching                Event = "resource matching"
	RetryUpload                     Event = "retry upload"
	ScaleWebProcess                 Event = "scaling the web process"
	ScaleWebProcessComplete         Event = "scaling the web process complete"
	SetDockerImage                  Event = "setting docker properties"
	SetDockerImageComplete          Event = "completed setting docker properties"
	SetDropletComplete              Event = "set droplet complete"
	SetProcessConfiguration         Event = "setting configuration on the process"
	SetProcessConfigurationComplete Event = "completed setting configuration on the process"
	SettingDroplet                  Event = "setting droplet"
	SettingUpApplication            Event = "setting up application"
	SkippingApplicationCreation     Event = "skipping creation"
	StagingComplete                 Event = "staging complete"
	StartingStaging                 Event = "starting staging"
	StoppingApplication             Event = "stopping application"
	StoppingApplicationComplete     Event = "stopping application complete"
	UnmappingRoutes                 Event = "unmapping routes"
	UpdatedApplication              Event = "updated application"
	UploadDropletComplete           Event = "upload droplet complete"
	UploadingApplication            Event = "uploading application"
	UploadingApplicationWithArchive Event = "uploading application with archive"
	UploadingDroplet                Event = "uploading droplet"
	UploadWithArchiveComplete       Event = "upload complete"
	Complete                        Event = "complete"
)

type FlagOverrides

type FlagOverrides struct {
	Buildpacks          []string
	Stack               string
	Disk                types.NullUint64
	DockerImage         string
	DockerPassword      string
	DockerUsername      string
	HealthCheckEndpoint string
	HealthCheckTimeout  int64
	HealthCheckType     constant.HealthCheckType
	Instances           types.NullInt
	Memory              types.NullUint64
	NoStart             bool
	ProvidedAppPath     string
	SkipRouteCreation   bool
	StartCommand        types.FilteredString
}

type ManifestParser

type ManifestParser interface {
	Apps(appName string) ([]manifestparser.Application, error)
	ContainsManifest() bool
	FullRawManifest() []byte
	RawAppManifest(appName string) ([]byte, error)
}

type ProgressBar

type ProgressBar interface {
	NewProgressBarWrapper(reader io.Reader, sizeOfFile int64) io.Reader
}

type PushPlan

type PushPlan struct {
	SpaceGUID string
	OrgGUID   string

	Application            v7action.Application
	ApplicationNeedsUpdate bool

	NoStart           bool
	NoRouteFlag       bool
	SkipRouteCreation bool

	DockerImageCredentials            v7action.DockerImageCredentials
	DockerImageCredentialsNeedsUpdate bool

	ScaleWebProcess            v7action.Process
	ScaleWebProcessNeedsUpdate bool

	UpdateWebProcess            v7action.Process
	UpdateWebProcessNeedsUpdate bool

	Manifest []byte

	Archive      bool
	BitsPath     string
	AllResources []sharedaction.V3Resource

	PackageGUID string
	DropletGUID string
}

func SetupApplicationForPushPlan

func SetupApplicationForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)

func SetupBitsPathForPushPlan

func SetupBitsPathForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)

func SetupDockerImageCredentialsForPushPlan

func SetupDockerImageCredentialsForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)

func SetupNoStartForPushPlan

func SetupNoStartForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)

func SetupScaleWebProcessForPushPlan

func SetupScaleWebProcessForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)

func SetupSkipRouteCreationForPushPlan

func SetupSkipRouteCreationForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)

func SetupUpdateWebProcessForPushPlan

func SetupUpdateWebProcessForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)

func (PushPlan) String

func (state PushPlan) String() string

type SharedActor

type SharedActor interface {
	GatherArchiveResources(archivePath string) ([]sharedaction.Resource, error)
	GatherDirectoryResources(sourceDir string) ([]sharedaction.Resource, error)
	ReadArchive(archivePath string) (io.ReadCloser, int64, error)
	ZipArchiveResources(sourceArchivePath string, filesToInclude []sharedaction.Resource) (string, error)
	ZipDirectoryResources(sourceDir string, filesToInclude []sharedaction.Resource) (string, error)
}

type UpdatePushPlanFunc

type UpdatePushPlanFunc func(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)

UpdatePushPlanFunc is a function that is used by CreatePushPlans to setup push plans for the push command.

type V2Actor

type V2Actor interface {
	MapRouteToApplication(routeGUID string, appGUID string) (v2action.Warnings, error)
	CreateRoute(route v2action.Route, generatePort bool) (v2action.Route, v2action.Warnings, error)
	FindRouteBoundToSpaceWithSettings(route v2action.Route) (v2action.Route, v2action.Warnings, error)
	GetApplicationRoutes(applicationGUID string) (v2action.Routes, v2action.Warnings, error)
	GetOrganizationDomains(orgGUID string) ([]v2action.Domain, v2action.Warnings, error)
}

type V7Actor

type V7Actor interface {
	CreateApplicationInSpace(app v7action.Application, spaceGUID string) (v7action.Application, v7action.Warnings, error)
	CreateBitsPackageByApplication(appGUID string) (v7action.Package, v7action.Warnings, error)
	CreateDockerPackageByApplication(appGUID string, dockerImageCredentials v7action.DockerImageCredentials) (v7action.Package, v7action.Warnings, error)
	GetApplicationByNameAndSpace(appName string, spaceGUID string) (v7action.Application, v7action.Warnings, error)
	GetApplicationsByNamesAndSpace(appNames []string, spaceGUID string) ([]v7action.Application, v7action.Warnings, error)
	PollBuild(buildGUID string, appName string) (v7action.Droplet, v7action.Warnings, error)
	PollPackage(pkg v7action.Package) (v7action.Package, v7action.Warnings, error)
	ResourceMatch(resources []sharedaction.V3Resource) ([]sharedaction.V3Resource, v7action.Warnings, error)
	ScaleProcessByApplication(appGUID string, process v7action.Process) (v7action.Warnings, error)
	SetApplicationDroplet(appGUID string, dropletGUID string) (v7action.Warnings, error)
	SetApplicationManifest(appGUID string, rawManifest []byte) (v7action.Warnings, error)
	SetSpaceManifest(spaceGUID string, rawManifest []byte, noRouteFlag bool) (v7action.Warnings, error)
	StageApplicationPackage(pkgGUID string) (v7action.Build, v7action.Warnings, error)
	StopApplication(appGUID string) (v7action.Warnings, error)
	UpdateApplication(app v7action.Application) (v7action.Application, v7action.Warnings, error)
	UpdateProcessByTypeAndApplication(processType string, appGUID string, updatedProcess v7action.Process) (v7action.Warnings, error)
	UploadBitsPackage(pkg v7action.Package, matchedResources []sharedaction.V3Resource, newResources io.Reader, newResourcesLength int64) (v7action.Package, v7action.Warnings, error)
}

type Warnings

type Warnings []string

Warnings is a list of warnings returned back from the cloud controller

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL