helpers

package
v0.0.9-complete-api Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2020 License: Apache-2.0 Imports: 49 Imported by: 0

Documentation

Index

Examples

Constants

View Source
const (
	DebugCommandPrefix        = "\nCMD>"
	DebugCommandPrefixWithDir = "\nCMD %s>"
	DebugOutPrefix            = "OUT: "
	DebugErrPrefix            = "ERR: "
)
View Source
const (
	GUIDRegex                                  = `[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}`
	ISO8601Regex                               = `\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{1,3}[+-]\d{4}`
	StaticfileBuildpackStartCommand            = `\$HOME/boot.sh|sh boot.sh`
	ModernStaticfileBuildpackStartCommand      = `$HOME/boot.sh`
	ModernStaticfileBuildpackStartCommandRegex = `\$HOME/boot\.sh`
	UserFriendlyDateRegex                      = `[A-Z][a-z]{2} \d{2} [A-Z][a-z]{2} \d{2}:\d{2}:\d{2} [A-Z]+ \d{4}`
)
View Source
const (
	DefaultV2Version string = "2.131.0"
	DefaultV3Version string = "3.66.0"
)
View Source
const (
	DefaultMemoryLimit = "256M"
	DefaultDiskLimit   = "1G"
)
View Source
const MaxTestPort = 1034

MaxTestPort should be defined by the CF router group for integration tests.

View Source
const MinTestPort = 1024

MinTestPort should be defined by the CF router group for integration tests.

View Source
const (
	PRBuilderOutputEnvVar = "PR_BUILDER_OUTPUT_DIR"
)

Variables

View Source
var CcRootCache *ccRoot

Functions

func AddFiftyOneOrgs

func AddFiftyOneOrgs(server *ghttp.Server)

func AddHandler

func AddHandler(ser *ghttp.Server, method string, pathAndQuery string, status int, body []byte)

func AddLoginRoutes

func AddLoginRoutes(s *Server)

func AddMfa

func AddMfa(server *Server, password string, mfaToken string)

func AddOrReplaceEnvironment

func AddOrReplaceEnvironment(env []string, newEnvName string, newEnvVal string) []string

func AppGUID

func AppGUID(appName string) string

AppGUID returns the GUID for an app in the currently targeted space.

func AppJSON

func AppJSON(appName string) string

func BuildConfigurablePlugin

func BuildConfigurablePlugin(pluginType string, name string, version string, pluginCommands []PluginCommand) string

func BuildTokenString

func BuildTokenString(expiration time.Time) string

func BuildpackWithStack

func BuildpackWithStack(f func(buildpackArchive string), stackName string)

func BuildpackWithoutStack

func BuildpackWithoutStack(f func(buildpackArchive string))

func BuildpacksOutputRegex

func BuildpacksOutputRegex(fields BuildpackFields) string

func CF

func CF(args ...string) *Session

func CFWithEnv

func CFWithEnv(envVars map[string]string, args ...string) *Session

func CFWithStdin

func CFWithStdin(stdin io.Reader, args ...string) *Session

func CheckEnvironmentTargetedCorrectly

func CheckEnvironmentTargetedCorrectly(targetedOrganizationRequired bool, targetedSpaceRequired bool, testOrg string, command ...string)

CheckEnvironmentTargetedCorrectly will confirm if the command requires an API to be targeted and logged in to run. It can optionally check if the command requires org and space to be targeted.

func ClearTarget

func ClearTarget()

func ConfirmStagingLogs

func ConfirmStagingLogs(session *Session)

func ConvertPathToRegularExpression

func ConvertPathToRegularExpression(path string) string

ConvertPathToRegularExpression converts a windows file path into a string which may be embedded in a ginkgo-compatible regular expression.

func CreateAndTargetOrg

func CreateAndTargetOrg() string

func CreateCCV2Client

func CreateCCV2Client() (*ccv2.Client, error)

func CreateOrg

func CreateOrg(org string)

func CreateOrgAndSpace

func CreateOrgAndSpace(org string, space string)

func CreateSpace

func CreateSpace(space string)

func CreateStack

func CreateStack(names ...string) string

func CreateUser

func CreateUser() (string, string)

func CreateUserInOrgRole

func CreateUserInOrgRole(org, role string) (string, string)

func CreateUserInSpaceRole

func CreateUserInSpaceRole(org, space, role string) (string, string)

func Curl

func Curl(obj interface{}, url string, props ...interface{})

func CustomCF

func CustomCF(cfEnv CFEnv, args ...string) *Session

func DebugCustomCF

func DebugCustomCF(cfEnv CFEnv, args ...string) *Session

func DefaultSharedDomain

func DefaultSharedDomain() string

func DeleteBuildpackIfOnOldCCAPI

func DeleteBuildpackIfOnOldCCAPI(buildpackName string)

DeleteBuildpackIfOnOldCCAPI deletes the buildpack if the CC API targeted by the current test run is <= 2.80.0. Before this version, some entities would receive and invalid next_url in paginated requests. Since our test run now generally creates more than 50 buildpacks, we need to delete test buildpacks after use if we are targeting and older CC API. see https://github.com/cloudfoundry/capi-release/releases/tag/1.45.0

func DeleteStack

func DeleteStack(name string)

func DeleteUser

func DeleteUser(username string)

func DestroyHomeDir

func DestroyHomeDir(homeDir string)

func DisableFeatureFlag

func DisableFeatureFlag(flagName string)

func DomainName

func DomainName(prefix ...string) string

func EnableFeatureFlag

func EnableFeatureFlag(flagName string)

func EnsureMinimumNumberOfStacks

func EnsureMinimumNumberOfStacks(num int) []string

func EqualPath

func EqualPath(format string, path string) types.GomegaMatcher

func ExpiredAccessToken

func ExpiredAccessToken() string

func FetchStacks

func FetchStacks() []string

func FindOrCreateTCPRouterGroup

func FindOrCreateTCPRouterGroup(node int) string

func GenerateHigherName

func GenerateHigherName(randomNameGenerator func() string, names ...string) string

TODO: Is this working???

func GenerateLowerName

func GenerateLowerName(randomNameGenerator func() string, names ...string) string

TODO: Is this working???

func GetAPI

func GetAPI() string

func GetAPIVersionV2

func GetAPIVersionV2() string

func GetConfig

func GetConfig() *configv3.Config

func GetCredentials

func GetCredentials() (string, string)

GetCredentials returns back the username and the password.

func GetIsolationSegmentGUID

func GetIsolationSegmentGUID(name string) string

func GetOrgGUID

func GetOrgGUID(orgName string) string

func GetPRBuilderReporter

func GetPRBuilderReporter() ginkgo.Reporter

func GetSpaceGUID

func GetSpaceGUID(spaceName string) string

func InstallConfigurablePlugin

func InstallConfigurablePlugin(name string, version string, pluginCommands []PluginCommand)

func InstallConfigurablePluginFailsUninstall

func InstallConfigurablePluginFailsUninstall(name string, version string, pluginCommands []PluginCommand)

func IsUAAVersionAtLeast

func IsUAAVersionAtLeast(minVersion string) bool

func IsVersionMet

func IsVersionMet(minVersion string) bool

func LoginAs

func LoginAs(username, password string)

func LoginCF

func LoginCF() string

func LoginCFWithClientCredentials

func LoginCFWithClientCredentials() string

func LogoutCF

func LogoutCF()

func MakeBuildpackArchive

func MakeBuildpackArchive(stackName string) string

func ManagedServiceInstanceGUID

func ManagedServiceInstanceGUID(managedServiceInstanceName string) string

ManagedServiceInstanceGUID returns the GUID for a managed service instance.

func MapRouteToApplication

func MapRouteToApplication(app string, domain string, host string, path string)

func NewAppName

func NewAppName() string

func NewBuildpackName

func NewBuildpackName() string

func NewDomainName

func NewDomainName(prefix ...string) string

func NewIsolationSegmentName

func NewIsolationSegmentName(infix ...string) string

func NewOrgName

func NewOrgName() string

func NewPassword

func NewPassword() string

func NewPlanName

func NewPlanName() string

func NewPluginRepositoryServer

func NewPluginRepositoryServer(pluginRepo PluginRepository) *Server

func NewPluginRepositoryTLSServer

func NewPluginRepositoryTLSServer(pluginRepo PluginRepository) *Server

func NewSecurityGroupName

func NewSecurityGroupName(infix ...string) string

func NewServiceBrokerName

func NewServiceBrokerName() string

func NewServiceName

func NewServiceName() string

func NewSpaceName

func NewSpaceName() string

func NewStackName

func NewStackName() string

func NewUsername

func NewUsername() string

func ParseTokenString

func ParseTokenString(token string) jwt.JWT

func PluginPlatform

func PluginPlatform() string

func PollLastOperationUntilSuccess

func PollLastOperationUntilSuccess(client *ccv2.Client, appName string, serviceInstanceName string)

func PreferredStack

func PreferredStack() string

func PrefixedRandomName

func PrefixedRandomName(namePrefix string) string

func QuickDeleteOrg

func QuickDeleteOrg(orgName string)

func QuickDeleteOrgIfExists

func QuickDeleteOrgIfExists(orgName string)

func QuickDeleteSpace

func QuickDeleteSpace(spaceName string)

func QuotaName

func QuotaName(name ...string) string

func RandomName

func RandomName() string

func RandomPort

func RandomPort() int

func SayPath

func SayPath(format string, path string) types.GomegaMatcher

SayPath is used to assert that a path is printed. On Windows, it uses a case-insensitive match and escapes the path. On non-Windows, it evaluates the base directory of the path for symlniks.

func SetAPI

func SetAPI() (string, bool)

func SetConfig

func SetConfig(cb func(conf *configv3.Config))

func SetConfigContent

func SetConfigContent(dir string, rawConfig string)

func SetHomeDir

func SetHomeDir() string

func SetupBuildpackWithStack

func SetupBuildpackWithStack(buildpackName, stack string)

func SetupBuildpackWithoutStack

func SetupBuildpackWithoutStack(buildpackName string)

func SetupCF

func SetupCF(org string, space string)

func SetupReadOnlyOrgAndSpace

func SetupReadOnlyOrgAndSpace() (string, string)

func SetupSynchronizedSuite

func SetupSynchronizedSuite(setup func())

func Sha1Sum

func Sha1Sum(path string) string

Sha1Sum calculates the SHA1 sum of a file.

func SkipIfClientCredentialsNotSet

func SkipIfClientCredentialsNotSet() (string, string)

func SkipIfCustomClientCredentialsNotSet

func SkipIfCustomClientCredentialsNotSet() (string, string)

func SkipIfNoRoutingAPI

func SkipIfNoRoutingAPI()

func SkipIfOIDCCredentialsNotSet

func SkipIfOIDCCredentialsNotSet() (string, string)

SkipIfOIDCCredentialsNotSet returns back the username and the password for OIDC origin, or skips the test if those values are not set.

func SkipIfPrivateDockerInfoNotSet

func SkipIfPrivateDockerInfoNotSet() (string, string, string)

func SkipIfUAAVersionAtLeast

func SkipIfUAAVersionAtLeast(version string)

func SkipIfUAAVersionLessThan

func SkipIfUAAVersionLessThan(version string)

func SkipIfVersionAtLeast

func SkipIfVersionAtLeast(maxVersion string)

func SkipIfVersionLessThan

func SkipIfVersionLessThan(minVersion string)

func StartAndTargetServerWithAPIVersions

func StartAndTargetServerWithAPIVersions(v2Version string, v3Version string) *Server

func StartServerWithAPIVersions

func StartServerWithAPIVersions(v2Version string, v3Version string) *Server

func StartServerWithMinimumCLIVersion

func StartServerWithMinimumCLIVersion(minCLIVersion string) *Server

func SwitchToNoRole

func SwitchToNoRole() string

func SwitchToOrgRole

func SwitchToOrgRole(org, role string) string

func SwitchToSpaceRole

func SwitchToSpaceRole(org, space, role string) string

func TargetOrg

func TargetOrg(org string)

func TargetOrgAndSpace

func TargetOrgAndSpace(org string, space string)

func TempFileWithContent

func TempFileWithContent(contents string) string

func TurnOffColors

func TurnOffColors()

func TurnOffExperimental

func TurnOffExperimental()

func TurnOffExperimentalLogin

func TurnOffExperimentalLogin()

func TurnOnExperimental

func TurnOnExperimental()

func TurnOnExperimentalLogin

func TurnOnExperimentalLogin()

func UnmapRouteFromApplication

func UnmapRouteFromApplication(app string, domain string, host string, path string)

func UnrefactoredCheckEnvironmentTargetedCorrectly

func UnrefactoredCheckEnvironmentTargetedCorrectly(targetedOrganizationRequired bool, targetedSpaceRequired bool, testOrg string, command ...string)

func UnsetAPI

func UnsetAPI()

func UserProvidedServiceInstanceGUID

func UserProvidedServiceInstanceGUID(userProvidedServiceInstanceName string) string

UserProvidedServiceInstanceGUID returns the GUID for a user provided service instance.

func VerifyAppPackageContentsV2

func VerifyAppPackageContentsV2(appName string, files ...string)

func VerifyAppPackageContentsV3

func VerifyAppPackageContentsV3(appName string, files ...string)

func WithBananaPantsApp

func WithBananaPantsApp(f func(dir string))

WithBananaPantsApp creates a simple application to use with your CLI command (typically CF Push). When pushing, be aware of specifying '-b staticfile_buildpack" so that your app will correctly start up with the proper buildpack.

func WithCrashingApp

func WithCrashingApp(f func(dir string))

WithCrashingApp creates an application to use with your CLI command that will not successfully start its `web` process

func WithHelloWorldApp

func WithHelloWorldApp(f func(dir string))

WithHelloWorldApp creates a simple application to use with your CLI command (typically CF Push). When pushing, be aware of specifying '-b staticfile_buildpack" so that your app will correctly start up with the proper buildpack.

Example
var appName string

When("the app exists", func() {
	BeforeEach(func() {
		appName = helpers.PrefixedRandomName("app")

		helpers.WithHelloWorldApp(func(appDir string) {
			Eventually(helpers.CustomCF(helpers.CFEnv{WorkingDirectory: appDir}, "push", appName)).Should(Exit(0))
		})
	})
})
Output:

func WithMultiBuildpackApp

func WithMultiBuildpackApp(f func(dir string))

WithMultiBuildpackApp creates a multi-buildpack application to use with the CF push command.

func WithMultiEndpointApp

func WithMultiEndpointApp(f func(dir string))

WithMultiEndpointApp creates a simple application to use with your CLI command (typically CF Push). It has multiple endpoints which are helpful when testing http healthchecks

func WithNoResourceMatchedApp

func WithNoResourceMatchedApp(f func(dir string))

WithNoResourceMatchedApp creates a simple application to use with your CLI command (typically CF Push). When pushing, be aware of specifying '-b staticfile_buildpack" so that your app will correctly start up with the proper buildpack.

func WithProcfileApp

func WithProcfileApp(f func(dir string))

WithProcfileApp creates an application to use with your CLI command that contains Procfile defining web and worker processes.

func WriteCommand

func WriteCommand(workingDir string, env map[string]string, args []string)

func WriteFailureSummary

func WriteFailureSummary(outputRoot, filename string)

WriteFailureSummary aggregates test failures from all parallel nodes, sorts them, and writes the result to a file.

func WriteManifest

func WriteManifest(path string, manifest map[string]interface{})

WriteManifest will write out a YAML manifest file at the specified path.

func Zipit

func Zipit(source, target, prefix string) error

Zipit zips the source into a .zip file in the target dir

Types

type AppInstanceRow

type AppInstanceRow struct {
	Index   string
	State   string
	Since   string
	CPU     string
	Memory  string
	Disk    string
	Details string
}

type AppProcessTable

type AppProcessTable struct {
	Type          string
	InstanceCount string
	MemUsage      string
	Instances     []AppInstanceRow
}

type AppTable

type AppTable struct {
	Processes []AppProcessTable
}

func ParseV3AppProcessTable

func ParseV3AppProcessTable(input []byte) AppTable

type Assets

type Assets struct {
	ServiceBroker string
}

func NewAssets

func NewAssets() Assets

type Binary

type Binary struct {
	Checksum string `json:"checksum"`
	Platform string `json:"platform"`
	URL      string `json:"url"`
}

type BuildpackFields

type BuildpackFields struct {
	Position string
	Name     string
	Enabled  string
	Locked   string
	Filename string
	Stack    string
}

type CFEnv

type CFEnv struct {
	WorkingDirectory string
	EnvVars          map[string]string
	// contains filtered or unexported fields
}

type Domain

type Domain struct {
	Org  string
	Name string
}

func NewDomain

func NewDomain(org string, name string) Domain

func (Domain) Create

func (d Domain) Create()

func (Domain) CreateInternal

func (d Domain) CreateInternal()

func (Domain) CreatePrivate

func (d Domain) CreatePrivate()

func (Domain) CreateShared

func (d Domain) CreateShared()

func (Domain) CreateWithRouterGroup

func (d Domain) CreateWithRouterGroup(routerGroup string)

func (Domain) Delete

func (d Domain) Delete()

func (Domain) DeleteShared

func (d Domain) DeleteShared()

func (Domain) Share

func (d Domain) Share()

func (Domain) V7Share

func (d Domain) V7Share(orgName string)

type PRBuilderReporter

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

func NewPRBuilderReporter

func NewPRBuilderReporter(outputDir string) *PRBuilderReporter

func (*PRBuilderReporter) AfterSuiteDidRun

func (reporter *PRBuilderReporter) AfterSuiteDidRun(setupSummary *types.SetupSummary)

func (*PRBuilderReporter) BeforeSuiteDidRun

func (reporter *PRBuilderReporter) BeforeSuiteDidRun(setupSummary *types.SetupSummary)

func (*PRBuilderReporter) SpecDidComplete

func (reporter *PRBuilderReporter) SpecDidComplete(specSummary *types.SpecSummary)

func (*PRBuilderReporter) SpecSuiteDidEnd

func (reporter *PRBuilderReporter) SpecSuiteDidEnd(summary *types.SuiteSummary)

func (*PRBuilderReporter) SpecSuiteWillBegin

func (reporter *PRBuilderReporter) SpecSuiteWillBegin(conf config.GinkgoConfigType, summary *types.SuiteSummary)

func (*PRBuilderReporter) SpecWillRun

func (reporter *PRBuilderReporter) SpecWillRun(specSummary *types.SpecSummary)

type Package

type Package struct {
	Checksum string
}

func (*Package) UnmarshalJSON

func (p *Package) UnmarshalJSON(data []byte) error

type Plan

type Plan struct {
	Name    string      `json:"name"`
	ID      string      `json:"id"`
	Schemas PlanSchemas `json:"schemas"`
}

type PlanSchemas

type PlanSchemas struct {
	ServiceInstance struct {
		Create struct {
			Parameters map[string]interface{} `json:"parameters"`
		} `json:"create"`
		Update struct {
			Parameters map[string]interface{} `json:"parameters"`
		} `json:"update"`
	} `json:"service_instance"`
	ServiceBinding struct {
		Create struct {
			Parameters map[string]interface{} `json:"parameters"`
		} `json:"create"`
	} `json:"service_binding"`
}

type Plugin

type Plugin struct {
	Name     string   `json:"name"`
	Version  string   `json:"version"`
	Binaries []Binary `json:"binaries"`
}

type PluginCommand

type PluginCommand struct {
	Name  string
	Alias string
	Help  string
}

type PluginRepository

type PluginRepository struct {
	Plugins []Plugin `json:"plugins"`
}

type PluginRepositoryServerWithPlugin

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

func NewPluginRepositoryServerWithPlugin

func NewPluginRepositoryServerWithPlugin(pluginName string, version string, platform string, shouldCalculateChecksum bool) *PluginRepositoryServerWithPlugin

func (*PluginRepositoryServerWithPlugin) Cleanup

func (pluginRepoServer *PluginRepositoryServerWithPlugin) Cleanup()

func (*PluginRepositoryServerWithPlugin) Init

func (pluginRepoServer *PluginRepositoryServerWithPlugin) Init(pluginName string, version string, platform string, shouldCalculateChecksum bool)

func (*PluginRepositoryServerWithPlugin) PluginSize

func (pluginRepoServer *PluginRepositoryServerWithPlugin) PluginSize() int64

func (*PluginRepositoryServerWithPlugin) URL

func (pluginRepoServer *PluginRepositoryServerWithPlugin) URL() string

type Route

type Route struct {
	Domain string
	Host   string
	Path   string
	Port   int
	Space  string
}

func NewRoute

func NewRoute(space string, domain string, hostname string, path string) Route

func NewTCPRoute

func NewTCPRoute(space string, domain string, port int) Route

func (Route) Create

func (r Route) Create()

func (Route) Delete

func (r Route) Delete()

func (Route) String

func (r Route) String() string

type SecurityGroup

type SecurityGroup struct {
	Name        string `json:"-"`
	Protocol    string `json:"protocol"`
	Destination string `json:"destination"`
	Ports       string `json:"ports"`
	Description string `json:"description"`
}

func NewSecurityGroup

func NewSecurityGroup(name string, protocol string, destination string, ports string, description string) SecurityGroup

func (SecurityGroup) Create

func (s SecurityGroup) Create()

type ServiceBroker

type ServiceBroker struct {
	Name       string
	Path       string
	AppsDomain string
	Service    struct {
		Name            string `json:"name"`
		ID              string `json:"id"`
		Bindable        bool   `json:"bindable"`
		Requires        string `json:"-"`
		DashboardClient struct {
			ID          string `json:"id"`
			Secret      string `json:"secret"`
			RedirectUri string `json:"redirect_uri"`
		}
	}
	SyncPlans  []Plan
	AsyncPlans []Plan
}

func CreateBroker

func CreateBroker(domain, serviceName, planName string) ServiceBroker

func NewAsynchServiceBroker

func NewAsynchServiceBroker(name string, path string, appsDomain string, serviceName string, planName string) ServiceBroker

func NewServiceBroker

func NewServiceBroker(name string, path string, appsDomain string, serviceName string, planName string) ServiceBroker

func (ServiceBroker) Configure

func (b ServiceBroker) Configure(shareable bool)

func (ServiceBroker) Create

func (b ServiceBroker) Create()

func (ServiceBroker) Delete

func (b ServiceBroker) Delete()

func (ServiceBroker) Destroy

func (b ServiceBroker) Destroy()

func (ServiceBroker) Push

func (b ServiceBroker) Push()

func (ServiceBroker) ToJSON

func (b ServiceBroker) ToJSON(shareable bool) string

func (ServiceBroker) Update

func (b ServiceBroker) Update()

type ServiceInstanceGUID

type ServiceInstanceGUID struct {
	Resources []struct {
		Metadata struct {
			GUID string `json:"guid"`
		} `json:"metadata"`
	} `json:"resources"`
}

type UAAVersion

type UAAVersion struct {
	App struct {
		Version string `json:"version"`
	} `json:"app"`
}

func (UAAVersion) Version

func (v UAAVersion) Version() string

type User

type User struct {
	GUID      string
	Username  string
	CreatedAt time.Time
}

func GetUsers

func GetUsers() []User

GetUsers returns all the users in the targeted environment

Jump to

Keyboard shortcuts

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