func TestVersion(t *testing.T) { t.Parallel() shard := NewShard("", "TestVersionData", "TestVersionPipelines", 0, 1, etcache.NewCache()) require.NoError(t, shard.EnsureRepos()) s := httptest.NewServer(NewShardHTTPHandler(shard)) defer s.Close() res, err := http.Get(s.URL + "/version") require.NoError(t, err) checkAndCloseHTTPResponseBody(t, res, fmt.Sprintf("%s\n", common.VersionString())) }
func (ro *Router) RouterMux() *http.ServeMux { mux := http.NewServeMux() fileHandler := func(w http.ResponseWriter, r *http.Request) { if strings.Contains(r.URL.Path, "*") { route.MulticastHttp(ro.cache, w, r, "/pfs/master", route.ReturnAll) } else { route.RouteHttp(ro.cache, w, r, "/pfs/master", ro.modulos) } } commitHandler := func(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { values := r.URL.Query() if values.Get("commit") == "" { values.Add("commit", uuid.NewV4().String()) r.URL.RawQuery = values.Encode() } } route.MulticastHttp(ro.cache, w, r, "/pfs/master", route.ReturnOne) } branchHandler := func(w http.ResponseWriter, r *http.Request) { route.MulticastHttp(ro.cache, w, r, "/pfs/master", route.ReturnOne) } pipelineHandler := func(w http.ResponseWriter, r *http.Request) { route.MulticastHttp(ro.cache, w, r, "/pfs/master", route.ReturnOne) } mux.HandleFunc("/file/", fileHandler) mux.HandleFunc("/commit", commitHandler) mux.HandleFunc("/branch", branchHandler) mux.HandleFunc("/pipeline/", pipelineHandler) mux.HandleFunc("/ping", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "pong\n") }) mux.HandleFunc("/version", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "%s\n", common.VersionString()) }) mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Welcome to pfs!\n") }) return mux }
func testGetVersion(t *testing.T, apiClient pfs.ApiClient) { getVersionResponse, err := pfsutil.GetVersion(apiClient) require.NoError(t, err) require.Equal(t, common.VersionString(), pfs.VersionString(getVersionResponse.Version)) }
func newShardHTTPHandler(shard Shard) *shardHTTPHandler { shardHTTPHandler := &shardHTTPHandler{ http.NewServeMux(), shard, } shardHTTPHandler.HandleFunc("/branch", shardHTTPHandler.branch) shardHTTPHandler.HandleFunc("/commit", shardHTTPHandler.commit) shardHTTPHandler.HandleFunc("/file/", shardHTTPHandler.file) shardHTTPHandler.HandleFunc("/pipeline/", shardHTTPHandler.pipeline) shardHTTPHandler.HandleFunc("/pull", shardHTTPHandler.pull) shardHTTPHandler.HandleFunc("/ping", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "pong\n") }) shardHTTPHandler.HandleFunc("/version", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "%s\n", common.VersionString()) }) return shardHTTPHandler }