github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/command/v7/set_running_environment_variable_group_command.go (about) 1 package v7 2 3 import ( 4 "encoding/json" 5 "fmt" 6 7 "code.cloudfoundry.org/cli/actor/sharedaction" 8 "code.cloudfoundry.org/cli/actor/v7action" 9 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3" 10 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/constant" 11 "code.cloudfoundry.org/cli/cf/errors" 12 "code.cloudfoundry.org/cli/command" 13 "code.cloudfoundry.org/cli/command/flag" 14 "code.cloudfoundry.org/cli/command/v7/shared" 15 "code.cloudfoundry.org/clock" 16 ) 17 18 //go:generate counterfeiter . SetRunningEnvironmentVariableGroupActor 19 20 type SetRunningEnvironmentVariableGroupActor interface { 21 SetEnvironmentVariableGroup(group constant.EnvironmentVariableGroupName, envVars ccv3.EnvironmentVariables) (v7action.Warnings, error) 22 } 23 24 type SetRunningEnvironmentVariableGroupCommand struct { 25 RequiredArgs flag.SetEnvVarGroup `positional-args:"yes"` 26 usage interface{} `usage:"CF_NAME set-running-environment-variable-group '{\"name\":\"value\",\"name\":\"value\"}'"` 27 relatedCommands interface{} `related_commands:"set-env, staging-environment-variable-group"` 28 29 UI command.UI 30 Config command.Config 31 SharedActor command.SharedActor 32 Actor SetRunningEnvironmentVariableGroupActor 33 } 34 35 func (cmd *SetRunningEnvironmentVariableGroupCommand) Setup(config command.Config, ui command.UI) error { 36 cmd.UI = ui 37 cmd.Config = config 38 sharedActor := sharedaction.NewActor(config) 39 cmd.SharedActor = sharedActor 40 41 ccClient, uaaClient, err := shared.GetNewClientsAndConnectToCF(config, ui, "") 42 if err != nil { 43 return err 44 } 45 cmd.Actor = v7action.NewActor(ccClient, config, sharedActor, uaaClient, clock.NewClock()) 46 47 return nil 48 } 49 50 func (cmd SetRunningEnvironmentVariableGroupCommand) Execute(args []string) error { 51 err := cmd.SharedActor.CheckTarget(false, false) 52 if err != nil { 53 return err 54 } 55 56 user, err := cmd.Config.CurrentUser() 57 if err != nil { 58 return err 59 } 60 61 cmd.UI.DisplayTextWithFlavor("Setting the contents of the running environment variable group as {{.Username}}...", map[string]interface{}{ 62 "Username": user.Name, 63 }) 64 65 var envVars ccv3.EnvironmentVariables 66 err = json.Unmarshal([]byte(fmt.Sprintf(`{"var":%s}`, cmd.RequiredArgs.EnvVarGroupJson)), &envVars) 67 if err != nil { 68 return errors.New("Invalid environment variable group provided. Please provide a valid JSON object.") 69 } 70 71 warnings, err := cmd.Actor.SetEnvironmentVariableGroup( 72 constant.RunningEnvironmentVariableGroup, 73 envVars, 74 ) 75 cmd.UI.DisplayWarnings(warnings) 76 if err != nil { 77 return err 78 } 79 80 cmd.UI.DisplayOK() 81 82 return nil 83 }