|
@@ -225,6 +225,39 @@ func cmdJob(cmd tunasync.CmdVerb) cli.ActionFunc {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+func cmdWorker(cmd tunasync.CmdVerb) cli.ActionFunc {
|
|
|
+ return func(c *cli.Context) error {
|
|
|
+ cmd := tunasync.ClientCmd{
|
|
|
+ Cmd: cmd,
|
|
|
+ WorkerID: c.String("worker"),
|
|
|
+ }
|
|
|
+ resp, err := tunasync.PostJSON(baseURL+cmdPath, cmd, client)
|
|
|
+ if err != nil {
|
|
|
+ return cli.NewExitError(
|
|
|
+ fmt.Sprintf("Failed to correctly send command: %s",
|
|
|
+ err.Error()),
|
|
|
+ 1)
|
|
|
+ }
|
|
|
+ defer resp.Body.Close()
|
|
|
+
|
|
|
+ if resp.StatusCode != http.StatusOK {
|
|
|
+ body, err := ioutil.ReadAll(resp.Body)
|
|
|
+ if err != nil {
|
|
|
+ return cli.NewExitError(
|
|
|
+ fmt.Sprintf("Failed to parse response: %s", err.Error()),
|
|
|
+ 1)
|
|
|
+ }
|
|
|
+
|
|
|
+ return cli.NewExitError(fmt.Sprintf("Failed to correctly send"+
|
|
|
+ " command: HTTP status code is not 200: %s", body),
|
|
|
+ 1)
|
|
|
+ }
|
|
|
+ logger.Info("Succesfully send command")
|
|
|
+
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func main() {
|
|
|
app := cli.NewApp()
|
|
|
app.EnableBashCompletion = true
|
|
@@ -304,6 +337,12 @@ func main() {
|
|
|
Flags: append(commonFlags, cmdFlags...),
|
|
|
Action: initializeWrapper(cmdJob(tunasync.CmdRestart)),
|
|
|
},
|
|
|
+ {
|
|
|
+ Name: "reload",
|
|
|
+ Usage: "Tell worker to reload configurations",
|
|
|
+ Flags: append(commonFlags, cmdFlags...),
|
|
|
+ Action: initializeWrapper(cmdWorker(tunasync.CmdReload)),
|
|
|
+ },
|
|
|
{
|
|
|
Name: "ping",
|
|
|
Flags: append(commonFlags, cmdFlags...),
|