github.com/jfrog/jfrog-cli-platform-services@v1.2.0/commands/execute_cmd.go (about) 1 package commands 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "net/http" 7 8 "github.com/jfrog/jfrog-client-go/utils/log" 9 10 plugins_common "github.com/jfrog/jfrog-cli-core/v2/plugins/common" 11 "github.com/jfrog/jfrog-cli-core/v2/plugins/components" 12 13 "github.com/jfrog/jfrog-cli-platform-services/model" 14 ) 15 16 func GetExecuteCommand() components.Command { 17 return components.Command{ 18 Name: "execute", 19 Description: "Execute a GENERIC_EVENT worker", 20 Aliases: []string{"exec", "e"}, 21 Flags: []components.Flag{ 22 plugins_common.GetServerIdFlag(), 23 model.GetTimeoutFlag(), 24 }, 25 Arguments: []components.Argument{ 26 model.GetWorkerKeyArgument(), 27 model.GetJsonPayloadArgument(), 28 }, 29 Action: func(c *components.Context) error { 30 var workerKey string 31 32 if len(c.Arguments) > 1 { 33 workerKey = c.Arguments[0] 34 } else if len(c.Arguments) > 0 { 35 log.Info("No worker name provided, it will be taken from the manifest. Last argument is considered as a json payload.") 36 } 37 38 if workerKey == "" { 39 manifest, err := model.ReadManifest() 40 if err != nil { 41 return err 42 } 43 44 if err = manifest.Validate(); err != nil { 45 return err 46 } 47 48 if manifest.Action != "GENERIC_EVENT" { 49 return fmt.Errorf("only the GENERIC_EVENT actions are executable. Got %s", manifest.Action) 50 } 51 52 workerKey = manifest.Name 53 } 54 55 server, err := model.GetServerDetails(c) 56 if err != nil { 57 return err 58 } 59 60 inputReader := &cmdInputReader{c} 61 62 data, err := inputReader.readData() 63 if err != nil { 64 return err 65 } 66 67 body, err := json.Marshal(data) 68 if err != nil { 69 return err 70 } 71 72 return callWorkerApiWithOutput(c, server.GetUrl(), server.GetAccessToken(), http.MethodPost, body, http.StatusOK, "execute", workerKey) 73 }, 74 } 75 }