func pollingResponseBody(jobGuid, status string, baseUrl string) string { url := urljoiner.Join("/v2/jobs", jobGuid) if baseUrl != "" { url = urljoiner.Join(baseUrl, url) } return fmt.Sprintf(` { "metadata":{ "guid": "%s", "url": "%s" }, "entity": { "status": "%s" } } `, jobGuid, url, status) }
func verifyPollingRequest(jobGuid, status string, timeClicker chan time.Time) http.HandlerFunc { return ghttp.CombineHandlers( ghttp.VerifyRequest("GET", urljoiner.Join("/v2/jobs/", jobGuid)), ghttp.RespondWith(http.StatusOK, pollingResponseBody(jobGuid, status, "")), func(w http.ResponseWriter, r *http.Request) { timeClicker <- time.Now() }, ) }
func (t *ETCDMetrics) keysEndpoint(etcdAddr string) string { return urljoiner.Join(etcdAddr, "v2", "keys") }
func (t *ETCDMetrics) storeStatsEndpoint(etcdAddr string) string { return urljoiner.Join(etcdAddr, "v2", "stats", "store") }
func (t *ETCDMetrics) leaderStatsEndpoint(etcdAddr string) string { return urljoiner.Join(etcdAddr, "v2", "stats", "leader") }
var _ = Describe("CC Uploader", func() { var ( port int address string session *gexec.Session err error configFile *os.File appGuid = "app-guid" ) dropletUploadRequest := func(appGuid string, body io.Reader, contentLength int) *http.Request { ccUrl, err := url.Parse(fakeCC.Address()) Expect(err).NotTo(HaveOccurred()) ccUrl.User = url.UserPassword(fakeCC.Username(), fakeCC.Password()) ccUrl.Path = urljoiner.Join("staging", "droplets", appGuid, "upload") v := url.Values{"async": []string{"true"}} ccUrl.RawQuery = v.Encode() route, ok := ccuploader.Routes.FindRouteByName(ccuploader.UploadDropletRoute) Expect(ok).To(BeTrue()) path, err := route.CreatePath(map[string]string{"guid": appGuid}) Expect(err).NotTo(HaveOccurred()) u, err := url.Parse(urljoiner.Join(address, path)) Expect(err).NotTo(HaveOccurred()) v = url.Values{cc_messages.CcDropletUploadUriKey: []string{ccUrl.String()}} u.RawQuery = v.Encode() postRequest, err := http.NewRequest("POST", u.String(), body)