mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-19 21:39:26 +00:00
Merge pull request #27 from weaveworks/wcloud-events
Add wcloud events, update flags and error nicely when there is no config
This commit is contained in:
@@ -52,6 +52,8 @@ func main() {
|
|||||||
config(c, os.Args[2:])
|
config(c, os.Args[2:])
|
||||||
case "logs":
|
case "logs":
|
||||||
logs(c, os.Args[2:])
|
logs(c, os.Args[2:])
|
||||||
|
case "events":
|
||||||
|
events(c, os.Args[2:])
|
||||||
case "help":
|
case "help":
|
||||||
usage()
|
usage()
|
||||||
default:
|
default:
|
||||||
@@ -80,14 +82,17 @@ func deploy(c Client, args []string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func list(c Client, args []string) {
|
func list(c Client, args []string) {
|
||||||
flags := flag.NewFlagSet("list", flag.ContinueOnError)
|
var (
|
||||||
page := flags.Int("page", 0, "Zero based index of page to list.")
|
flags = flag.NewFlagSet("", flag.ContinueOnError)
|
||||||
pagesize := flags.Int("page-size", 10, "Number of results per page")
|
since = flags.Duration("since", 7*24*time.Hour, "How far back to fetch results")
|
||||||
|
)
|
||||||
if err := flags.Parse(args); err != nil {
|
if err := flags.Parse(args); err != nil {
|
||||||
usage()
|
usage()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
deployments, err := c.GetDeployments(*page, *pagesize)
|
through := time.Now()
|
||||||
|
from := through.Add(-*since)
|
||||||
|
deployments, err := c.GetDeployments(through.Unix(), from.Unix())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err.Error())
|
fmt.Println(err.Error())
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
@@ -109,6 +114,26 @@ func list(c Client, args []string) {
|
|||||||
table.Render()
|
table.Render()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func events(c Client, args []string) {
|
||||||
|
var (
|
||||||
|
flags = flag.NewFlagSet("", flag.ContinueOnError)
|
||||||
|
since = flags.Duration("since", 7*24*time.Hour, "How far back to fetch results")
|
||||||
|
)
|
||||||
|
if err := flags.Parse(args); err != nil {
|
||||||
|
usage()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
through := time.Now()
|
||||||
|
from := through.Add(-*since)
|
||||||
|
events, err := c.GetEvents(through.Unix(), from.Unix())
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err.Error())
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("events: ", string(events))
|
||||||
|
}
|
||||||
|
|
||||||
func loadConfig(filename string) (*Config, error) {
|
func loadConfig(filename string) (*Config, error) {
|
||||||
extension := filepath.Ext(filename)
|
extension := filepath.Ext(filename)
|
||||||
var config Config
|
var config Config
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ func (c Client) Deploy(deployment Deployment) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetDeployments returns a list of deployments
|
// GetDeployments returns a list of deployments
|
||||||
func (c Client) GetDeployments(page, pagesize int) ([]Deployment, error) {
|
func (c Client) GetDeployments(from, through int64) ([]Deployment, error) {
|
||||||
req, err := c.newRequest("GET", fmt.Sprintf("/api/deploy?page=%d&pagesize=%d", page, pagesize), nil)
|
req, err := c.newRequest("GET", fmt.Sprintf("/api/deploy?from=%d&through=%d", from, through), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -74,6 +74,22 @@ func (c Client) GetDeployments(page, pagesize int) ([]Deployment, error) {
|
|||||||
return response.Deployments, nil
|
return response.Deployments, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetEvents returns the raw events.
|
||||||
|
func (c Client) GetEvents(from, through int64) ([]byte, error) {
|
||||||
|
req, err := c.newRequest("GET", fmt.Sprintf("/api/deploy/from=%d&through=%d", from, through), nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
res, err := http.DefaultClient.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if res.StatusCode != 200 {
|
||||||
|
return nil, fmt.Errorf("Error making request: %s", res.Status)
|
||||||
|
}
|
||||||
|
return ioutil.ReadAll(res.Body)
|
||||||
|
}
|
||||||
|
|
||||||
// GetConfig returns the current Config
|
// GetConfig returns the current Config
|
||||||
func (c Client) GetConfig() (*Config, error) {
|
func (c Client) GetConfig() (*Config, error) {
|
||||||
req, err := c.newRequest("GET", "/api/config/deploy", nil)
|
req, err := c.newRequest("GET", "/api/config/deploy", nil)
|
||||||
@@ -84,6 +100,9 @@ func (c Client) GetConfig() (*Config, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if res.StatusCode == 404 {
|
||||||
|
return nil, fmt.Errorf("No configuration uploaded yet.")
|
||||||
|
}
|
||||||
if res.StatusCode != 200 {
|
if res.StatusCode != 200 {
|
||||||
return nil, fmt.Errorf("Error making request: %s", res.Status)
|
return nil, fmt.Errorf("Error making request: %s", res.Status)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user