From 45ca8472f1b8340507c217b28d4a2fac2e3f6545 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Tue, 18 Nov 2014 01:34:08 +0000 Subject: [PATCH] add create command --- discovery/client.go | 11 +++++++++++ main.go | 18 +++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/discovery/client.go b/discovery/client.go index fde7ace444..b852bfe6ca 100644 --- a/discovery/client.go +++ b/discovery/client.go @@ -3,6 +3,7 @@ package discovery import ( "encoding/json" "fmt" + "io/ioutil" "net/http" "strings" ) @@ -38,3 +39,13 @@ func RegisterSlave(addr, token string) error { _, err := http.Post(fmt.Sprintf("%s/%s/%s", DISCOVERY_URL, "clusters", token), "application/json", buf) return err } + +// CreateCluster returns a unique cluster token +func CreateCluster() (string, error) { + resp, err := http.Post(fmt.Sprintf("%s/%s", DISCOVERY_URL, "clusters"), "", nil) + if err != nil { + return "", err + } + token, err := ioutil.ReadAll(resp.Body) + return string(token), err +} diff --git a/main.go b/main.go index 9f49030c15..4c0d3ac50a 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "fmt" "os" "time" @@ -60,6 +61,19 @@ func main() { } app.Commands = []cli.Command{ + { + Name: "create", + ShortName: "c", + Usage: "create a cluster", + + Action: func(c *cli.Context) { + token, err := discovery.CreateCluster() + if err != nil { + log.Fatal(err) + } + fmt.Println(token) + }, + }, { Name: "manage", ShortName: "m", @@ -144,5 +158,7 @@ func main() { }, } - log.Fatal(app.Run(os.Args)) + if err := app.Run(os.Args); err != nil { + log.Fatal(err) + } }