diff --git a/app/cmd/center_download_test.go b/app/cmd/center_download_test.go index 6a34596af0d73b934cc2a50f97f83bd293f744a0..57409261e9767d76ae0a98cf893678b28ce62114 100644 --- a/app/cmd/center_download_test.go +++ b/app/cmd/center_download_test.go @@ -3,6 +3,7 @@ package cmd import ( "bytes" "github.com/golang/mock/gomock" + "github.com/jenkins-zh/jenkins-cli/client" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "io/ioutil" @@ -66,7 +67,7 @@ var _ = Describe("center download command", func() { Body: ioutil.NopCloser(bytes.NewBufferString(ltsResponseBody)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) rootCmd.SetArgs([]string{"center", "download", "--progress=false", "--output", targetFilePath}) _, err := rootCmd.ExecuteC() @@ -88,7 +89,7 @@ var _ = Describe("center download command", func() { Body: ioutil.NopCloser(bytes.NewBufferString(weeklyResponseBody)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) rootCmd.SetArgs([]string{"center", "download", "--lts=false", "--progress=false", "--output", targetFilePath}) _, err := rootCmd.ExecuteC() diff --git a/app/cmd/center_test.go b/app/cmd/center_test.go index b8b697e8860c120618d18605f9436149daacd632..f6fa19f1f6256405e9a85db312596b842784c337 100644 --- a/app/cmd/center_test.go +++ b/app/cmd/center_test.go @@ -2,6 +2,7 @@ package cmd import ( "bytes" + "github.com/jenkins-zh/jenkins-cli/client" "io/ioutil" "net/http" "os" @@ -54,7 +55,7 @@ var _ = Describe("center command", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(client.NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) request, _ := http.NewRequest("GET", "http://localhost:8080/jenkins/updateCenter/api/json?pretty=false&depth=1", nil) request.SetBasicAuth("admin", "111e3a2f0231198855dceaff96f20540a9") @@ -67,7 +68,7 @@ var _ = Describe("center command", func() { `)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) rootCmd.SetArgs([]string{"center"}) _, err = rootCmd.ExecuteC() diff --git a/app/cmd/center_upgrade_test.go b/app/cmd/center_upgrade_test.go index 4b2fb5015b8dc4fc5781405d447a50b06c691032..6ca32618a1d618f054ac32dd77694d82f33014bb 100644 --- a/app/cmd/center_upgrade_test.go +++ b/app/cmd/center_upgrade_test.go @@ -2,6 +2,7 @@ package cmd import ( "bytes" + "github.com/jenkins-zh/jenkins-cli/client" "io/ioutil" "net/http" "os" @@ -53,7 +54,7 @@ var _ = Describe("center upgrade command", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(client.NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) request, _ := http.NewRequest("POST", "http://localhost:8080/jenkins/updateCenter/upgrade", nil) request.SetBasicAuth("admin", "111e3a2f0231198855dceaff96f20540a9") @@ -65,7 +66,7 @@ var _ = Describe("center upgrade command", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) rootCmd.SetArgs([]string{"center", "upgrade"}) _, err = rootCmd.ExecuteC() diff --git a/app/cmd/center_watch_test.go b/app/cmd/center_watch_test.go index 87b46f6c279e314407903090693c04f6fb4d8ad0..12f918a51a7f7f304cdc2c5980dbeb23eb9ebf67 100644 --- a/app/cmd/center_watch_test.go +++ b/app/cmd/center_watch_test.go @@ -57,7 +57,7 @@ var _ = Describe("center watch command", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(client.NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) rootCmd.SetArgs([]string{"center", "watch"}) _, err = rootCmd.ExecuteC() diff --git a/app/cmd/computer_launch_test.go b/app/cmd/computer_launch_test.go index 13daba6d80c244e04f72b6628c51ebb99b502d0d..4ebcd06c4be0bb477eab54593a089e43c113969f 100644 --- a/app/cmd/computer_launch_test.go +++ b/app/cmd/computer_launch_test.go @@ -80,7 +80,7 @@ var _ = Describe("computer launch command", func() { Body: ioutil.NopCloser(bytes.NewBufferString(fakeJar)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) secret := "fake-secret" client.PrepareForComputerAgentSecretRequest(roundTripper, diff --git a/app/cmd/config_clean.go b/app/cmd/config_clean.go new file mode 100644 index 0000000000000000000000000000000000000000..8b82abcc25960e589f572bdaa43ad1a2374e9ed2 --- /dev/null +++ b/app/cmd/config_clean.go @@ -0,0 +1,120 @@ +package cmd + +import ( + cfg "github.com/jenkins-zh/jenkins-cli/app/config" + "github.com/jenkins-zh/jenkins-cli/app/helper" + "github.com/jenkins-zh/jenkins-cli/app/i18n" + "github.com/jenkins-zh/jenkins-cli/client" + "github.com/spf13/cobra" + "net" + "net/http" + "time" +) + +// ConfigCleanOption option for config list command +type ConfigCleanOption struct { + Timeout int + CleanTimeout bool + + Logger helper.Printer +} + +var configCleanOption ConfigCleanOption + +func init() { + configCmd.AddCommand(configCleanCmd) + configCleanCmd.Flags().IntVarP(&configCleanOption.Timeout, "timeout", "t", 5, + i18n.T("Timeout in second value when checking with the Jenkins URL")) + configCleanCmd.Flags().BoolVarP(&configCleanOption.CleanTimeout, "clean-timeout", "", false, + i18n.T("Clean the config items when timeout with API request")) +} + +// CheckResult is the result of checking +type CheckResult struct { + Name string + StatusCode int + Timeout bool +} + +var configCleanCmd = &cobra.Command{ + Use: "clean", + Short: i18n.T("Clean up some unavailable config items"), + Long: i18n.T("Clean up some unavailable config items"), + RunE: configCleanOption.Run, +} + +// Run is the main entry point of command config-clean +func (o *ConfigCleanOption) Run(cmd *cobra.Command, args []string) (err error) { + if config := getConfig(); config == nil { + cmd.Println("cannot found config file") + } + o.Logger = cmd + + itemCount := len(config.JenkinsServers) + checkResult := make(chan CheckResult, itemCount) + + for _, jenkins := range config.JenkinsServers { + go func(target cfg.JenkinsServer) { + checkResult <- o.Check(target) + }(jenkins) + } + + checkResultList := make([]CheckResult, itemCount) + for i := range config.JenkinsServers { + checkResultList[i] = <-checkResult + } + + // do the clean work + err = o.CleanByCondition(checkResultList) + cmd.Println() + return +} + +// Check check the target JenkinsServer config +// make a request to a Jenkins API +func (o *ConfigCleanOption) Check(jenkins cfg.JenkinsServer) (result CheckResult) { + result.Name = jenkins.Name + + jClient := &client.PluginManager{ + JenkinsCore: client.JenkinsCore{ + RoundTripper: pluginListOption.RoundTripper, + Timeout: time.Duration(o.Timeout), + }, + } + jClient.URL = jenkins.URL + jClient.UserName = jenkins.UserName + jClient.Token = jenkins.Token + jClient.Proxy = jenkins.Proxy + jClient.ProxyAuth = jenkins.ProxyAuth + jClient.InsecureSkipVerify = jenkins.InsecureSkipVerify + + var statusCode int + var err error + if statusCode, _, err = jClient.Request(http.MethodGet, "/api/json", nil, nil); err != nil { + if err, ok := err.(net.Error); ok { + result.Timeout = err.Timeout() + } else { + o.Logger.Println("check request failed, error is", err) + } + } + result.StatusCode = statusCode + return +} + +// CleanByCondition do the clean work by conditions +func (o *ConfigCleanOption) CleanByCondition(resultList []CheckResult) (err error) { + if len(resultList) == 0 { + return + } + + for _, result := range resultList { + if o.CleanTimeout && result.Timeout { + if err = removeJenkins(result.Name); err == nil { + o.Logger.Printf("removed invalid item %s due to timeout reason\n", result.Name) + } + } else { + o.Logger.Printf("status code of %s is %d\n", result.Name, result.StatusCode) + } + } + return +} diff --git a/app/cmd/cwp_test.go b/app/cmd/cwp_test.go index 83934178d9ef1c16dd8497a48f81a0053142c205..aa014bec23b51b3453836c7a39ed699813114882 100644 --- a/app/cmd/cwp_test.go +++ b/app/cmd/cwp_test.go @@ -4,6 +4,7 @@ import ( "bytes" "github.com/golang/mock/gomock" "github.com/jenkins-zh/jenkins-cli/app/cmd/common" + "github.com/jenkins-zh/jenkins-cli/client" "github.com/jenkins-zh/jenkins-cli/mock/mhttp" "github.com/jenkins-zh/jenkins-cli/util" . "github.com/onsi/ginkgo" @@ -103,7 +104,7 @@ func prepareDownloadFileRequest(url, content string, roundTripper *mhttp.MockRou Body: ioutil.NopCloser(bytes.NewBufferString(content)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) } func prepareMavenMetadataRequest(roundTripper *mhttp.MockRoundTripper) { @@ -114,7 +115,7 @@ func prepareMavenMetadataRequest(roundTripper *mhttp.MockRoundTripper) { Body: ioutil.NopCloser(bytes.NewBufferString(getMavenMetadataSample())), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) } func getMavenMetadataSample() string { diff --git a/app/cmd/job_artifact_download_test.go b/app/cmd/job_artifact_download_test.go index 1353e45e9376c3e7d20bc53f22218b47491d1ee6..b0f9ac42f838f0e4a23106fa664645e77a0c8c24 100644 --- a/app/cmd/job_artifact_download_test.go +++ b/app/cmd/job_artifact_download_test.go @@ -74,7 +74,7 @@ var _ = Describe("job artifact download command", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) buf := new(bytes.Buffer) rootCmd.SetOutput(buf) diff --git a/app/cmd/job_build_test.go b/app/cmd/job_build_test.go index d4ecb2c212b604c2882f1e98f3cb1e1498fe17d3..b9b65e35ac67bc1ef9ee6870ee100f6c6e790663 100644 --- a/app/cmd/job_build_test.go +++ b/app/cmd/job_build_test.go @@ -62,7 +62,7 @@ var _ = Describe("job build command", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) requestCrumb, _ := http.NewRequest("GET", "http://localhost:8080/jenkins/crumbIssuer/api/json", nil) requestCrumb.SetBasicAuth("admin", "111e3a2f0231198855dceaff96f20540a9") @@ -75,7 +75,7 @@ var _ = Describe("job build command", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(client.NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) rootCmd.SetArgs([]string{"job", "build", jobName, "-b", "true"}) _, err = rootCmd.ExecuteC() @@ -169,7 +169,7 @@ var _ = Describe("job build command", func() { // `)), // } // roundTripper.EXPECT(). -// RoundTrip(request).Return(response, nil) +// RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) // // client.PrepareForBuildWithParams(roundTripper, url, jobName, user, token) // diff --git a/app/cmd/job_delete_test.go b/app/cmd/job_delete_test.go index 69bd151d135f2e891869939567795796a7beb3ea..9f43f9dd53afe1efeba41a79835944cbf8806b42 100644 --- a/app/cmd/job_delete_test.go +++ b/app/cmd/job_delete_test.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/Netflix/go-expect" "github.com/jenkins-zh/jenkins-cli/app/cmd/common" + "github.com/jenkins-zh/jenkins-cli/client" "io/ioutil" "net/http" "os" @@ -67,7 +68,7 @@ var _ = Describe("job delete command", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) requestCrumb, _ := http.NewRequest("GET", "http://localhost:8080/jenkins/crumbIssuer/api/json", nil) requestCrumb.SetBasicAuth("admin", "111e3a2f0231198855dceaff96f20540a9") @@ -80,7 +81,7 @@ var _ = Describe("job delete command", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(client.NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) rootCmd.SetArgs([]string{"job", "delete", jobName, "-b", "true"}) diff --git a/app/cmd/job_edit_test.go b/app/cmd/job_edit_test.go index 21d24d30fa7d32f863281dbe06b52f017d005006..520f251fcb0302eb119d611537e157a3151f0028 100644 --- a/app/cmd/job_edit_test.go +++ b/app/cmd/job_edit_test.go @@ -107,7 +107,7 @@ var _ = Describe("job edit command", func() { Body: ioutil.NopCloser(bytes.NewBufferString(script)), } roundTripper.EXPECT(). - RoundTrip(remoteJenkinsfileReq).Return(remoteJenkinsfileResponse, nil) + RoundTrip(client.NewRequestMatcher(remoteJenkinsfileReq)).Return(remoteJenkinsfileResponse, nil) rootCmd.SetArgs([]string{"job", "edit", jobName, "--filename", "", "--script", "", "--url", remoteJenkinsfileURL}) diff --git a/app/cmd/job_stop_test.go b/app/cmd/job_stop_test.go index 59c28055c3e08d50571f7740b51a256f3fb7acac..87b8add539f906cafbde7c1e39b8884cc1250d3d 100644 --- a/app/cmd/job_stop_test.go +++ b/app/cmd/job_stop_test.go @@ -4,6 +4,7 @@ import ( "bytes" "fmt" "github.com/golang/mock/gomock" + "github.com/jenkins-zh/jenkins-cli/client" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "io/ioutil" @@ -57,7 +58,7 @@ var _ = Describe("job stop command", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) requestCrumb, _ := http.NewRequest("GET", "http://localhost:8080/jenkins/crumbIssuer/api/json", nil) requestCrumb.SetBasicAuth("admin", "111e3a2f0231198855dceaff96f20540a9") @@ -70,7 +71,7 @@ var _ = Describe("job stop command", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(client.NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) rootCmd.SetArgs([]string{"job", "stop", jobName, "1", "-b"}) @@ -99,7 +100,7 @@ var _ = Describe("job stop command", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) requestCrumb, _ := http.NewRequest("GET", "http://localhost:8080/jenkins/crumbIssuer/api/json", nil) requestCrumb.SetBasicAuth("admin", "111e3a2f0231198855dceaff96f20540a9") @@ -112,7 +113,7 @@ var _ = Describe("job stop command", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(client.NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) rootCmd.SetArgs([]string{"job", "stop", jobName, "-b"}) diff --git a/app/cmd/job_type_test.go b/app/cmd/job_type_test.go index 55bc8705c0718972ff91219f98f86aae30b7199f..867684ab64de8fc766524c874aa6bb1cb5ffd8b6 100644 --- a/app/cmd/job_type_test.go +++ b/app/cmd/job_type_test.go @@ -54,7 +54,7 @@ var _ = Describe("job type command", func() { Body: ioutil.NopCloser(bytes.NewBufferString(`{"_class":"jenkins.model.item_category.Categories","categories":[{"description":"description","id":"standalone-projects","items":[{"displayName":"Freestyle project","iconFilePathPattern":"static/da605e5f/images/:size/freestyleproject.png","description":"description","iconClassName":"icon-freestyle-project","class":"hudson.model.FreeStyleProject","order":1}],"minToShow":1,"name":"Nested Projects","order":1}]}`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) config = &Config{ Current: "fake", @@ -93,7 +93,7 @@ var _ = Describe("job type command", func() { Body: ioutil.NopCloser(bytes.NewBufferString("{}")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) rootCmd.SetArgs([]string{"job", "type"}) @@ -120,7 +120,7 @@ var _ = Describe("job type command", func() { Body: ioutil.NopCloser(bytes.NewBufferString("{}")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) rootCmd.SetArgs([]string{"job", "type"}) @@ -165,7 +165,7 @@ var _ = Describe("job type command", func() { }`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(client.NewRequestMatcher(request)).Return(response, nil) buf := new(bytes.Buffer) rootCmd.SetOutput(buf) diff --git a/app/helper/error.go b/app/helper/error.go index c56a3c319e6d5565f8568a7b645cdb6e72aaef0d..97fb0bee59fc92beff2fd0e57e27d700bab91923 100644 --- a/app/helper/error.go +++ b/app/helper/error.go @@ -10,6 +10,8 @@ import ( // Printer for print the info type Printer interface { PrintErr(i ...interface{}) + Println(i ...interface{}) + Printf(format string, i ...interface{}) } // CheckErr print a friendly error message diff --git a/app/helper/error_test.go b/app/helper/error_test.go index 1a0eb27a3fa2ca35f1f13ee524541f2f3f0ef4ad..4797a547a72f526a8a5c65ee33eb08a9fd99540a 100644 --- a/app/helper/error_test.go +++ b/app/helper/error_test.go @@ -86,6 +86,16 @@ func (p *MemoryPrinter) PrintErr(i ...interface{}) { p.Buffer.WriteString(fmt.Sprintf("%v", i)) } +// Println print the object +func (p *MemoryPrinter) Println(i ...interface{}) { + p.Buffer.WriteString(fmt.Sprintf("%v\n", i)) +} + +// Printf print against a format +func (p *MemoryPrinter) Printf(format string, i ...interface{}) { + p.Buffer.WriteString(fmt.Sprintf(format, i...)) +} + var _ = Describe("CheckErr", func() { var ( printer *MemoryPrinter diff --git a/client/artifacts_test_common.go b/client/artifacts_test_common.go index e049daef58be1374ed0229142c0f0ce85492b3b4..7111b94fbaaa3414726f2986d05f5a252cf4d2cc 100644 --- a/client/artifacts_test_common.go +++ b/client/artifacts_test_common.go @@ -26,7 +26,7 @@ func PrepareGetArtifacts(roundTripper *mhttp.MockRoundTripper, rootURL, user, pa Body: ioutil.NopCloser(bytes.NewBufferString(`[{"id":"n1","name":"a.log","path":"a.log","url":"/job/pipeline/1/artifact/a.log","size":0}]`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && passwd != "" { request.SetBasicAuth(user, passwd) diff --git a/client/common.go b/client/common.go index 35d6dfb2650c9e66bb27280e516427e2e6d6ee82..0923583e152007f33a380ec35bfdc1250e0cddb8 100644 --- a/client/common.go +++ b/client/common.go @@ -10,6 +10,7 @@ import ( "io/ioutil" "log" "net/http" + "time" "github.com/jenkins-zh/jenkins-cli/app" "github.com/jenkins-zh/jenkins-cli/util" @@ -26,6 +27,7 @@ func SetLanguage(lan string) { // JenkinsCore core information of Jenkins type JenkinsCore struct { JenkinsCrumb + Timeout time.Duration URL string InsecureSkipVerify bool UserName string @@ -58,7 +60,16 @@ func (j *JenkinsCore) GetClient() (client *http.Client) { } roundTripper = tr } - client = &http.Client{Transport: roundTripper} + + // make sure have a default timeout here + if j.Timeout <= 0 { + j.Timeout = 5 + } + + client = &http.Client{ + Transport: roundTripper, + Timeout: j.Timeout * time.Second, + } return } diff --git a/client/common_test.go b/client/common_test.go index 7e117539e9fba2f63c330aebbf534a2cbd9ba5e5..501b5daf76e69b9143115017631bc4481b5efa1f 100644 --- a/client/common_test.go +++ b/client/common_test.go @@ -55,7 +55,7 @@ var _ = Describe("common test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) statusCode, data, err := jenkinsCore.Request(method, api, headers, payload) Expect(err).To(BeNil()) @@ -75,7 +75,7 @@ var _ = Describe("common test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) requestCrumb, _ := http.NewRequest("GET", fmt.Sprintf("%s%s", jenkinsCore.URL, "/crumbIssuer/api/json"), payload) responseCrumb := &http.Response{ @@ -87,7 +87,7 @@ var _ = Describe("common test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) headers = make(map[string]string, 1) headers["fake"] = "fake" @@ -108,7 +108,7 @@ var _ = Describe("common test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) _, err := jenkinsCore.GetCrumb() Expect(err).To(HaveOccurred()) @@ -133,7 +133,7 @@ var _ = Describe("common test", func() { // Body: ioutil.NopCloser(bytes.NewBufferString("")), //} //roundTripper.EXPECT(). - // RoundTrip(requestCrumb).Return(responseCrumb, nil) + // RoundTrip(NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) PrepareForGetIssuerWith500(roundTripper, jenkinsCore.URL, "", "") _, err := jenkinsCore.GetCrumb() @@ -159,7 +159,7 @@ var _ = Describe("common test", func() { } request.Header.Set("Accept-Language", "zh-CN") roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) SetLanguage("zh-CN") statusCode, data, err := jenkinsCore.Request("GET", "/view/all/itemCategories?depth=3", nil, nil) @@ -199,7 +199,7 @@ var _ = Describe("common test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) err := jenkinsCore.CrumbHandle(requestCrumb) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(Equal("unexpected status code: 500")) diff --git a/client/common_test_common.go b/client/common_test_common.go index 5d4e3de698202255eea4fb8d3f295e45f806e6ab..dea8cb99f5627159fef5bf9adc3fc717d7e64ef0 100644 --- a/client/common_test_common.go +++ b/client/common_test_common.go @@ -19,7 +19,7 @@ func PrepareForGetIssuer(roundTripper *mhttp.MockRoundTripper, rootURL, user, pa Body: ioutil.NopCloser(bytes.NewBufferString(`{"CrumbRequestField":"CrumbRequestField","Crumb":"Crumb"}`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && password != "" { request.SetBasicAuth(user, password) } diff --git a/client/computer_test_common.go b/client/computer_test_common.go index b7a7128ffe67d0f16d3e6e9f90fa2b07c9284d63..8eb5a661ef16496eed9def8b3d3098cd458aa892 100644 --- a/client/computer_test_common.go +++ b/client/computer_test_common.go @@ -21,7 +21,7 @@ func PrepareForComputerListRequest(roundTripper *mhttp.MockRoundTripper, rootURL Body: ioutil.NopCloser(bytes.NewBufferString(PrepareForComputerList())), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && password != "" { request.SetBasicAuth(user, password) } @@ -48,7 +48,7 @@ func PrepareForComputerLogRequestWithCode(roundTripper *mhttp.MockRoundTripper, Body: ioutil.NopCloser(bytes.NewBufferString(`fake-log`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && password != "" { request.SetBasicAuth(user, password) } diff --git a/client/core_test_common.go b/client/core_test_common.go index 09877e53921c7e13724be2becc711007a8341f0e..6a2dca3494743644dae13c21664f708106176cf3 100644 --- a/client/core_test_common.go +++ b/client/core_test_common.go @@ -34,7 +34,7 @@ func PrepareForGetIdentity(roundTripper *mhttp.MockRoundTripper, rootURL, user, {"fingerprint":"fingerprint","publicKey":"publicKey","systemMessage":"systemMessage"}`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && password != "" { request.SetBasicAuth(user, password) diff --git a/client/credentials_test_common.go b/client/credentials_test_common.go index 7f9a7eee50e9cfed25d8cae3337f7184d806c65a..71a1eba2df8d53d953e15e21d829d1030409dbfa 100644 --- a/client/credentials_test_common.go +++ b/client/credentials_test_common.go @@ -23,7 +23,7 @@ func PrepareForGetCredentialList(roundTripper *mhttp.MockRoundTripper, rootURL, Body: ioutil.NopCloser(bytes.NewBufferString(PrepareForCredentialListJSON())), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && password != "" { request.SetBasicAuth(user, password) } diff --git a/client/job_test.go b/client/job_test.go index 4407a301069b9debcc653f130d0105230f77c06b..fb9c666b78fe8ba6e989e7f7fd38f442d7ca172d 100644 --- a/client/job_test.go +++ b/client/job_test.go @@ -71,7 +71,7 @@ var _ = Describe("job test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) requestCrumb, _ := http.NewRequest("GET", fmt.Sprintf("%s%s", jobClient.URL, "/crumbIssuer/api/json"), nil) responseCrumb := &http.Response{ @@ -83,7 +83,7 @@ var _ = Describe("job test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) err := jobClient.Build(jobName) Expect(err).To(BeNil()) @@ -100,7 +100,7 @@ var _ = Describe("job test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) requestCrumb, _ := http.NewRequest("GET", fmt.Sprintf("%s%s", jobClient.URL, "/crumbIssuer/api/json"), nil) responseCrumb := &http.Response{ @@ -112,7 +112,7 @@ var _ = Describe("job test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) err := jobClient.Build(jobName) Expect(err).To(HaveOccurred()) @@ -134,7 +134,7 @@ var _ = Describe("job test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) result, err := jobClient.GetBuild(jobName, buildID) Expect(err).To(BeNil()) @@ -189,7 +189,7 @@ var _ = Describe("job test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) requestCrumb, _ := http.NewRequest("GET", fmt.Sprintf("%s%s", jobClient.URL, "/crumbIssuer/api/json"), nil) responseCrumb := &http.Response{ @@ -201,7 +201,7 @@ var _ = Describe("job test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) err := jobClient.StopJob(jobName, buildID) Expect(err).To(BeNil()) @@ -219,7 +219,7 @@ var _ = Describe("job test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) requestCrumb, _ := http.NewRequest("GET", fmt.Sprintf("%s%s", jobClient.URL, "/crumbIssuer/api/json"), nil) responseCrumb := &http.Response{ @@ -231,7 +231,7 @@ var _ = Describe("job test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) err := jobClient.StopJob(jobName, buildID) Expect(err).To(BeNil()) @@ -252,7 +252,7 @@ var _ = Describe("job test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) result, err := jobClient.GetJob(jobName) Expect(err).To(BeNil()) @@ -271,7 +271,7 @@ var _ = Describe("job test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("{}")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) _, err := jobClient.GetJobTypeCategories() Expect(err).To(BeNil()) @@ -335,7 +335,7 @@ var _ = Describe("job test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) requestCrumb, _ := http.NewRequest("GET", fmt.Sprintf("%s%s", jobClient.URL, "/crumbIssuer/api/json"), nil) responseCrumb := &http.Response{ @@ -347,7 +347,7 @@ var _ = Describe("job test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) err := jobClient.Delete(jobName) Expect(err).To(BeNil()) diff --git a/client/job_test_common.go b/client/job_test_common.go index 109c8df834218f10b70cbc3e7c212559e3097c65..17c8740251690523cf7f31ae5bf2c9420d67cb59 100644 --- a/client/job_test_common.go +++ b/client/job_test_common.go @@ -25,7 +25,7 @@ func PrepareForGetJobInputActions(roundTripper *mhttp.MockRoundTripper, rootURL, "abortUrl":"/job/test/5/input/Eff7d5dba32b4da32d9a67a519434d3f/abort","redirectApprovalUrl":"/job/test/5/input/"}]`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && password != "" { request.SetBasicAuth(user, password) @@ -95,7 +95,7 @@ func PrepareForGetJob(roundTripper *mhttp.MockRoundTripper, rootURL, jobName, us }`, jobName))), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && password != "" { request.SetBasicAuth(user, password) } @@ -155,7 +155,7 @@ func PrepareForGetBuild(roundTripper *mhttp.MockRoundTripper, rootURL, jobName s `)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && password != "" { request.SetBasicAuth(user, password) } @@ -180,7 +180,7 @@ func PrepareForJobLog(roundTripper *mhttp.MockRoundTripper, rootURL, jobName str Body: ioutil.NopCloser(bytes.NewBufferString("fake log")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && password != "" { request.SetBasicAuth(user, password) } @@ -196,7 +196,7 @@ func PrepareOneItem(roundTripper *mhttp.MockRoundTripper, rootURL, name, kind, u Body: ioutil.NopCloser(bytes.NewBufferString(`[{"name":"fake","displayName":"fake","description":null,"type":"WorkflowJob","shortURL":"job/fake/","url":"job/fake/"}]`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && token != "" { request.SetBasicAuth(user, token) } @@ -212,7 +212,7 @@ func PrepareEmptyItems(roundTripper *mhttp.MockRoundTripper, rootURL, name, kind Body: ioutil.NopCloser(bytes.NewBufferString(`[]`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && token != "" { request.SetBasicAuth(user, token) } @@ -228,7 +228,7 @@ func PrepareForDisableJob(roundTripper *mhttp.MockRoundTripper, rootURL, name, u // Body: ioutil.NopCloser(bytes.NewBufferString(``)), //} //roundTripper.EXPECT(). - // RoundTrip(request).Return(response, nil) + // RoundTrip(NewRequestMatcher(request)).Return(response, nil) //if user != "" && token != "" { // request.SetBasicAuth(user, token) //} @@ -244,7 +244,7 @@ func PrepareForEnableJob(roundTripper *mhttp.MockRoundTripper, rootURL, name, us // Body: ioutil.NopCloser(bytes.NewBufferString(``)), //} //roundTripper.EXPECT(). - // RoundTrip(request).Return(response, nil) + // RoundTrip(NewRequestMatcher(request)).Return(response, nil) //if user != "" && token != "" { // request.SetBasicAuth(user, token) //} diff --git a/client/pluginApi_test_common.go b/client/pluginApi_test_common.go index 0ca0f163885d3fb464cb7b75086157ca566cd41f..a80401d9d31ae6d2eea0dc56c1af31a2365a6edd 100644 --- a/client/pluginApi_test_common.go +++ b/client/pluginApi_test_common.go @@ -22,7 +22,7 @@ func PrepareShowTrend(roundTripper *mhttp.MockRoundTripper, keyword string) ( `)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) return } @@ -64,7 +64,7 @@ func PrepareDownloadPlugin(roundTripper *mhttp.MockRoundTripper) (response *http Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) return } @@ -91,6 +91,6 @@ func PrepareShowPlugins(roundTripper *mhttp.MockRoundTripper, keyword string) ( `)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) return } diff --git a/client/pluginManager_test.go b/client/pluginManager_test.go index 9e016eb492e29328465cf869fdfa6f34bf47fc2e..a0aefc4cdcb127845fec8ccbc9a42592327a503b 100644 --- a/client/pluginManager_test.go +++ b/client/pluginManager_test.go @@ -90,7 +90,7 @@ var _ = Describe("PluginManager test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) _, err := pluginMgr.GetAvailablePlugins() Expect(err).To(HaveOccurred()) diff --git a/client/status_test_common.go b/client/status_test_common.go index 36591767ec64daac0a73b3e98e37b85080fe2af5..ce929f0e3b691ec5a76e03daf68bcc5ca6c3dae7 100644 --- a/client/status_test_common.go +++ b/client/status_test_common.go @@ -19,7 +19,7 @@ func PrepareGetStatus(roundTripper *mhttp.MockRoundTripper, rootURL, user, passw } response.Header.Add("X-Jenkins", "version") roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && password != "" { request.SetBasicAuth(user, password) diff --git a/client/test_methods.go b/client/test_methods.go index dbf585e503103105a6d8184635f7e5b854587bce..0e835dbb11dd938fcb88087417ae058753d6f82d 100644 --- a/client/test_methods.go +++ b/client/test_methods.go @@ -29,7 +29,7 @@ func PrepareForEmptyAvaiablePluginList(roundTripper *mhttp.MockRoundTripper, roo }`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) return } @@ -99,7 +99,7 @@ func PrepareForEmptyInstalledPluginList(roundTripper *mhttp.MockRoundTripper, ro }`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) return } @@ -234,7 +234,7 @@ func PrepareCancelQueue(roundTripper *mhttp.MockRoundTripper, rootURL, user, pas Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) PrepareForGetIssuer(roundTripper, rootURL, user, passwd) if user != "" && passwd != "" { @@ -274,7 +274,7 @@ func PrepareGetQueue(roundTripper *mhttp.MockRoundTripper, rootURL, user, passwd }`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && passwd != "" { request.SetBasicAuth(user, passwd) @@ -355,7 +355,7 @@ func PrepareForRequestUpdateCenter(roundTripper *mhttp.MockRoundTripper, rootURL } `)), } - roundTripper.EXPECT().RoundTrip(requestCenter).Return(responseCenter, nil) + roundTripper.EXPECT().RoundTrip(NewRequestMatcher(requestCenter)).Return(responseCenter, nil) return } @@ -381,7 +381,7 @@ func PrepareForNoAvailablePlugins(roundTripper *mhttp.MockRoundTripper, rootURL } `)), } - roundTripper.EXPECT().RoundTrip(requestCenter).Return(responseCenter, nil) + roundTripper.EXPECT().RoundTrip(NewRequestMatcher(requestCenter)).Return(responseCenter, nil) return } @@ -436,7 +436,7 @@ func PrepareForPipelineJob(roundTripper *mhttp.MockRoundTripper, rootURL, user, Body: ioutil.NopCloser(bytes.NewBufferString(`{"type":null,"displayName":null,"script":"script","sandbox":true}`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && passwd != "" { request.SetBasicAuth(user, passwd) diff --git a/client/updateCenter_test.go b/client/updateCenter_test.go index d6951585dd2839e3f90553f8679162938fb76589..c092873d0c10206be1c6cdd8f78e18f23146a2b7 100644 --- a/client/updateCenter_test.go +++ b/client/updateCenter_test.go @@ -51,7 +51,7 @@ var _ = Describe("update center test", func() { Body: ioutil.NopCloser(bytes.NewBufferString(responseBody)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) err := manager.DownloadJenkins() Expect(err).To(BeNil()) @@ -79,7 +79,7 @@ var _ = Describe("update center test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCrumb).Return(responseCrumb, nil) + RoundTrip(NewRequestMatcher(requestCrumb)).Return(responseCrumb, nil) request, _ := http.NewRequest("POST", "/updateCenter/upgrade", nil) request.Header.Add("CrumbRequestField", "Crumb") @@ -90,7 +90,7 @@ var _ = Describe("update center test", func() { Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) err := manager.Upgrade() Expect(err).To(BeNil()) @@ -112,7 +112,7 @@ var _ = Describe("update center test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) status, err := manager.Status() Expect(err).To(BeNil()) @@ -218,7 +218,7 @@ var _ = Describe("update center test", func() { `)), } roundTripper.EXPECT(). - RoundTrip(requestCenter).Return(responseCenter, nil) + RoundTrip(NewRequestMatcher(requestCenter)).Return(responseCenter, nil) plugins, err := manager.GetSite() Expect(err).To(BeNil()) diff --git a/client/user_test_common.go b/client/user_test_common.go index 2952f7cfae73ebb7aa5b8874a7405e29d265d3b9..ab6ecca7ea08422f456db7d2beb7d14c25a1c75e 100644 --- a/client/user_test_common.go +++ b/client/user_test_common.go @@ -21,7 +21,7 @@ func PrepareGetUser(roundTripper *mhttp.MockRoundTripper, rootURL, user, passwd Body: ioutil.NopCloser(bytes.NewBufferString(`{"fullName":"admin","description":"fake-description"}`)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip(NewRequestMatcher(request)).Return(response, nil) if user != "" && passwd != "" { request.SetBasicAuth(user, passwd) diff --git a/util/http_test.go b/util/http_test.go index 5b004f405e7e0680aea570e1b3f2a6d8c0dad8b0..e343b2ff1da59811a06709a4880692ce0edd75ff 100644 --- a/util/http_test.go +++ b/util/http_test.go @@ -66,7 +66,7 @@ var _ = Describe("http test", func() { Body: ioutil.NopCloser(bytes.NewBufferString(responseBody)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip((request)).Return(response, nil) err := downloader.DownloadFile() Expect(err).To(BeNil()) @@ -97,7 +97,7 @@ var _ = Describe("http test", func() { Body: ioutil.NopCloser(bytes.NewBufferString(responseBody)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip((request)).Return(response, nil) err := downloader.DownloadFile() Expect(err).To(BeNil()) @@ -126,7 +126,7 @@ var _ = Describe("http test", func() { request, _ := http.NewRequest("GET", "", nil) response := &http.Response{} roundTripper.EXPECT(). - RoundTrip(request).Return(response, fmt.Errorf("fake error")) + RoundTrip((request)).Return(response, fmt.Errorf("fake error")) err := downloader.DownloadFile() Expect(err).To(HaveOccurred()) }) @@ -145,7 +145,7 @@ var _ = Describe("http test", func() { Body: ioutil.NopCloser(bytes.NewBufferString(responseBody)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip((request)).Return(response, nil) err := downloader.DownloadFile() Expect(err).To(HaveOccurred()) @@ -176,7 +176,7 @@ var _ = Describe("http test", func() { Body: ioutil.NopCloser(bytes.NewBufferString(responseBody)), } roundTripper.EXPECT(). - RoundTrip(request).Return(response, nil) + RoundTrip((request)).Return(response, nil) err := downloader.DownloadFile() Expect(err).To(BeNil()) })