Documentation ¶
Overview ¶
Package v7pushaction contains the business logic for orchestrating a V2 app push.
Index ¶
- Constants
- func ShouldCreateAndMapDefaultRoute(plan PushPlan) bool
- func ShouldCreateAndMapRandomRoute(plan PushPlan) bool
- func ShouldCreateBitsPackage(plan PushPlan) bool
- func ShouldCreateDeployment(plan PushPlan) bool
- func ShouldCreateDockerPackage(plan PushPlan) bool
- func ShouldCreateDroplet(plan PushPlan) bool
- func ShouldRestart(plan PushPlan) bool
- func ShouldScaleWebProcess(plan PushPlan) bool
- func ShouldSetDroplet(plan PushPlan) bool
- func ShouldStagePackage(plan PushPlan) bool
- func ShouldStopApplication(plan PushPlan) bool
- func ShouldUnmapRoutes(plan PushPlan) bool
- func ShouldUpdateApplication(plan PushPlan) bool
- func ShouldUpdateWebProcess(plan PushPlan) bool
- type Actor
- func (actor Actor) Actualize(plan PushPlan, progressBar ProgressBar) <-chan *PushEvent
- func (actor Actor) CreateAndMapRoute(orgGUID string, spaceGUID string, app v7action.Application, ...) (Warnings, error)
- func (actor Actor) CreateAndReturnArchivePath(pushPlan PushPlan, unmatchedResources []sharedaction.V3Resource) (string, error)
- func (actor Actor) CreateAndUploadApplicationBits(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (v7action.Package, Warnings, error)
- func (actor Actor) CreateBitsPackageForApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) CreateDeploymentForApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) CreateDockerPackageForApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) CreateDropletForApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) CreatePushPlans(appNameArg string, spaceGUID string, orgGUID string, parser ManifestParser, ...) ([]PushPlan, error)
- func (actor Actor) GetPrepareApplicationSourceSequence(plan PushPlan) []ChangeApplicationFunc
- func (actor Actor) GetRuntimeSequence(plan PushPlan) []ChangeApplicationFunc
- func (actor Actor) GetUpdateSequence(plan PushPlan) []ChangeApplicationFunc
- func (actor Actor) MatchResources(resources []sharedaction.V3Resource) ([]sharedaction.V3Resource, []sharedaction.V3Resource, Warnings, error)
- func (actor Actor) PrepareSpace(pushPlans []PushPlan, manifestParser ManifestParser) ([]string, <-chan *PushEvent)
- func (actor Actor) RestartApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) ScaleWebProcessForApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) SetDropletForApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) SetupAllResourcesForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- func (actor Actor) StagePackageForApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) StopApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) UnmapRoutesFromApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) UpdateApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) UpdateApplicationSettings(pushPlans []PushPlan) ([]PushPlan, Warnings, error)
- func (actor Actor) UpdateRoutesForApplicationWithDefaultRoute(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) UpdateRoutesForApplicationWithRandomRoute(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- func (actor Actor) UpdateWebProcessForApplication(pushPlan PushPlan, eventStream chan<- *PushEvent, progressBar ProgressBar) (PushPlan, Warnings, error)
- type Application
- type ChangeApplicationFunc
- type Event
- type FlagOverrides
- type GenesisTechnique
- type ManifestParser
- type ProgressBar
- type PushEvent
- type PushPlan
- func SetupApplicationForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- func SetupBitsPathForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- func SetupDeploymentStrategyForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- func SetupDockerImageCredentialsForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- func SetupDropletPathForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- func SetupNoStartForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- func SetupNoWaitForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- func SetupScaleWebProcessForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- func SetupSkipRouteCreationForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- func SetupUpdateWebProcessForPushPlan(pushPlan PushPlan, overrides FlagOverrides, ...) (PushPlan, error)
- type RandomWordGenerator
- type SharedActor
- type UpdatePushPlanFunc
- type V2Actor
- type V7Actor
- type Warnings
Constants ¶
const ProtocolRegexp = "^https?://|^tcp://"
const PushRetries = 3
const URLRegexp = "^(?:https?://|tcp://)?(?:(?:[\\w-]+\\.)|(?:[*]\\.))+\\w+(?:\\:\\d+)?(?:/.*)*(?:\\.\\w+)?$"
const UploadRetries = 3
Variables ¶
This section is empty.
Functions ¶
func ShouldCreateBitsPackage ¶
func ShouldCreateDeployment ¶
func ShouldCreateDroplet ¶
func ShouldRestart ¶
func ShouldScaleWebProcess ¶
func ShouldSetDroplet ¶
func ShouldStagePackage ¶
func ShouldStopApplication ¶
func ShouldUnmapRoutes ¶
func ShouldUpdateApplication ¶
func ShouldUpdateWebProcess ¶
Types ¶
type Actor ¶
type Actor struct { V7Actor V7Actor PreparePushPlanSequence []UpdatePushPlanFunc ChangeApplicationSequence func(plan PushPlan) []ChangeApplicationFunc RandomWordGenerator RandomWordGenerator // contains filtered or unexported fields }
Actor handles all business logic for Cloud Controller v2 operations.
func NewActor ¶
func NewActor(v3Actor V7Actor, sharedActor SharedActor) *Actor
NewActor returns a new actor.
func (Actor) Actualize ¶
func (actor Actor) Actualize(plan PushPlan, progressBar ProgressBar) <-chan *PushEvent
func (Actor) CreateAndMapRoute ¶
func (actor Actor) CreateAndMapRoute(orgGUID string, spaceGUID string, app v7action.Application, gt GenesisTechnique) (Warnings, error)
func (Actor) CreateAndReturnArchivePath ¶
func (actor Actor) CreateAndReturnArchivePath(pushPlan PushPlan, unmatchedResources []sharedaction.V3Resource) (string, error)
func (Actor) CreateAndUploadApplicationBits ¶
func (Actor) CreateBitsPackageForApplication ¶
func (Actor) CreateDeploymentForApplication ¶
func (Actor) CreateDockerPackageForApplication ¶
func (Actor) CreateDropletForApplication ¶
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) GetPrepareApplicationSourceSequence ¶
func (actor Actor) GetPrepareApplicationSourceSequence(plan PushPlan) []ChangeApplicationFunc
func (Actor) GetRuntimeSequence ¶
func (actor Actor) GetRuntimeSequence(plan PushPlan) []ChangeApplicationFunc
func (Actor) GetUpdateSequence ¶
func (actor Actor) GetUpdateSequence(plan PushPlan) []ChangeApplicationFunc
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) ([]string, <-chan *PushEvent)
func (Actor) RestartApplication ¶
func (Actor) ScaleWebProcessForApplication ¶
func (Actor) SetDropletForApplication ¶
func (Actor) SetupAllResourcesForPushPlan ¶
func (actor Actor) SetupAllResourcesForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)
func (Actor) StagePackageForApplication ¶
func (Actor) StopApplication ¶
func (Actor) UnmapRoutesFromApplication ¶
func (Actor) UpdateApplication ¶
func (Actor) UpdateApplicationSettings ¶
UpdateApplicationSettings syncs the Application state and GUID with the API.
func (Actor) UpdateRoutesForApplicationWithDefaultRoute ¶
func (Actor) UpdateRoutesForApplicationWithRandomRoute ¶
func (Actor) UpdateWebProcessForApplication ¶
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<- *PushEvent, 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" CreatingDroplet Event = "creating droplet" CreatingPackage Event = "creating package" PollingBuild Event = "polling build" ReadingArchive Event = "reading archive" ResourceMatching Event = "resource matching" RestartingApplication Event = "restarting application" RestartingApplicationComplete Event = "restarting application complete" 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" StartingDeployment Event = "starting deployment" 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" WaitingForDeployment Event = "waiting for deployment" Complete Event = "complete" )
type FlagOverrides ¶
type FlagOverrides struct { Buildpacks []string Stack string Disk types.NullUint64 DropletPath string DockerImage string DockerPassword string DockerUsername string HealthCheckEndpoint string HealthCheckTimeout int64 HealthCheckType constant.HealthCheckType Instances types.NullInt Memory types.NullUint64 NoStart bool NoWait bool ProvidedAppPath string NoRoute bool RandomRoute bool StartCommand types.FilteredString Strategy constant.DeploymentStrategy }
type GenesisTechnique ¶
type GenesisTechnique int
const ( DefaultRoute GenesisTechnique = iota RandomRoute )
type ManifestParser ¶
type ManifestParser interface { Apps() []manifestparser.Application ContainsManifest() bool FullRawManifest() []byte RawAppManifest(appName string) ([]byte, error) }
type ProgressBar ¶
type PushPlan ¶
type PushPlan struct { SpaceGUID string OrgGUID string Application v7action.Application ApplicationRoutes []v7action.Route ApplicationNeedsUpdate bool NoStart bool NoWait bool NoRouteFlag bool RandomRoute bool SkipRouteCreation bool Strategy constant.DeploymentStrategy DockerImageCredentials v7action.DockerImageCredentials DockerImageCredentialsNeedsUpdate bool ScaleWebProcess v7action.Process ScaleWebProcessNeedsUpdate bool UpdateWebProcess v7action.Process UpdateWebProcessNeedsUpdate bool Manifest []byte Archive bool BitsPath string DropletPath 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 SetupDeploymentStrategyForPushPlan ¶
func SetupDeploymentStrategyForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)
func SetupDockerImageCredentialsForPushPlan ¶
func SetupDockerImageCredentialsForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)
func SetupDropletPathForPushPlan ¶
func SetupDropletPathForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)
func SetupNoStartForPushPlan ¶
func SetupNoStartForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error)
func SetupNoWaitForPushPlan ¶
func SetupNoWaitForPushPlan(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)
type RandomWordGenerator ¶
RandomWordGenerator returns random words.
type SharedActor ¶
type SharedActor interface {}
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 { CreateApplicationDroplet(appGUID string) (v7action.Droplet, v7action.Warnings, error) CreateApplicationInSpace(app v7action.Application, spaceGUID string) (v7action.Application, v7action.Warnings, error) CreateBitsPackageByApplication(appGUID string) (v7action.Package, v7action.Warnings, error) CreateDeployment(appGUID string, dropletGUID string) (string, v7action.Warnings, error) CreateDockerPackageByApplication(appGUID string, dockerImageCredentials v7action.DockerImageCredentials) (v7action.Package, v7action.Warnings, error) CreateRoute(spaceGUID, domainName, hostname, path string) (v7action.Route, v7action.Warnings, error) GetApplicationByNameAndSpace(appName string, spaceGUID string) (v7action.Application, v7action.Warnings, error) GetApplicationDroplets(appName string, spaceGUID string) ([]v7action.Droplet, v7action.Warnings, error) GetApplicationRoutes(appGUID string) ([]v7action.Route, v7action.Warnings, error) GetApplicationsByNamesAndSpace(appNames []string, spaceGUID string) ([]v7action.Application, v7action.Warnings, error) GetDefaultDomain(orgGUID string) (v7action.Domain, v7action.Warnings, error) GetDomain(domainGUID string) (v7action.Domain, v7action.Warnings, error) GetRouteByAttributes(domainName, domainGUID, hostname, path string) (v7action.Route, v7action.Warnings, error) GetRouteDestinationByAppGUID(routeGUID string, appGUID string) (v7action.RouteDestination, v7action.Warnings, error) MapRoute(routeGUID string, appGUID string) (v7action.Warnings, error) PollBuild(buildGUID string, appName string) (v7action.Droplet, v7action.Warnings, error) PollPackage(pkg v7action.Package) (v7action.Package, v7action.Warnings, error) PollStart(appGUID string, noWait bool) (v7action.Warnings, error) PollStartForRolling(appGUID string, deploymentGUID string, noWait bool) (v7action.Warnings, error) ResourceMatch(resources []sharedaction.V3Resource) ([]sharedaction.V3Resource, v7action.Warnings, error) RestartApplication(appGUID string, noWait bool) (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) UnmapRoute(routeGUID string, destinationGUID 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) UploadDroplet(dropletGUID string, dropletPath string, progressReader io.Reader, fileSize int64) (v7action.Warnings, error) }
Source Files ¶
- actor.go
- actualize.go
- application.go
- change_application_func.go
- create_bits_package_for_application.go
- create_deployment_for_push_plan.go
- create_docker_package_for_application.go
- create_droplet_for_application.go
- create_push_plans.go
- event.go
- manifest_parser.go
- prepare_space.go
- progress_bar.go
- push_plan.go
- random_word_generator.go
- resource_match.go
- restart_application.go
- route.go
- scale_web_process_for_application.go
- sequence.go
- set_droplet_for_application.go
- setup_all_resources_for_push_plan.go
- setup_application_for_push_plan.go
- setup_bits_path_for_push_plan.go
- setup_deployment_strategy_for_push_plan.go
- setup_docker_image_credentials_for_push_plan.go
- setup_droplet_path_for_push_plan.go
- setup_no_start_for_push_plan.go
- setup_no_wait_for_push_plan.go
- setup_scale_web_process_for_push_plan.go
- setup_skip_route_creation_for_push_plan.go
- setup_update_web_process_for_push_plan.go
- shared_actor.go
- stage_package_for_application.go
- stop_application.go
- unmap_routes_from_application.go
- update_application.go
- update_application_settings.go
- update_push_plan_func.go
- update_routes_for_application_with_default_route.go
- update_routes_for_application_with_random_route.go
- update_web_process_for_application.go
- v2_actor.go
- v7_actor.go