summaryrefslogtreecommitdiffstats
path: root/clover/cloverctl/src/cloverctl/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'clover/cloverctl/src/cloverctl/cmd')
-rw-r--r--clover/cloverctl/src/cloverctl/cmd/clear_visibility.go2
-rw-r--r--clover/cloverctl/src/cloverctl/cmd/get_visibility.go31
-rw-r--r--clover/cloverctl/src/cloverctl/cmd/set_nginx.go76
-rw-r--r--clover/cloverctl/src/cloverctl/cmd/set_visibility.go57
4 files changed, 157 insertions, 9 deletions
diff --git a/clover/cloverctl/src/cloverctl/cmd/clear_visibility.go b/clover/cloverctl/src/cloverctl/cmd/clear_visibility.go
index 9468714..2ad43f1 100644
--- a/clover/cloverctl/src/cloverctl/cmd/clear_visibility.go
+++ b/clover/cloverctl/src/cloverctl/cmd/clear_visibility.go
@@ -28,7 +28,7 @@ func init() {
}
func clearCollector() {
- url := controllerIP + "/collector/truncate"
+ url := controllerIP + "/visibility/clear"
resp, err := resty.R().
Get(url)
diff --git a/clover/cloverctl/src/cloverctl/cmd/get_visibility.go b/clover/cloverctl/src/cloverctl/cmd/get_visibility.go
index d987412..820b25a 100644
--- a/clover/cloverctl/src/cloverctl/cmd/get_visibility.go
+++ b/clover/cloverctl/src/cloverctl/cmd/get_visibility.go
@@ -13,23 +13,38 @@ import (
"github.com/spf13/cobra"
)
+var VisibilityStat string
+var VisibilityConfig string
-var visibilitystatsCmd = &cobra.Command{
+var visibilitygetCmd = &cobra.Command{
Use: "visibility",
- Short: "Get toplevel visibility stats",
+ Short: "Get visibility config & stats",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
- statsCollector()
+ getVisibility()
},
}
func init() {
- getCmd.AddCommand(visibilitystatsCmd)
- //visibilitystartCmd.PersistentFlags().StringVarP(&cloverFile, "f", "f", "", "Input yaml file with test plan params")
+ getCmd.AddCommand(visibilitygetCmd)
+ visibilitygetCmd.PersistentFlags().StringVarP(&VisibilityStat, "stat", "s", "", "Visibility stats type to get")
+ visibilitygetCmd.PersistentFlags().StringVarP(&VisibilityConfig, "conf", "c", "", "Visibility config type to get")
}
-func statsCollector() {
- url := controllerIP + "/collector/stats"
+func getVisibility() {
+
+ url_prefix := "/visibility/get/"
+ get_data := "all"
+ response_prefix := "Config"
+ if VisibilityStat != "" {
+ url_prefix = "/visibility/get/stats/"
+ get_data = VisibilityStat
+ response_prefix = "Stat"
+ } else if VisibilityConfig != "" {
+ get_data = VisibilityConfig
+ }
+
+ url := controllerIP + url_prefix + get_data
resp, err := resty.R().
SetHeader("Accept", "application/json").
@@ -37,5 +52,5 @@ func statsCollector() {
if err != nil {
panic(err.Error())
}
- fmt.Printf("\nProxy Response Time: %v\n", resp)
+ fmt.Printf("\n%s %s: %v\n", response_prefix, get_data, resp)
}
diff --git a/clover/cloverctl/src/cloverctl/cmd/set_nginx.go b/clover/cloverctl/src/cloverctl/cmd/set_nginx.go
new file mode 100644
index 0000000..e7e65c2
--- /dev/null
+++ b/clover/cloverctl/src/cloverctl/cmd/set_nginx.go
@@ -0,0 +1,76 @@
+// Copyright (c) Authors of Clover
+//
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Apache License, Version 2.0
+// which accompanies this distribution, and is available at
+// http://www.apache.org/licenses/LICENSE-2.0
+
+package cmd
+
+import (
+ "fmt"
+ "io/ioutil"
+ "gopkg.in/resty.v1"
+ "github.com/spf13/cobra"
+ "github.com/ghodss/yaml"
+)
+
+
+var setserverCmd = &cobra.Command{
+ Use: "server",
+ Short: "Modify nginx server configuration",
+ Long: ``,
+ Run: func(cmd *cobra.Command, args []string) {
+ setNginx("server")
+ },
+}
+
+var setlbCmd = &cobra.Command{
+ Use: "lb",
+ Short: "Modify nginx lb configuration",
+ Long: ``,
+ Run: func(cmd *cobra.Command, args []string) {
+ setNginx("lb")
+ },
+}
+
+func init() {
+ setCmd.AddCommand(setserverCmd)
+ setserverCmd.Flags().StringVarP(&cloverFile, "file", "f", "", "Input yaml file for server config")
+ setserverCmd.MarkFlagRequired("file")
+
+ setCmd.AddCommand(setlbCmd)
+ setlbCmd.Flags().StringVarP(&cloverFile, "file", "f", "", "Input yaml file for lb config")
+ setlbCmd.MarkFlagRequired("file")
+
+}
+
+func setNginx(nginx_service string) {
+
+ url := ""
+ if nginx_service == "server" {
+ url = controllerIP + "/nginx/server"
+ } else {
+ url = controllerIP + "/nginx/lb"
+ }
+
+ in, err := ioutil.ReadFile(cloverFile)
+ if err != nil {
+ fmt.Println("Please specify a valid yaml file")
+ return
+ }
+ out_json, err := yaml.YAMLToJSON(in)
+ if err != nil {
+ panic(err.Error())
+ }
+ resp, err := resty.R().
+ SetHeader("Content-Type", "application/json").
+ SetBody(out_json).
+ Post(url)
+ if err != nil {
+ panic(err.Error())
+ }
+ fmt.Printf("\n%v\n", resp)
+
+
+}
diff --git a/clover/cloverctl/src/cloverctl/cmd/set_visibility.go b/clover/cloverctl/src/cloverctl/cmd/set_visibility.go
new file mode 100644
index 0000000..685b250
--- /dev/null
+++ b/clover/cloverctl/src/cloverctl/cmd/set_visibility.go
@@ -0,0 +1,57 @@
+// Copyright (c) Authors of Clover
+//
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Apache License, Version 2.0
+// which accompanies this distribution, and is available at
+// http://www.apache.org/licenses/LICENSE-2.0
+
+package cmd
+
+import (
+ "fmt"
+ "io/ioutil"
+ "gopkg.in/resty.v1"
+ "github.com/spf13/cobra"
+ "github.com/ghodss/yaml"
+)
+
+
+var setvisibilitystatsCmd = &cobra.Command{
+ Use: "visibility",
+ Short: "Set visibility config for services and metrics to track",
+ Long: ``,
+ Run: func(cmd *cobra.Command, args []string) {
+ setCollector()
+ },
+}
+
+func init() {
+ setCmd.AddCommand(setvisibilitystatsCmd)
+ setvisibilitystatsCmd.Flags().StringVarP(&cloverFile, "file", "f", "", "Input yaml file to set visibility config")
+ setvisibilitystatsCmd.MarkFlagRequired("file")
+
+}
+
+func setCollector() {
+ url := controllerIP + "/visibility/set"
+
+ in, err := ioutil.ReadFile(cloverFile)
+ if err != nil {
+ fmt.Println("Please specify a valid yaml file")
+ return
+ }
+ out_json, err := yaml.YAMLToJSON(in)
+ if err != nil {
+ panic(err.Error())
+ }
+ resp, err := resty.R().
+ SetHeader("Content-Type", "application/json").
+ SetBody(out_json).
+ Post(url)
+ if err != nil {
+ panic(err.Error())
+ }
+ fmt.Printf("\n%v\n", resp)
+
+
+}