func (cmd *CreateUser) Execute(c flags.FlagContext) error { username := c.Args()[0] password := c.Args()[1] cmd.ui.Say(T("Creating user {{.TargetUser}}...", map[string]interface{}{ "TargetUser": terminal.EntityNameColor(username), "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), })) err := cmd.userRepo.Create(username, password) switch err.(type) { case nil: case *errors.ModelAlreadyExistsError: cmd.ui.Warn("%s", err.Error()) default: return errors.New(T("Error creating user {{.TargetUser}}.\n{{.Error}}", map[string]interface{}{ "TargetUser": terminal.EntityNameColor(username), "Error": err.Error(), })) } cmd.ui.Ok() cmd.ui.Say(T("\nTIP: Assign roles with '{{.CurrentUser}} set-org-role' and '{{.CurrentUser}} set-space-role'", map[string]interface{}{"CurrentUser": cf.Name})) return nil }
func (cmd *RenameService) Execute(c flags.FlagContext) error { newName := c.Args()[1] serviceInstance := cmd.serviceInstanceReq.GetServiceInstance() cmd.ui.Say(T("Renaming service {{.ServiceName}} to {{.NewServiceName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUser}}...", map[string]interface{}{ "ServiceName": terminal.EntityNameColor(serviceInstance.Name), "NewServiceName": terminal.EntityNameColor(newName), "OrgName": terminal.EntityNameColor(cmd.config.OrganizationFields().Name), "SpaceName": terminal.EntityNameColor(cmd.config.SpaceFields().Name), "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), })) err := cmd.serviceRepo.RenameService(serviceInstance, newName) if err != nil { if httpError, ok := err.(errors.HTTPError); ok && httpError.ErrorCode() == errors.ServiceInstanceNameTaken { return errors.New(T("{{.ErrorDescription}}\nTIP: Use '{{.CFServicesCommand}}' to view all services in this org and space.", map[string]interface{}{ "ErrorDescription": httpError.Error(), "CFServicesCommand": cf.Name + " " + "services", })) } return err } cmd.ui.Ok() return nil }
func (cmd CreateBuildpack) createBuildpack(buildpackName string, c flags.FlagContext) (buildpack models.Buildpack, apiErr error) { position, err := strconv.Atoi(c.Args()[2]) if err != nil { apiErr = fmt.Errorf(T("Error {{.ErrorDescription}} is being passed in as the argument for 'Position' but 'Position' requires an integer. For more syntax help, see `cf create-buildpack -h`.", map[string]interface{}{"ErrorDescription": c.Args()[2]})) return } enabled := c.Bool("enable") disabled := c.Bool("disable") if enabled && disabled { apiErr = errors.New(T("Cannot specify both {{.Enabled}} and {{.Disabled}}.", map[string]interface{}{ "Enabled": "enabled", "Disabled": "disabled", })) return } var enableOption *bool if enabled { enableOption = &enabled } if disabled { disabled = false enableOption = &disabled } buildpack, apiErr = cmd.buildpackRepo.Create(buildpackName, &position, enableOption, nil) return }
func (cmd *RestartAppInstance) Execute(fc flags.FlagContext) error { app := cmd.appReq.GetApplication() instance, err := strconv.Atoi(fc.Args()[1]) if err != nil { return errors.New(T("Instance must be a non-negative integer")) } cmd.ui.Say(T("Restarting instance {{.Instance}} of application {{.AppName}} as {{.Username}}", map[string]interface{}{ "Instance": instance, "AppName": terminal.EntityNameColor(app.Name), "Username": terminal.EntityNameColor(cmd.config.Username()), })) err = cmd.appInstancesRepo.DeleteInstance(app.GUID, instance) if err != nil { return err } cmd.ui.Ok() cmd.ui.Say("") return nil }
func (cmd *DeleteServiceAuthTokenFields) Execute(c flags.FlagContext) error { tokenLabel := c.Args()[0] tokenProvider := c.Args()[1] if c.Bool("f") == false { if !cmd.ui.ConfirmDelete(T("service auth token"), fmt.Sprintf("%s %s", tokenLabel, tokenProvider)) { return nil } } cmd.ui.Say(T("Deleting service auth token as {{.CurrentUser}}", map[string]interface{}{ "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), })) token, err := cmd.authTokenRepo.FindByLabelAndProvider(tokenLabel, tokenProvider) switch err.(type) { case nil: case *errors.ModelNotFoundError: cmd.ui.Ok() cmd.ui.Warn(T("Service Auth Token {{.Label}} {{.Provider}} does not exist.", map[string]interface{}{"Label": tokenLabel, "Provider": tokenProvider})) return nil default: return err } err = cmd.authTokenRepo.Delete(token) if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *SetSpaceQuota) Execute(c flags.FlagContext) error { spaceName := c.Args()[0] quotaName := c.Args()[1] cmd.ui.Say(T("Assigning space quota {{.QuotaName}} to space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{ "QuotaName": terminal.EntityNameColor(quotaName), "SpaceName": terminal.EntityNameColor(spaceName), "Username": terminal.EntityNameColor(cmd.config.Username()), })) space, err := cmd.spaceRepo.FindByName(spaceName) if err != nil { return err } if space.SpaceQuotaGUID != "" { return errors.New(T("This space already has an assigned space quota.")) } quota, err := cmd.quotaRepo.FindByName(quotaName) if err != nil { return err } err = cmd.quotaRepo.AssociateSpaceWithQuota(space.GUID, quota.GUID) if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *PurgeServiceInstance) Execute(c flags.FlagContext) error { instanceName := c.Args()[0] instance, err := cmd.serviceRepo.FindInstanceByName(instanceName) if err != nil { if _, ok := err.(*errors.ModelNotFoundError); ok { cmd.ui.Warn(T("Service instance {{.InstanceName}} not found", map[string]interface{}{"InstanceName": instanceName})) return nil } return err } force := c.Bool("f") if !force { cmd.ui.Warn(cmd.scaryWarningMessage()) confirmed := cmd.ui.Confirm(T("Really purge service instance {{.InstanceName}} from Cloud Foundry?", map[string]interface{}{"InstanceName": instanceName}, )) if !confirmed { return nil } } cmd.ui.Say(T("Purging service {{.InstanceName}}...", map[string]interface{}{"InstanceName": instanceName})) err = cmd.serviceRepo.PurgeServiceInstance(instance) if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *PluginUninstall) Execute(c flags.FlagContext) error { pluginName := c.Args()[0] pluginNameMap := map[string]interface{}{"PluginName": pluginName} cmd.ui.Say(T("Uninstalling plugin {{.PluginName}}...", pluginNameMap)) plugins := cmd.config.Plugins() if _, ok := plugins[pluginName]; !ok { return errors.New(T("Plugin name {{.PluginName}} does not exist", pluginNameMap)) } pluginMetadata := plugins[pluginName] warn, err := cmd.notifyPluginUninstalling(pluginMetadata) if err != nil { return err } if warn != nil { cmd.ui.Say("Error invoking plugin: " + warn.Error() + ". Process to uninstall ...") } time.Sleep(500 * time.Millisecond) //prevent 'process being used' error in Windows err = os.Remove(pluginMetadata.Location) if err != nil { cmd.ui.Warn("Error removing plugin binary: " + err.Error()) } cmd.config.RemovePlugin(pluginName) cmd.ui.Ok() cmd.ui.Say(T("Plugin {{.PluginName}} successfully uninstalled.", pluginNameMap)) return nil }
func (cmd *DeleteSpaceQuota) Execute(c flags.FlagContext) error { quotaName := c.Args()[0] if !c.Bool("f") { response := cmd.ui.ConfirmDelete("quota", quotaName) if !response { return nil } } cmd.ui.Say(T("Deleting space quota {{.QuotaName}} as {{.Username}}...", map[string]interface{}{ "QuotaName": terminal.EntityNameColor(quotaName), "Username": terminal.EntityNameColor(cmd.config.Username()), })) quota, err := cmd.spaceQuotaRepo.FindByName(quotaName) switch (err).(type) { case nil: // no error case *errors.ModelNotFoundError: cmd.ui.Ok() cmd.ui.Warn(T("Quota {{.QuotaName}} does not exist", map[string]interface{}{"QuotaName": quotaName})) return nil default: return err } err = cmd.spaceQuotaRepo.Delete(quota.GUID) if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *UnsetOrgRole) Execute(c flags.FlagContext) error { user := cmd.userReq.GetUser() org := cmd.orgReq.GetOrganization() roleStr := c.Args()[2] role, err := models.RoleFromString(roleStr) if err != nil { return err } cmd.ui.Say(T("Removing role {{.Role}} from user {{.TargetUser}} in org {{.TargetOrg}} as {{.CurrentUser}}...", map[string]interface{}{ "Role": terminal.EntityNameColor(roleStr), "TargetUser": terminal.EntityNameColor(c.Args()[0]), "TargetOrg": terminal.EntityNameColor(c.Args()[1]), "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), })) if len(user.GUID) > 0 { err = cmd.userRepo.UnsetOrgRoleByGUID(user.GUID, org.GUID, role) } else { err = cmd.userRepo.UnsetOrgRoleByUsername(user.Username, org.GUID, role) } if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *unbindFromStagingGroup) Execute(context flags.FlagContext) error { name := context.Args()[0] cmd.ui.Say(T("Unbinding security group {{.security_group}} from defaults for staging as {{.username}}", map[string]interface{}{ "security_group": terminal.EntityNameColor(name), "username": terminal.EntityNameColor(cmd.configRepo.Username()), })) securityGroup, err := cmd.securityGroupRepo.Read(name) switch (err).(type) { case nil: case *errors.ModelNotFoundError: cmd.ui.Ok() cmd.ui.Warn(T("Security group {{.security_group}} {{.error_message}}", map[string]interface{}{ "security_group": terminal.EntityNameColor(name), "error_message": terminal.WarningColor(T("does not exist.")), })) return nil default: return err } err = cmd.stagingGroupRepo.UnbindFromStagingSet(securityGroup.GUID) if err != nil { return err } cmd.ui.Ok() cmd.ui.Say("\n\n") cmd.ui.Say(T("TIP: Changes will not apply to existing running applications until they are restarted.")) return nil }
func NewSSHOptions(fc flags.FlagContext) (*SSHOptions, error) { sshOptions := &SSHOptions{} sshOptions.AppName = fc.Args()[0] sshOptions.Index = uint(fc.Int("i")) sshOptions.SkipHostValidation = fc.Bool("k") sshOptions.SkipRemoteExecution = fc.Bool("N") sshOptions.Command = fc.StringSlice("c") if fc.IsSet("L") { for _, arg := range fc.StringSlice("L") { forwardSpec, err := sshOptions.parseLocalForwardingSpec(arg) if err != nil { return sshOptions, err } sshOptions.ForwardSpecs = append(sshOptions.ForwardSpecs, *forwardSpec) } } if fc.IsSet("t") && fc.Bool("t") { sshOptions.TerminalRequest = RequestTTYYes } if fc.IsSet("tt") && fc.Bool("tt") { sshOptions.TerminalRequest = RequestTTYForce } if fc.Bool("T") { sshOptions.TerminalRequest = RequestTTYNo } return sshOptions, nil }
func (cmd *Restage) Execute(c flags.FlagContext) error { app, err := cmd.appRepo.Read(c.Args()[0]) if notFound, ok := err.(*errors.ModelNotFoundError); ok { return notFound } cmd.ui.Say(T("Restaging app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUser}}...", map[string]interface{}{ "AppName": terminal.EntityNameColor(app.Name), "OrgName": terminal.EntityNameColor(cmd.config.OrganizationFields().Name), "SpaceName": terminal.EntityNameColor(cmd.config.SpaceFields().Name), "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), })) app.PackageState = "" _, err = cmd.appStagingWatcher.WatchStaging(app, cmd.config.OrganizationFields().Name, cmd.config.SpaceFields().Name, func(app models.Application) (models.Application, error) { return app, cmd.appRepo.CreateRestageRequest(app.GUID) }) if err != nil { cmd.ui.Say(T("Failed to watch staging of app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUser}}...", map[string]interface{}{ "AppName": terminal.EntityNameColor(app.Name), "OrgName": terminal.EntityNameColor(cmd.config.OrganizationFields().Name), "SpaceName": terminal.EntityNameColor(cmd.config.SpaceFields().Name), "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), })) } return nil }
func (cmd *DeleteSpace) Execute(c flags.FlagContext) error { spaceName := c.Args()[0] if !c.Bool("f") { if !cmd.ui.ConfirmDelete(T("space"), spaceName) { return nil } } cmd.ui.Say(T("Deleting space {{.TargetSpace}} in org {{.TargetOrg}} as {{.CurrentUser}}...", map[string]interface{}{ "TargetSpace": terminal.EntityNameColor(spaceName), "TargetOrg": terminal.EntityNameColor(cmd.config.OrganizationFields().Name), "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), })) space := cmd.spaceReq.GetSpace() err := cmd.spaceRepo.Delete(space.GUID) if err != nil { return err } cmd.ui.Ok() if cmd.config.SpaceFields().GUID == space.GUID { cmd.config.SetSpaceFields(models.SpaceFields{}) cmd.ui.Say(T("TIP: No space targeted, use '{{.CfTargetCommand}}' to target a space", map[string]interface{}{"CfTargetCommand": cf.Name + " target -s"})) } return nil }
func (cmd *SetOrgRole) Execute(c flags.FlagContext) error { user := cmd.userReq.GetUser() org := cmd.orgReq.GetOrganization() roleStr := c.Args()[2] role, err := models.RoleFromString(roleStr) if err != nil { return err } cmd.ui.Say(T("Assigning role {{.Role}} to user {{.TargetUser}} in org {{.TargetOrg}} as {{.CurrentUser}}...", map[string]interface{}{ "Role": terminal.EntityNameColor(roleStr), "TargetUser": terminal.EntityNameColor(user.Username), "TargetOrg": terminal.EntityNameColor(org.Name), "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), })) err = cmd.SetOrgRole(org.GUID, role, user.GUID, user.Username) if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *UnsetEnv) Execute(c flags.FlagContext) error { varName := c.Args()[1] app := cmd.appReq.GetApplication() cmd.ui.Say(T("Removing env variable {{.VarName}} from app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUser}}...", map[string]interface{}{ "VarName": terminal.EntityNameColor(varName), "AppName": terminal.EntityNameColor(app.Name), "OrgName": terminal.EntityNameColor(cmd.config.OrganizationFields().Name), "SpaceName": terminal.EntityNameColor(cmd.config.SpaceFields().Name), "CurrentUser": terminal.EntityNameColor(cmd.config.Username())})) envParams := app.EnvironmentVars if _, ok := envParams[varName]; !ok { cmd.ui.Ok() cmd.ui.Warn(T("Env variable {{.VarName}} was not set.", map[string]interface{}{"VarName": varName})) return nil } delete(envParams, varName) _, err := cmd.appRepo.Update(app.GUID, models.AppParams{EnvironmentVars: &envParams}) if err != nil { return err } cmd.ui.Ok() cmd.ui.Say(T("TIP: Use '{{.Command}}' to ensure your env variable changes take effect", map[string]interface{}{"Command": terminal.CommandColor(cf.Name + " restage")})) return nil }
func (cmd *UpdateSecurityGroup) Execute(context flags.FlagContext) error { name := context.Args()[0] securityGroup, err := cmd.securityGroupRepo.Read(name) if err != nil { return err } pathToJSONFile := context.Args()[1] rules, err := json.ParseJSONArray(pathToJSONFile) if err != nil { return err } cmd.ui.Say(T("Updating security group {{.security_group}} as {{.username}}", map[string]interface{}{ "security_group": terminal.EntityNameColor(name), "username": terminal.EntityNameColor(cmd.configRepo.Username()), })) err = cmd.securityGroupRepo.Update(securityGroup.GUID, rules) if err != nil { return err } cmd.ui.Ok() cmd.ui.Say("\n\n") cmd.ui.Say(T("TIP: Changes will not apply to existing running applications until they are restarted.")) return nil }
func (cmd *SSH) Requirements(requirementsFactory requirements.Factory, fc flags.FlagContext) ([]requirements.Requirement, error) { if len(fc.Args()) != 1 { cmd.ui.Failed(T("Incorrect Usage. Requires APP_NAME as argument") + "\n\n" + commandregistry.Commands.CommandUsage("ssh")) return nil, fmt.Errorf("Incorrect usage: %d arguments of %d required", len(fc.Args()), 1) } if fc.IsSet("i") && fc.Int("i") < 0 { cmd.ui.Failed(fmt.Sprintf(T("Incorrect Usage:")+" %s\n\n%s", T("Value for flag 'app-instance-index' cannot be negative"), commandregistry.Commands.CommandUsage("ssh"))) return nil, fmt.Errorf("Incorrect usage: app-instance-index cannot be negative") } var err error cmd.opts, err = options.NewSSHOptions(fc) if err != nil { cmd.ui.Failed(fmt.Sprintf(T("Incorrect Usage:")+" %s\n\n%s", err.Error(), commandregistry.Commands.CommandUsage("ssh"))) return nil, err } cmd.appReq = requirementsFactory.NewApplicationRequirement(cmd.opts.AppName) reqs := []requirements.Requirement{ requirementsFactory.NewLoginRequirement(), requirementsFactory.NewTargetedSpaceRequirement(), cmd.appReq, } return reqs, nil }
func (cmd *Push) Requirements(requirementsFactory requirements.Factory, fc flags.FlagContext) ([]requirements.Requirement, error) { var reqs []requirements.Requirement usageReq := requirementsFactory.NewUsageRequirement(commandregistry.CLICommandUsagePresenter(cmd), "", func() bool { return len(fc.Args()) > 1 }, ) reqs = append(reqs, usageReq) if fc.String("route-path") != "" { reqs = append(reqs, requirementsFactory.NewMinAPIVersionRequirement("Option '--route-path'", cf.RoutePathMinimumAPIVersion)) } if fc.String("app-ports") != "" { reqs = append(reqs, requirementsFactory.NewMinAPIVersionRequirement("Option '--app-ports'", cf.MultipleAppPortsMinimumAPIVersion)) } reqs = append(reqs, []requirements.Requirement{ requirementsFactory.NewLoginRequirement(), requirementsFactory.NewTargetedSpaceRequirement(), }...) return reqs, nil }
func (cmd *DeleteSecurityGroup) Execute(context flags.FlagContext) error { name := context.Args()[0] cmd.ui.Say(T("Deleting security group {{.security_group}} as {{.username}}", map[string]interface{}{ "security_group": terminal.EntityNameColor(name), "username": terminal.EntityNameColor(cmd.configRepo.Username()), })) if !context.Bool("f") { response := cmd.ui.ConfirmDelete(T("security group"), name) if !response { return nil } } group, err := cmd.securityGroupRepo.Read(name) switch err.(type) { case nil: case *errors.ModelNotFoundError: cmd.ui.Ok() cmd.ui.Warn(T("Security group {{.security_group}} does not exist", map[string]interface{}{"security_group": name})) return nil default: return err } err = cmd.securityGroupRepo.Delete(group.GUID) if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *Env) Execute(c flags.FlagContext) error { app, err := cmd.appRepo.Read(c.Args()[0]) if notFound, ok := err.(*errors.ModelNotFoundError); ok { return notFound } cmd.ui.Say(T("Getting env variables for app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{ "AppName": terminal.EntityNameColor(app.Name), "OrgName": terminal.EntityNameColor(cmd.config.OrganizationFields().Name), "SpaceName": terminal.EntityNameColor(cmd.config.SpaceFields().Name), "Username": terminal.EntityNameColor(cmd.config.Username())})) env, err := cmd.appRepo.ReadEnv(app.GUID) if err != nil { return err } cmd.ui.Ok() cmd.ui.Say("") err = cmd.displaySystemiAndAppProvidedEnvironment(env.System, env.Application) if err != nil { return err } cmd.ui.Say("") cmd.displayUserProvidedEnvironment(env.Environment) cmd.ui.Say("") cmd.displayRunningEnvironment(env.Running) cmd.ui.Say("") cmd.displayStagingEnvironment(env.Staging) cmd.ui.Say("") return nil }
func (cmd *UnsetSpaceQuota) Execute(c flags.FlagContext) error { spaceName := c.Args()[0] quotaName := c.Args()[1] space, err := cmd.spaceRepo.FindByName(spaceName) if err != nil { return err } quota, err := cmd.quotaRepo.FindByName(quotaName) if err != nil { return err } cmd.ui.Say(T("Unassigning space quota {{.QuotaName}} from space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{ "QuotaName": terminal.EntityNameColor(quota.Name), "SpaceName": terminal.EntityNameColor(space.Name), "Username": terminal.EntityNameColor(cmd.config.Username())})) err = cmd.quotaRepo.UnassignQuotaFromSpace(space.GUID, quota.GUID) if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *DeleteUser) Execute(c flags.FlagContext) error { username := c.Args()[0] force := c.Bool("f") if !force && !cmd.ui.ConfirmDelete(T("user"), username) { return nil } cmd.ui.Say(T("Deleting user {{.TargetUser}} as {{.CurrentUser}}...", map[string]interface{}{ "TargetUser": terminal.EntityNameColor(username), "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), })) user, err := cmd.userRepo.FindByUsername(username) switch err.(type) { case nil: case *errors.ModelNotFoundError: cmd.ui.Ok() cmd.ui.Warn(T("User {{.TargetUser}} does not exist.", map[string]interface{}{"TargetUser": username})) return nil default: return err } err = cmd.userRepo.Delete(user.GUID) if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *CreateServiceKey) Execute(c flags.FlagContext) error { serviceInstance := cmd.serviceInstanceRequirement.GetServiceInstance() serviceKeyName := c.Args()[1] params := c.String("c") paramsMap, err := json.ParseJSONFromFileOrString(params) if err != nil { return errors.New(T("Invalid configuration provided for -c flag. Please provide a valid JSON object or path to a file containing a valid JSON object.")) } cmd.ui.Say(T("Creating service key {{.ServiceKeyName}} for service instance {{.ServiceInstanceName}} as {{.CurrentUser}}...", map[string]interface{}{ "ServiceInstanceName": terminal.EntityNameColor(serviceInstance.Name), "ServiceKeyName": terminal.EntityNameColor(serviceKeyName), "CurrentUser": terminal.EntityNameColor(cmd.config.Username()), })) err = cmd.serviceKeyRepo.CreateServiceKey(serviceInstance.GUID, serviceKeyName, paramsMap) switch err.(type) { case nil: cmd.ui.Ok() case *errors.ModelAlreadyExistsError: cmd.ui.Ok() cmd.ui.Warn(err.Error()) default: return err } return nil }
func (cmd *DisableServiceAccess) Execute(c flags.FlagContext) error { _, err := cmd.tokenRefresher.RefreshAuthToken() if err != nil { return err } serviceName := c.Args()[0] planName := c.String("p") orgName := c.String("o") if planName != "" && orgName != "" { err = cmd.disablePlanAndOrgForService(serviceName, planName, orgName) } else if planName != "" { err = cmd.disableSinglePlanForService(serviceName, planName) } else if orgName != "" { err = cmd.disablePlansForSingleOrgForService(serviceName, orgName) } else { err = cmd.disableServiceForAll(serviceName) } if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *SetHealthCheck) Execute(fc flags.FlagContext) error { healthCheckType := fc.Args()[1] app := cmd.appReq.GetApplication() if app.HealthCheckType == healthCheckType { cmd.ui.Say(fmt.Sprintf("%s "+T("health_check_type is already set")+" to '%s'", app.Name, app.HealthCheckType)) return nil } cmd.ui.Say(fmt.Sprintf(T("Updating %s health_check_type to '%s'"), app.Name, healthCheckType)) cmd.ui.Say("") updatedApp, err := cmd.appRepo.Update(app.GUID, models.AppParams{HealthCheckType: &healthCheckType}) if err != nil { return errors.New(T("Error updating health_check_type for ") + app.Name + ": " + err.Error()) } if updatedApp.HealthCheckType == healthCheckType { cmd.ui.Ok() } else { return errors.New(T("health_check_type is not set to ") + healthCheckType + T(" for ") + app.Name) } return nil }
func (cmd *SetEnv) Execute(c flags.FlagContext) error { varName := c.Args()[1] varValue := c.Args()[2] app := cmd.appReq.GetApplication() cmd.ui.Say(T("Setting env variable '{{.VarName}}' to '{{.VarValue}}' for app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUser}}...", map[string]interface{}{ "VarName": terminal.EntityNameColor(varName), "VarValue": terminal.EntityNameColor(varValue), "AppName": terminal.EntityNameColor(app.Name), "OrgName": terminal.EntityNameColor(cmd.config.OrganizationFields().Name), "SpaceName": terminal.EntityNameColor(cmd.config.SpaceFields().Name), "CurrentUser": terminal.EntityNameColor(cmd.config.Username())})) if len(app.EnvironmentVars) == 0 { app.EnvironmentVars = map[string]interface{}{} } envParams := app.EnvironmentVars envParams[varName] = varValue _, err := cmd.appRepo.Update(app.GUID, models.AppParams{EnvironmentVars: &envParams}) if err != nil { return err } cmd.ui.Ok() cmd.ui.Say(T("TIP: Use '{{.Command}}' to ensure your env variable changes take effect", map[string]interface{}{"Command": terminal.CommandColor(cf.Name + " restage " + app.Name)})) return nil }
func (cmd API) Execute(c flags.FlagContext) error { if c.Bool("unset") { cmd.ui.Say(T("Unsetting api endpoint...")) cmd.config.SetAPIEndpoint("") cmd.ui.Ok() cmd.ui.Say(T("\nNo api endpoint set.")) } else if len(c.Args()) == 0 { if cmd.config.APIEndpoint() == "" { cmd.ui.Say(fmt.Sprintf(T("No api endpoint set. Use '{{.Name}}' to set an endpoint", map[string]interface{}{"Name": terminal.CommandColor(cf.Name + " api")}))) } else { cmd.ui.Say(T("API endpoint: {{.APIEndpoint}} (API version: {{.APIVersion}})", map[string]interface{}{"APIEndpoint": terminal.EntityNameColor(cmd.config.APIEndpoint()), "APIVersion": terminal.EntityNameColor(cmd.config.APIVersion())})) } } else { endpoint := c.Args()[0] cmd.ui.Say(T("Setting api endpoint to {{.Endpoint}}...", map[string]interface{}{"Endpoint": terminal.EntityNameColor(endpoint)})) err := cmd.setAPIEndpoint(endpoint, c.Bool("skip-ssl-validation"), cmd.MetaData().Name) if err != nil { return err } cmd.ui.Ok() cmd.ui.Say("") cmd.ui.ShowConfiguration(cmd.config) } return nil }
func (cmd *DeleteServiceBroker) Execute(c flags.FlagContext) error { brokerName := c.Args()[0] if !c.Bool("f") && !cmd.ui.ConfirmDelete(T("service-broker"), brokerName) { return nil } cmd.ui.Say(T("Deleting service broker {{.Name}} as {{.Username}}...", map[string]interface{}{ "Name": terminal.EntityNameColor(brokerName), "Username": terminal.EntityNameColor(cmd.config.Username()), })) broker, err := cmd.repo.FindByName(brokerName) switch err.(type) { case nil: case *errors.ModelNotFoundError: cmd.ui.Ok() cmd.ui.Warn(T("Service Broker {{.Name}} does not exist.", map[string]interface{}{"Name": brokerName})) return nil default: return err } err = cmd.repo.Delete(broker.GUID) if err != nil { return err } cmd.ui.Ok() return nil }
func (cmd *PluginInstall) Requirements(requirementsFactory requirements.Factory, fc flags.FlagContext) ([]requirements.Requirement, error) { if len(fc.Args()) != 1 { cmd.ui.Failed(T("Incorrect Usage. Requires an argument\n\n") + commandregistry.Commands.CommandUsage("install-plugin")) return nil, fmt.Errorf("Incorrect usage: %d arguments of %d required", len(fc.Args()), 1) } reqs := []requirements.Requirement{} return reqs, nil }