未验证 提交 17217cc8 编写于 作者: LinuxSuRen's avatar LinuxSuRen 提交者: GitHub

Merge pull request #114 from LinuxSuRen/fix/plugin-install-err

Fix the error when install a plugin
package client
import (
"github.com/golang/mock/gomock"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
var _ = Describe("PluginManager test", func() {
var (
ctrl *gomock.Controller
)
BeforeEach(func() {
ctrl = gomock.NewController(GinkgoT())
})
AfterEach(func() {
ctrl.Finish()
})
Context("basic function test", func() {
It("get install plugin query string", func() {
names := make([]string, 0)
Expect(getPluginsInstallQuery(names)).To(Equal(""))
names = append(names, "abc")
Expect(getPluginsInstallQuery(names)).To(Equal("plugin.abc="))
names = append(names, "def")
Expect(getPluginsInstallQuery(names)).To(Equal("plugin.abc=&plugin.def="))
names = append(names, "")
Expect(getPluginsInstallQuery(names)).To(Equal("plugin.abc=&plugin.def="))
})
})
})
...@@ -153,12 +153,20 @@ func (p *PluginManager) GetPlugins() (pluginList *InstalledPluginList, err error ...@@ -153,12 +153,20 @@ func (p *PluginManager) GetPlugins() (pluginList *InstalledPluginList, err error
return return
} }
func getPluginsInstallQuery(names []string) string {
pluginNames := make([]string, 0)
for _, name := range names {
if name == "" {
continue
}
pluginNames = append(pluginNames, fmt.Sprintf("plugin.%s=", name))
}
return strings.Join(pluginNames, "&")
}
// InstallPlugin install a plugin by name // InstallPlugin install a plugin by name
func (p *PluginManager) InstallPlugin(names []string) (err error) { func (p *PluginManager) InstallPlugin(names []string) (err error) {
for i, name := range names { api := fmt.Sprintf("%s/pluginManager/install?%s", p.URL, getPluginsInstallQuery(names))
names[i] = fmt.Sprintf("plugin.%s", name)
}
api := fmt.Sprintf("%s/pluginManager/install?%s", p.URL, strings.Join(names, "=&"))
var ( var (
req *http.Request req *http.Request
response *http.Response response *http.Response
...@@ -180,8 +188,22 @@ func (p *PluginManager) InstallPlugin(names []string) (err error) { ...@@ -180,8 +188,22 @@ func (p *PluginManager) InstallPlugin(names []string) (err error) {
data, err = ioutil.ReadAll(response.Body) data, err = ioutil.ReadAll(response.Body)
if code == 200 { if code == 200 {
fmt.Println("install succeed.") fmt.Println("install succeed.")
} else if code == 400 {
if errMsg, ok := response.Header["X-Error"]; ok {
for _, msg := range errMsg {
fmt.Println(msg)
}
} else {
fmt.Println("Cannot found plugins", names)
}
} else { } else {
log.Fatal(string(data)) fmt.Println(response.Header)
fmt.Println("status code", code)
if err == nil && p.Debug && len(data) > 0 {
ioutil.WriteFile("debug.html", data, 0664)
} else if err != nil {
log.Fatal(err)
}
} }
} else { } else {
log.Fatal(err) log.Fatal(err)
......
package client
import (
"testing"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
func TestJenkinsClient(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "jenkins client test")
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册