From 265bdb46e6875cb5c75e6db8e98a38775da69391 Mon Sep 17 00:00:00 2001 From: earrage Date: Mon, 5 Nov 2018 11:49:36 -0800 Subject: Add ability to read controller nodeport IP from file - Formalize use of cloverctl config file using viper - Default name of config file is '.cloverctl.yaml' - Look for file in home directory or relative to cloverctl executable - Single value in config is for 'ControllerIP: ' - Still try and retrieve port value of clover-controller nodeport automatically - Still try and retrieve IP address of clover-controller LB if GKE environment is being used and override config file value if found in current kube context - Improve error messaging if controller connect fails - Clean up the CLI help output - Modify jmeter 'get testresult' command to avoid the use of flags and use arguments instead Change-Id: Id95d1b3d1079ac84996681db62da1f9b6b8a88b5 Signed-off-by: earrage --- .../cloverctl/src/cloverctl/cmd/get_testresult.go | 47 +++++++++++++++------- 1 file changed, 33 insertions(+), 14 deletions(-) (limited to 'clover/cloverctl/src/cloverctl/cmd/get_testresult.go') diff --git a/clover/cloverctl/src/cloverctl/cmd/get_testresult.go b/clover/cloverctl/src/cloverctl/cmd/get_testresult.go index 12d47c3..f9d8e6d 100644 --- a/clover/cloverctl/src/cloverctl/cmd/get_testresult.go +++ b/clover/cloverctl/src/cloverctl/cmd/get_testresult.go @@ -9,37 +9,54 @@ package cmd import ( "fmt" + "os" "gopkg.in/resty.v1" "github.com/spf13/cobra" ) -var JmeterResult string - var testresultCmd = &cobra.Command{ Use: "testresult", - Short: "Get test results from L7 client emulation", + Short: "Get test results from jmeter L7 client emulation", Long: ``, Run: func(cmd *cobra.Command, args []string) { - getResult() + getResult("log") }, } -func init() { - getCmd.AddCommand(testresultCmd) - testresultCmd.Flags().StringVarP(&JmeterResult, "r", "r", "", "Result to retrieve - use 'log' or 'results'") - testresultCmd.MarkFlagRequired("r") +var log_testresultCmd = &cobra.Command{ + Use: "log", + Short: "Get jmeter summary log results", + Long: ``, + Run: func(cmd *cobra.Command, args []string) { + getResult("log") + }, +} +var detail_testresultCmd = &cobra.Command{ + Use: "detail", + Short: "Get jmeter detailed results", + Long: ``, + Run: func(cmd *cobra.Command, args []string) { + getResult("detail") + }, } +func init() { + getCmd.AddCommand(testresultCmd) + testresultCmd.AddCommand(log_testresultCmd) + testresultCmd.AddCommand(detail_testresultCmd) +} -func getResult() { - switch JmeterResult { - case "results": +func getResult(result_type string) { + checkControllerIP() + switch result_type { + case "detail": url := controllerIP + "/jmeter/results/results" resp, err := resty.R(). Get(url) if err != nil { - panic(err.Error()) + fmt.Printf("Cannot connect to controller: %v\n", err) + os.Exit(1) } fmt.Printf("\nResponse Body: %v\n", resp) case "log": @@ -47,10 +64,12 @@ func getResult() { resp, err := resty.R(). Get(url) if err != nil { - panic(err.Error()) + fmt.Printf("Cannot connect to controller: %v\n", err) + os.Exit(1) } fmt.Printf("\nResponse Body: %v\n", resp) default: - fmt.Println("Unrecoginized jmeter result type - use 'log' or 'results'") + msg := "Unrecoginized jmeter result type" + fmt.Printf("%s - use 'log' or 'detail'", msg) } } -- cgit 1.2.3-korg