本文整理匯總了Golang中code/cloudfoundry/org/cli/cf/models.AppParams類的典型用法代碼示例。如果您正苦於以下問題:Golang AppParams類的具體用法?Golang AppParams怎麽用?Golang AppParams使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了AppParams類的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: createAppSetFromContextAndManifest
func (cmd *Push) createAppSetFromContextAndManifest(contextApp models.AppParams, manifestApps []models.AppParams) ([]models.AppParams, error) {
var err error
var apps []models.AppParams
switch len(manifestApps) {
case 0:
if contextApp.Name == nil {
return nil, errors.New(
T("Incorrect Usage. The push command requires an app name. The app name can be supplied as an argument or with a manifest.yml file.") +
"\n\n" +
commandregistry.Commands.CommandUsage("push"),
)
}
err = addApp(&apps, contextApp)
case 1:
manifestApps[0].Merge(&contextApp)
err = addApp(&apps, manifestApps[0])
default:
selectedAppName := contextApp.Name
contextApp.Name = nil
if !contextApp.IsEmpty() {
return nil, errors.New(T("Incorrect Usage. Command line flags (except -f) cannot be applied when pushing multiple apps from a manifest file."))
}
if selectedAppName != nil {
var foundApp bool
for _, appParams := range manifestApps {
if appParams.Name != nil && *appParams.Name == *selectedAppName {
foundApp = true
err = addApp(&apps, appParams)
}
}
if !foundApp {
err = errors.New(T("Could not find app named '{{.AppName}}' in manifest", map[string]interface{}{"AppName": *selectedAppName}))
}
} else {
for _, manifestApp := range manifestApps {
err = addApp(&apps, manifestApp)
}
}
}
if err != nil {
return nil, errors.New(T("Error: {{.Err}}", map[string]interface{}{"Err": err.Error()}))
}
return apps, nil
}
示例2: addApp
func addApp(apps *[]models.AppParams, app models.AppParams) error {
if app.Name == nil {
return errors.New(T("App name is a required field"))
}
if app.Path == nil {
cwd, err := os.Getwd()
if err != nil {
return err
}
app.Path = &cwd
}
*apps = append(*apps, app)
return nil
}
示例3: fetchStackGUID
func (cmd *Push) fetchStackGUID(appParams *models.AppParams) error {
if appParams.StackName == nil {
return nil
}
stackName := *appParams.StackName
cmd.ui.Say(T("Using stack {{.StackName}}...",
map[string]interface{}{"StackName": terminal.EntityNameColor(stackName)}))
stack, err := cmd.stackRepo.FindByName(stackName)
if err != nil {
return err
}
cmd.ui.Ok()
appParams.StackGUID = &stack.GUID
return nil
}
示例4: updateRoutes
func (cmd *Push) updateRoutes(app models.Application, appParams models.AppParams, appParamsFromContext models.AppParams) error {
defaultRouteAcceptable := len(app.Routes) == 0
routeDefined := appParams.Domains != nil || !appParams.IsHostEmpty() || appParams.IsNoHostnameTrue()
switch {
case appParams.NoRoute:
if len(app.Routes) == 0 {
cmd.ui.Say(T("App {{.AppName}} is a worker, skipping route creation",
map[string]interface{}{"AppName": terminal.EntityNameColor(app.Name)}))
} else {
err := cmd.routeActor.UnbindAll(app)
if err != nil {
return err
}
}
case len(appParams.Routes) > 0:
for _, manifestRoute := range appParams.Routes {
err := cmd.actor.MapManifestRoute(manifestRoute.Route, app, appParamsFromContext)
if err != nil {
return err
}
}
case (routeDefined || defaultRouteAcceptable) && appParams.Domains == nil:
domain, err := cmd.findDomain(nil)
if err != nil {
return err
}
appParams.UseRandomPort = isTCP(domain)
err = cmd.processDomainsAndBindRoutes(appParams, app, domain)
if err != nil {
return err
}
case routeDefined || defaultRouteAcceptable:
for _, d := range appParams.Domains {
domain, err := cmd.findDomain(&d)
if err != nil {
return err
}
appParams.UseRandomPort = isTCP(domain)
err = cmd.processDomainsAndBindRoutes(appParams, app, domain)
if err != nil {
return err
}
}
}
return nil
}
示例5: processDomainsAndBindRoutes
func (cmd *Push) processDomainsAndBindRoutes(
appParams models.AppParams,
app models.Application,
domain models.DomainFields,
) error {
if appParams.IsHostEmpty() {
err := cmd.createAndBindRoute(
nil,
appParams.UseRandomRoute,
appParams.UseRandomPort,
app,
appParams.IsNoHostnameTrue(),
domain,
appParams.RoutePath,
)
if err != nil {
return err
}
} else {
for _, host := range appParams.Hosts {
err := cmd.createAndBindRoute(
&host,
appParams.UseRandomRoute,
appParams.UseRandomPort,
app,
appParams.IsNoHostnameTrue(),
domain,
appParams.RoutePath,
)
if err != nil {
return err
}
}
}
return nil
}
示例6:
Expect(err).ToNot(HaveOccurred())
Expect(*applicationModel.PackageUpdatedAt).To(Equal(timestamp))
})
})
Describe("NewApplicationEntityFromAppParams", func() {
var (
appParams models.AppParams
diskQuota, memory int64
healthCheckTimeout, instanceCount int
diego, enableSSH bool
packageUpdatedAt time.Time
appPorts []int
environmentVars map[string]interface{}
buildpackURL,
command,
healthCheckType,
dockerImage,
name,
spaceGUID,
stackGUID,
state string
)
BeforeEach(func() {
buildpackURL = "buildpack-url"
command = "command"
diskQuota = int64(1024)
environmentVars = map[string]interface{}{
示例7: Execute
func (cmd *Scale) Execute(c flags.FlagContext) error {
currentApp := cmd.appReq.GetApplication()
if !anyFlagsSet(c) {
cmd.ui.Say(T("Showing current scale of app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUser}}...",
map[string]interface{}{
"AppName": terminal.EntityNameColor(currentApp.Name),
"OrgName": terminal.EntityNameColor(cmd.config.OrganizationFields().Name),
"SpaceName": terminal.EntityNameColor(cmd.config.SpaceFields().Name),
"CurrentUser": terminal.EntityNameColor(cmd.config.Username()),
}))
cmd.ui.Ok()
cmd.ui.Say("")
cmd.ui.Say("%s %s", terminal.HeaderColor(T("memory:")), formatters.ByteSize(currentApp.Memory*bytesInAMegabyte))
cmd.ui.Say("%s %s", terminal.HeaderColor(T("disk:")), formatters.ByteSize(currentApp.DiskQuota*bytesInAMegabyte))
cmd.ui.Say("%s %d", terminal.HeaderColor(T("instances:")), currentApp.InstanceCount)
return nil
}
params := models.AppParams{}
shouldRestart := false
if c.String("m") != "" {
memory, err := formatters.ToMegabytes(c.String("m"))
if err != nil {
return errors.New(T("Invalid memory limit: {{.Memory}}\n{{.ErrorDescription}}",
map[string]interface{}{
"Memory": c.String("m"),
"ErrorDescription": err,
}))
}
params.Memory = &memory
shouldRestart = true
}
if c.String("k") != "" {
diskQuota, err := formatters.ToMegabytes(c.String("k"))
if err != nil {
return errors.New(T("Invalid disk quota: {{.DiskQuota}}\n{{.ErrorDescription}}",
map[string]interface{}{
"DiskQuota": c.String("k"),
"ErrorDescription": err,
}))
}
params.DiskQuota = &diskQuota
shouldRestart = true
}
if c.IsSet("i") {
instances := c.Int("i")
params.InstanceCount = &instances
}
if shouldRestart && !cmd.confirmRestart(c, currentApp.Name) {
return nil
}
cmd.ui.Say(T("Scaling app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUser}}...",
map[string]interface{}{
"AppName": terminal.EntityNameColor(currentApp.Name),
"OrgName": terminal.EntityNameColor(cmd.config.OrganizationFields().Name),
"SpaceName": terminal.EntityNameColor(cmd.config.SpaceFields().Name),
"CurrentUser": terminal.EntityNameColor(cmd.config.Username()),
}))
updatedApp, err := cmd.appRepo.Update(currentApp.GUID, params)
if err != nil {
return err
}
cmd.ui.Ok()
if shouldRestart {
err = cmd.restarter.ApplicationRestart(updatedApp, cmd.config.OrganizationFields().Name, cmd.config.SpaceFields().Name)
if err != nil {
return err
}
}
return nil
}
示例8: mapToAppParams
func mapToAppParams(basePath string, yamlMap generic.Map) (models.AppParams, error) {
err := checkForNulls(yamlMap)
if err != nil {
return models.AppParams{}, err
}
var appParams models.AppParams
var errs []error
appParams.BuildpackURL = stringValOrDefault(yamlMap, "buildpack", &errs)
appParams.DiskQuota = bytesVal(yamlMap, "disk_quota", &errs)
domainAry := sliceOrNil(yamlMap, "domains", &errs)
if domain := stringVal(yamlMap, "domain", &errs); domain != nil {
if domainAry == nil {
domainAry = []string{*domain}
} else {
domainAry = append(domainAry, *domain)
}
}
appParams.Domains = removeDuplicatedValue(domainAry)
hostsArr := sliceOrNil(yamlMap, "hosts", &errs)
if host := stringVal(yamlMap, "host", &errs); host != nil {
hostsArr = append(hostsArr, *host)
}
appParams.Hosts = removeDuplicatedValue(hostsArr)
appParams.Name = stringVal(yamlMap, "name", &errs)
appParams.Path = stringVal(yamlMap, "path", &errs)
appParams.StackName = stringVal(yamlMap, "stack", &errs)
appParams.Command = stringValOrDefault(yamlMap, "command", &errs)
appParams.Memory = bytesVal(yamlMap, "memory", &errs)
appParams.InstanceCount = intVal(yamlMap, "instances", &errs)
appParams.HealthCheckTimeout = intVal(yamlMap, "timeout", &errs)
appParams.NoRoute = boolVal(yamlMap, "no-route", &errs)
appParams.NoHostname = boolOrNil(yamlMap, "no-hostname", &errs)
appParams.UseRandomRoute = boolVal(yamlMap, "random-route", &errs)
appParams.ServicesToBind = sliceOrNil(yamlMap, "services", &errs)
appParams.EnvironmentVars = envVarOrEmptyMap(yamlMap, &errs)
appParams.HealthCheckType = stringVal(yamlMap, "health-check-type", &errs)
appParams.AppPorts = intSliceVal(yamlMap, "app-ports", &errs)
appParams.Routes = parseRoutes(yamlMap, &errs)
if appParams.Path != nil {
path := *appParams.Path
if filepath.IsAbs(path) {
path = filepath.Clean(path)
} else {
path = filepath.Join(basePath, path)
}
appParams.Path = &path
}
if len(errs) > 0 {
message := ""
for _, err := range errs {
message = message + fmt.Sprintf("%s\n", err.Error())
}
return models.AppParams{}, errors.New(message)
}
return appParams, nil
}
示例9: getAppParamsFromContext
func (cmd *Push) getAppParamsFromContext(c flags.FlagContext) (models.AppParams, error) {
noHostBool := c.Bool("no-hostname")
appParams := models.AppParams{
NoRoute: c.Bool("no-route"),
UseRandomRoute: c.Bool("random-route"),
NoHostname: &noHostBool,
}
if len(c.Args()) > 0 {
appParams.Name = &c.Args()[0]
}
if c.String("n") != "" {
appParams.Hosts = []string{c.String("n")}
}
if c.String("route-path") != "" {
routePath := c.String("route-path")
appParams.RoutePath = &routePath
}
if c.String("app-ports") != "" {
appPortStrings := strings.Split(c.String("app-ports"), ",")
appPorts := make([]int, len(appPortStrings))
for i, s := range appPortStrings {
p, err := strconv.Atoi(s)
if err != nil {
return models.AppParams{}, errors.New(T("Invalid app port: {{.AppPort}}\nApp port must be a number", map[string]interface{}{
"AppPort": s,
}))
}
appPorts[i] = p
}
appParams.AppPorts = &appPorts
}
if c.String("b") != "" {
buildpack := c.String("b")
if buildpack == "null" || buildpack == "default" {
buildpack = ""
}
appParams.BuildpackURL = &buildpack
}
if c.String("c") != "" {
command := c.String("c")
if command == "null" || command == "default" {
command = ""
}
appParams.Command = &command
}
if c.String("d") != "" {
appParams.Domains = []string{c.String("d")}
}
if c.IsSet("i") {
instances := c.Int("i")
if instances < 1 {
return models.AppParams{}, errors.New(T("Invalid instance count: {{.InstancesCount}}\nInstance count must be a positive integer",
map[string]interface{}{"InstancesCount": instances}))
}
appParams.InstanceCount = &instances
}
if c.String("k") != "" {
diskQuota, err := formatters.ToMegabytes(c.String("k"))
if err != nil {
return models.AppParams{}, errors.New(T("Invalid disk quota: {{.DiskQuota}}\n{{.Err}}",
map[string]interface{}{"DiskQuota": c.String("k"), "Err": err.Error()}))
}
appParams.DiskQuota = &diskQuota
}
if c.String("m") != "" {
memory, err := formatters.ToMegabytes(c.String("m"))
if err != nil {
return models.AppParams{}, errors.New(T("Invalid memory limit: {{.MemLimit}}\n{{.Err}}",
map[string]interface{}{"MemLimit": c.String("m"), "Err": err.Error()}))
}
appParams.Memory = &memory
}
if c.String("docker-image") != "" {
dockerImage := c.String("docker-image")
appParams.DockerImage = &dockerImage
}
if c.String("p") != "" {
path := c.String("p")
appParams.Path = &path
}
if c.String("s") != "" {
stackName := c.String("s")
appParams.StackName = &stackName
}
//.........這裏部分代碼省略.........