v3action

package
v6.37.0+incompatible Latest Latest
Warning

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

Go to latest
Published: May 25, 2018 License: Apache-2.0 Imports: 14 Imported by: 319

Documentation

Overview

Package v3action contains the business logic for the commands/v3 package

Index

Constants

View Source
const (
	DefaultFolderPermissions      = 0755
	DefaultArchiveFilePermissions = 0744
)
View Source
const StagingLog = "STG"

Variables

This section is empty.

Functions

This section is empty.

Types

type Actor

type Actor struct {
	CloudControllerClient CloudControllerClient
	Config                Config
	SharedActor           SharedActor
	UAAClient             UAAClient
}

Actor represents a V3 actor.

func NewActor

func NewActor(client CloudControllerClient, config Config, sharedActor SharedActor, uaaClient UAAClient) *Actor

NewActor returns a new V3 actor.

func (Actor) ApplyApplicationManifest

func (actor Actor) ApplyApplicationManifest(parser ManifestParser, spaceGUID string) (Warnings, error)

ApplyApplicationManifest reads in the manifest from the path and provides it to the cloud controller.

func (Actor) AssignIsolationSegmentToSpaceByNameAndSpace

func (actor Actor) AssignIsolationSegmentToSpaceByNameAndSpace(isolationSegmentName string, spaceGUID string) (Warnings, error)

func (Actor) CloudControllerAPIVersion

func (actor Actor) CloudControllerAPIVersion() string

CloudControllerAPIVersion returns back the Cloud Controller API version.

func (Actor) CreateAndUploadBitsPackageByApplicationNameAndSpace

func (actor Actor) CreateAndUploadBitsPackageByApplicationNameAndSpace(appName string, spaceGUID string, bitsPath string) (Package, Warnings, error)

func (Actor) CreateApplicationInSpace

func (actor Actor) CreateApplicationInSpace(app Application, spaceGUID string) (Application, Warnings, error)

CreateApplicationInSpace creates and returns the application with the given name in the given space.

func (Actor) CreateDockerPackageByApplicationNameAndSpace

func (actor Actor) CreateDockerPackageByApplicationNameAndSpace(appName string, spaceGUID string, dockerImageCredentials DockerImageCredentials) (Package, Warnings, error)

func (Actor) CreateIsolationSegmentByName

func (actor Actor) CreateIsolationSegmentByName(isolationSegment IsolationSegment) (Warnings, error)

CreateIsolationSegmentByName creates a given isolation segment.

func (Actor) DeleteApplicationByNameAndSpace

func (actor Actor) DeleteApplicationByNameAndSpace(name string, spaceGUID string) (Warnings, error)

func (Actor) DeleteInstanceByApplicationNameSpaceProcessTypeAndIndex

func (actor Actor) DeleteInstanceByApplicationNameSpaceProcessTypeAndIndex(appName string, spaceGUID string, processType string, instanceIndex int) (Warnings, error)

func (Actor) DeleteIsolationSegmentByName

func (actor Actor) DeleteIsolationSegmentByName(name string) (Warnings, error)

DeleteIsolationSegmentByName deletes the given isolation segment.

func (Actor) EntitleIsolationSegmentToOrganizationByName

func (actor Actor) EntitleIsolationSegmentToOrganizationByName(isolationSegmentName string, orgName string) (Warnings, error)

EntitleIsolationSegmentToOrganizationByName entitles the given organization to use the specified isolation segment

func (Actor) GetApplicationByNameAndSpace

func (actor Actor) GetApplicationByNameAndSpace(appName string, spaceGUID string) (Application, Warnings, error)

GetApplicationByNameAndSpace returns the application with the given name in the given space.

func (Actor) GetApplicationDroplets

func (actor Actor) GetApplicationDroplets(appName string, spaceGUID string) ([]Droplet, Warnings, error)

GetApplicationDroplets returns the list of droplets that belong to applicaiton.

func (*Actor) GetApplicationPackages

func (actor *Actor) GetApplicationPackages(appName string, spaceGUID string) ([]Package, Warnings, error)

GetApplicationPackages returns a list of package of an app.

func (Actor) GetApplicationProcessHealthChecksByNameAndSpace

func (actor Actor) GetApplicationProcessHealthChecksByNameAndSpace(appName string, spaceGUID string) ([]ProcessHealthCheck, Warnings, error)

func (Actor) GetApplicationSummaryByNameAndSpace

func (actor Actor) GetApplicationSummaryByNameAndSpace(appName string,
	spaceGUID string) (ApplicationSummary, Warnings, error)

GetApplicationSummaryByNameAndSpace returns an application with process and instance stats.

func (Actor) GetApplicationTasks

func (actor Actor) GetApplicationTasks(appGUID string, sortOrder SortOrder) ([]Task, Warnings, error)

GetApplicationTasks returns a list of tasks associated with the provided appplication GUID.

func (Actor) GetApplicationsBySpace

func (actor Actor) GetApplicationsBySpace(spaceGUID string) ([]Application, Warnings, error)

GetApplicationsBySpace returns all applications in a space.

func (Actor) GetApplicationsWithProcessesBySpace

func (actor Actor) GetApplicationsWithProcessesBySpace(spaceGUID string) ([]ApplicationWithProcessSummary, Warnings, error)

func (Actor) GetCurrentDropletByApplication

func (actor Actor) GetCurrentDropletByApplication(appGUID string) (Droplet, Warnings, error)

func (Actor) GetEffectiveIsolationSegmentBySpace

func (actor Actor) GetEffectiveIsolationSegmentBySpace(spaceGUID string, orgDefaultIsolationSegmentGUID string) (IsolationSegment, Warnings, error)

GetEffectiveIsolationSegmentBySpace returns the space's effective isolation segment.

If the space has its own isolation segment, that will be returned.

If the space does not have one, the organization's default isolation segment (GUID passed in) will be returned.

If the space does not have one and the passed in organization default isolation segment GUID is empty, a NoRelationshipError will be returned.

func (*Actor) GetEnvironmentVariablesByApplicationNameAndSpace

func (actor *Actor) GetEnvironmentVariablesByApplicationNameAndSpace(appName string, spaceGUID string) (EnvironmentVariableGroups, Warnings, error)

GetEnvironmentVariablesByApplicationNameAndSpace returns the environment variables for an application.

func (Actor) GetIsolationSegmentByName

func (actor Actor) GetIsolationSegmentByName(name string) (IsolationSegment, Warnings, error)

GetIsolationSegmentByName returns the requested isolation segment.

func (Actor) GetIsolationSegmentSummaries

func (actor Actor) GetIsolationSegmentSummaries() ([]IsolationSegmentSummary, Warnings, error)

GetIsolationSegmentSummaries returns all isolation segments and their entitled orgs

func (Actor) GetIsolationSegmentsByOrganization

func (actor Actor) GetIsolationSegmentsByOrganization(orgGUID string) ([]IsolationSegment, Warnings, error)

func (Actor) GetOrganizationByName

func (actor Actor) GetOrganizationByName(name string) (Organization, Warnings, error)

GetOrganizationByName returns the organization with the given name.

func (Actor) GetSecureShellConfigurationByApplicationNameSpaceProcessTypeAndIndex

func (actor Actor) GetSecureShellConfigurationByApplicationNameSpaceProcessTypeAndIndex(
	appName string, spaceGUID string, processType string, processIndex uint,
) (SSHAuthentication, Warnings, error)

GetSecureShellConfigurationByApplicationNameSpaceProcessTypeAndIndex returns back the SSH authentication information for the SSH session.

func (Actor) GetServiceInstanceByNameAndSpace

func (actor Actor) GetServiceInstanceByNameAndSpace(serviceInstanceName string, spaceGUID string) (ServiceInstance, Warnings, error)

func (Actor) GetSpaceByNameAndOrganization

func (actor Actor) GetSpaceByNameAndOrganization(spaceName string, orgGUID string) (Space, Warnings, error)

func (Actor) GetStreamingLogs

func (Actor) GetStreamingLogs(appGUID string, client NOAAClient) (<-chan *LogMessage, <-chan error)

func (Actor) GetStreamingLogsForApplicationByNameAndSpace

func (actor Actor) GetStreamingLogsForApplicationByNameAndSpace(appName string, spaceGUID string, client NOAAClient) (<-chan *LogMessage, <-chan error, Warnings, error)

func (Actor) GetTaskBySequenceIDAndApplication

func (actor Actor) GetTaskBySequenceIDAndApplication(sequenceID int, appGUID string) (Task, Warnings, error)

func (Actor) PollStart

func (actor Actor) PollStart(appGUID string, warningsChannel chan<- Warnings) error

func (Actor) ResetOrganizationDefaultIsolationSegment

func (actor Actor) ResetOrganizationDefaultIsolationSegment(orgGUID string) (Warnings, error)

ResetOrganizationDefaultIsolationSegment resets the default isolation segment fon an organization.

func (Actor) ResetSpaceIsolationSegment

func (actor Actor) ResetSpaceIsolationSegment(orgGUID string, spaceGUID string) (string, Warnings, error)

ResetSpaceIsolationSegment disassociates a space from an isolation segment.

If the space's organization has a default isolation segment, return its name. Otherwise return the empty string.

func (Actor) RevokeIsolationSegmentFromOrganizationByName

func (actor Actor) RevokeIsolationSegmentFromOrganizationByName(isolationSegmentName string, orgName string) (Warnings, error)

func (Actor) RunTask

func (actor Actor) RunTask(appGUID string, task Task) (Task, Warnings, error)

RunTask runs the provided command in the application environment associated with the provided application GUID.

func (Actor) ScaleProcessByApplication

func (actor Actor) ScaleProcessByApplication(appGUID string, process Process) (Warnings, error)

func (Actor) SetApplicationDroplet

func (actor Actor) SetApplicationDroplet(appName string, spaceGUID string, dropletGUID string) (Warnings, error)

SetApplicationDroplet sets the droplet for an application.

func (Actor) SetApplicationProcessHealthCheckTypeByNameAndSpace

func (actor Actor) SetApplicationProcessHealthCheckTypeByNameAndSpace(appName string, spaceGUID string, healthCheckType string, httpEndpoint string, processType string) (Application, Warnings, error)

func (*Actor) SetEnvironmentVariableByApplicationNameAndSpace

func (actor *Actor) SetEnvironmentVariableByApplicationNameAndSpace(appName string, spaceGUID string, envPair EnvironmentVariablePair) (Warnings, error)

SetEnvironmentVariableByApplicationNameAndSpace adds an EnvironmentVariablePair to an application. It must be restarted for changes to take effect.

func (Actor) SetOrganizationDefaultIsolationSegment

func (actor Actor) SetOrganizationDefaultIsolationSegment(orgGUID string, isoSegGUID string) (Warnings, error)

SetOrganizationDefaultIsolationSegment sets a default isolation segment on an organization.

func (Actor) ShareServiceInstanceToSpaces

func (actor Actor) ShareServiceInstanceToSpaces(serviceInstanceGUID string, spaceGUIDs []string) (RelationshipList, Warnings, error)

func (Actor) StagePackage

func (actor Actor) StagePackage(packageGUID string, appName string) (<-chan Droplet, <-chan Warnings, <-chan error)

func (Actor) StartApplication

func (actor Actor) StartApplication(appGUID string) (Application, Warnings, error)

StartApplication starts an application.

func (Actor) StopApplication

func (actor Actor) StopApplication(appGUID string) (Warnings, error)

StopApplication stops an application.

func (Actor) TerminateTask

func (actor Actor) TerminateTask(taskGUID string) (Task, Warnings, error)

func (*Actor) UnsetEnvironmentVariableByApplicationNameAndSpace

func (actor *Actor) UnsetEnvironmentVariableByApplicationNameAndSpace(appName string, spaceGUID string, environmentVariableName string) (Warnings, error)

UnsetEnvironmentVariableByApplicationNameAndSpace removes an enviornment variable from an application. It must be restarted for changes to take effect.

func (Actor) UnshareServiceInstanceByServiceInstanceAndSpace

func (actor Actor) UnshareServiceInstanceByServiceInstanceAndSpace(serviceInstanceGUID string, sharedToSpaceGUID string) (Warnings, error)

func (Actor) UpdateApplication

func (actor Actor) UpdateApplication(app Application) (Application, Warnings, error)

UpdateApplication updates the buildpacks on an application

type Application

type Application struct {
	Name                string
	GUID                string
	State               constant.ApplicationState
	LifecycleType       constant.AppLifecycleType
	LifecycleBuildpacks []string
}

Application represents a V3 actor application.

func (Application) Started

func (app Application) Started() bool

type ApplicationSummary

type ApplicationSummary struct {
	Application
	ProcessSummaries ProcessSummaries
	CurrentDroplet   Droplet
}

ApplicationSummary represents an application with its processes and droplet.

type ApplicationWithProcessSummary

type ApplicationWithProcessSummary struct {
	Application
	ProcessSummaries ProcessSummaries
}

type Buildpack

type Buildpack ccv3.DropletBuildpack

type CloudControllerClient

type CloudControllerClient interface {
	AppSSHEndpoint() string
	AppSSHHostKeyFingerprint() string
	AssignSpaceToIsolationSegment(spaceGUID string, isolationSegmentGUID string) (ccv3.Relationship, ccv3.Warnings, error)
	CloudControllerAPIVersion() string
	CreateApplication(app ccv3.Application) (ccv3.Application, ccv3.Warnings, error)
	CreateApplicationProcessScale(appGUID string, process ccv3.Process) (ccv3.Process, ccv3.Warnings, error)
	CreateApplicationTask(appGUID string, task ccv3.Task) (ccv3.Task, ccv3.Warnings, error)
	CreateBuild(build ccv3.Build) (ccv3.Build, ccv3.Warnings, error)
	CreateIsolationSegment(isolationSegment ccv3.IsolationSegment) (ccv3.IsolationSegment, ccv3.Warnings, error)
	CreatePackage(pkg ccv3.Package) (ccv3.Package, ccv3.Warnings, error)
	DeleteApplication(guid string) (ccv3.JobURL, ccv3.Warnings, error)
	DeleteApplicationProcessInstance(appGUID string, processType string, instanceIndex int) (ccv3.Warnings, error)
	DeleteIsolationSegment(guid string) (ccv3.Warnings, error)
	DeleteServiceInstanceRelationshipsSharedSpace(serviceInstanceGUID string, sharedToSpaceGUID string) (ccv3.Warnings, error)
	EntitleIsolationSegmentToOrganizations(isoGUID string, orgGUIDs []string) (ccv3.RelationshipList, ccv3.Warnings, error)
	GetApplicationDropletCurrent(appGUID string) (ccv3.Droplet, ccv3.Warnings, error)
	GetApplicationEnvironment(appGUID string) (ccv3.Environment, ccv3.Warnings, error)
	GetApplicationProcessByType(appGUID string, processType string) (ccv3.Process, ccv3.Warnings, error)
	GetApplicationProcesses(appGUID string) ([]ccv3.Process, ccv3.Warnings, error)
	GetApplications(query ...ccv3.Query) ([]ccv3.Application, ccv3.Warnings, error)
	GetApplicationTasks(appGUID string, query ...ccv3.Query) ([]ccv3.Task, ccv3.Warnings, error)
	GetBuild(guid string) (ccv3.Build, ccv3.Warnings, error)
	GetDroplet(guid string) (ccv3.Droplet, ccv3.Warnings, error)
	GetDroplets(query ...ccv3.Query) ([]ccv3.Droplet, ccv3.Warnings, error)
	GetIsolationSegment(guid string) (ccv3.IsolationSegment, ccv3.Warnings, error)
	GetIsolationSegmentOrganizations(isolationSegmentGUID string) ([]ccv3.Organization, ccv3.Warnings, error)
	GetIsolationSegments(query ...ccv3.Query) ([]ccv3.IsolationSegment, ccv3.Warnings, error)
	GetOrganizationDefaultIsolationSegment(orgGUID string) (ccv3.Relationship, ccv3.Warnings, error)
	GetOrganizations(query ...ccv3.Query) ([]ccv3.Organization, ccv3.Warnings, error)
	GetPackage(guid string) (ccv3.Package, ccv3.Warnings, error)
	GetPackages(query ...ccv3.Query) ([]ccv3.Package, ccv3.Warnings, error)
	GetProcessInstances(processGUID string) ([]ccv3.ProcessInstance, ccv3.Warnings, error)
	GetServiceInstances(query ...ccv3.Query) ([]ccv3.ServiceInstance, ccv3.Warnings, error)
	GetSpaceIsolationSegment(spaceGUID string) (ccv3.Relationship, ccv3.Warnings, error)
	GetSpaces(query ...ccv3.Query) ([]ccv3.Space, ccv3.Warnings, error)
	PatchApplicationProcessHealthCheck(processGUID string, processHealthCheckType string, processHealthCheckEndpoint string) (ccv3.Process, ccv3.Warnings, error)
	PatchOrganizationDefaultIsolationSegment(orgGUID string, isolationSegmentGUID string) (ccv3.Relationship, ccv3.Warnings, error)
	PollJob(jobURL ccv3.JobURL) (ccv3.Warnings, error)
	RevokeIsolationSegmentFromOrganization(isolationSegmentGUID string, organizationGUID string) (ccv3.Warnings, error)
	SetApplicationDroplet(appGUID string, dropletGUID string) (ccv3.Relationship, ccv3.Warnings, error)
	ShareServiceInstanceToSpaces(serviceInstanceGUID string, spaceGUIDs []string) (ccv3.RelationshipList, ccv3.Warnings, error)
	UpdateApplication(app ccv3.Application) (ccv3.Application, ccv3.Warnings, error)
	UpdateApplicationApplyManifest(appGUID string, rawManifest []byte) (ccv3.JobURL, ccv3.Warnings, error)
	UpdateApplicationEnvironmentVariables(appGUID string, envVars ccv3.EnvironmentVariables) (ccv3.EnvironmentVariables, ccv3.Warnings, error)
	UpdateApplicationStart(appGUID string) (ccv3.Application, ccv3.Warnings, error)
	UpdateApplicationStop(appGUID string) (ccv3.Application, ccv3.Warnings, error)
	UpdateTask(taskGUID string) (ccv3.Task, ccv3.Warnings, error)
	UploadPackage(pkg ccv3.Package, zipFilepath string) (ccv3.Package, ccv3.Warnings, error)
}

CloudControllerClient is the interface to the cloud controller V3 API.

type Config

type Config interface {
	AccessToken() string
	PollingInterval() time.Duration
	SSHOAuthClient() string
	StartupTimeout() time.Duration
	StagingTimeout() time.Duration
}

type DockerImageCredentials

type DockerImageCredentials struct {
	Path     string
	Username string
	Password string
}

type Droplet

type Droplet struct {
	GUID       string
	State      constant.DropletState
	CreatedAt  string
	Stack      string
	Image      string
	Buildpacks []Buildpack
}

Droplet represents a Cloud Controller droplet.

type EnvironmentVariableGroups

type EnvironmentVariableGroups ccv3.Environment

EnvironmentVariableGroups represents all environment variables for application

type EnvironmentVariablePair

type EnvironmentVariablePair struct {
	Key   string
	Value string
}

EnvironmentVariablePair represents an environment variable and its value on an application

type IsolationSegment

type IsolationSegment ccv3.IsolationSegment

IsolationSegment represents a V3 actor IsolationSegment.

type IsolationSegmentSummary

type IsolationSegmentSummary struct {
	Name         string
	EntitledOrgs []string
}

type LogMessage

type LogMessage struct {
	// contains filtered or unexported fields
}

func NewLogMessage

func NewLogMessage(message string, messageType int, timestamp time.Time, sourceType string, sourceInstance string) *LogMessage

func (LogMessage) Message

func (log LogMessage) Message() string

func (LogMessage) SourceInstance

func (log LogMessage) SourceInstance() string

func (LogMessage) SourceType

func (log LogMessage) SourceType() string

func (LogMessage) Staging

func (log LogMessage) Staging() bool

func (LogMessage) Timestamp

func (log LogMessage) Timestamp() time.Time

func (LogMessage) Type

func (log LogMessage) Type() string

type LogMessages

type LogMessages []*LogMessage

func (LogMessages) Len

func (lm LogMessages) Len() int

func (LogMessages) Less

func (lm LogMessages) Less(i, j int) bool

func (LogMessages) Swap

func (lm LogMessages) Swap(i, j int)

type ManifestParser

type ManifestParser interface {
	AppNames() []string
	RawManifest(name string) ([]byte, error)
}

type NOAAClient

type NOAAClient interface {
	Close() error
	RecentLogs(appGuid string, authToken string) ([]*events.LogMessage, error)
	TailingLogs(appGuid, authToken string) (<-chan *events.LogMessage, <-chan error)
}

NOAAClient is a client for getting logs.

type Organization

type Organization ccv3.Organization

Organization represents a V3 actor organization.

type Package

type Package ccv3.Package

type Process

type Process ccv3.Process

Process represents a V3 actor process.

type ProcessHealthCheck

type ProcessHealthCheck struct {
	ProcessType     string
	HealthCheckType string
	Endpoint        string
}

type ProcessHealthChecks

type ProcessHealthChecks []ProcessHealthCheck

func (ProcessHealthChecks) Sort

func (phs ProcessHealthChecks) Sort()

type ProcessInstance

type ProcessInstance ccv3.ProcessInstance

func (ProcessInstance) Running

func (instance ProcessInstance) Running() bool

Running will return true if the instance is running.

func (*ProcessInstance) StartTime

func (instance *ProcessInstance) StartTime() time.Time

StartTime returns the time that the instance started.

type ProcessSummaries

type ProcessSummaries []ProcessSummary

func (ProcessSummaries) Sort

func (ps ProcessSummaries) Sort()

func (ProcessSummaries) String

func (ps ProcessSummaries) String() string

type ProcessSummary

type ProcessSummary struct {
	Process

	InstanceDetails []ProcessInstance
}

ProcessSummary represents a process with instance details.

func (ProcessSummary) HealthyInstanceCount

func (p ProcessSummary) HealthyInstanceCount() int

func (ProcessSummary) TotalInstanceCount

func (p ProcessSummary) TotalInstanceCount() int

type RelationshipList

type RelationshipList ccv3.RelationshipList

type SSHActor

type SSHActor interface {
	ExecuteSecureShell(sshOptions sharedaction.SSHOptions) error
}

type SSHAuthentication

type SSHAuthentication struct {
	Endpoint           string
	HostKeyFingerprint string
	Passcode           string
	Username           string
}

type ServiceInstance

type ServiceInstance ccv3.ServiceInstance

type SharedActor

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

type SortOrder

type SortOrder string

SortOrder is used for sorting.

const (
	Ascending  SortOrder = "Ascending"
	Descending SortOrder = "Descending"
)

type Space

type Space ccv3.Space

type Task

type Task ccv3.Task

Task represents a V3 actor Task.

type UAAClient

type UAAClient interface {
	GetSSHPasscode(accessToken string, sshOAuthClient string) (string, 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