func sendWebRequestSync(ctx context.Context, webhook *Webhook) error { webhookLog.Debug("Sending webhook", "url", webhook.Url) client := &http.Client{ Timeout: time.Duration(10 * time.Second), } request, err := http.NewRequest(http.MethodPost, webhook.Url, bytes.NewReader([]byte(webhook.Body))) if webhook.User != "" && webhook.Password != "" { request.Header.Add("Authorization", util.GetBasicAuthHeader(webhook.User, webhook.Password)) } if err != nil { return err } resp, err := ctxhttp.Do(ctx, client, request) if err != nil { return err } if resp.StatusCode/100 == 2 { return nil } body, err := ioutil.ReadAll(resp.Body) if err != nil { return err } defer resp.Body.Close() webhookLog.Debug("Webhook failed", "statuscode", resp.Status, "body", string(body)) return fmt.Errorf("Webhook response status %v", resp.Status) }
// Endpoint returns a usable endpoint that will invoke the RPC specified by // the client. func (c Client) Endpoint() endpoint.Endpoint { return func(ctx context.Context, request interface{}) (interface{}, error) { ctx, cancel := context.WithCancel(ctx) defer cancel() req, err := http.NewRequest(c.method, c.tgt.String(), nil) if err != nil { return nil, TransportError{DomainNewRequest, err} } if err = c.enc(req, request); err != nil { return nil, TransportError{DomainEncode, err} } for _, f := range c.before { ctx = f(ctx, req) } resp, err := ctxhttp.Do(ctx, c.client, req) if err != nil { return nil, TransportError{DomainDo, err} } if !c.bufferedStream { defer resp.Body.Close() } response, err := c.dec(resp) if err != nil { return nil, TransportError{DomainDecode, err} } return response, nil } }
func (c *PagespeedapiRunpagespeedCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) params.Set("url", fmt.Sprintf("%v", c.url)) if v, ok := c.opt_["filter_third_party_resources"]; ok { params.Set("filter_third_party_resources", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["locale"]; ok { params.Set("locale", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["rule"]; ok { params.Set("rule", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["screenshot"]; ok { params.Set("screenshot", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["strategy"]; ok { params.Set("strategy", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "runPagespeed") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.SetOpaque(req.URL) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *ProjectsPatchTracesCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.traces) if err != nil { return nil, err } ctype := "application/json" params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/traces") urls += "?" + params.Encode() req, _ := http.NewRequest("PATCH", urls, body) googleapi.Expand(req.URL, map[string]string{ "projectId": c.projectId, }) req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *TaskqueuesGetCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["getStats"]; ok { params.Set("getStats", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/taskqueues/{taskqueue}") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.Expand(req.URL, map[string]string{ "project": c.project, "taskqueue": c.taskqueue, }) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *TranslationsListCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) params.Set("target", fmt.Sprintf("%v", c.target)) for _, v := range c.q { params.Add("q", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["cid"]; ok { params.Set("cid", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["format"]; ok { params.Set("format", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["source"]; ok { params.Set("source", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "v2") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.SetOpaque(req.URL) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *TrainingInsertCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.training) if err != nil { return nil, err } ctype := "application/json" params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["data"]; ok { params.Set("data", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "training") urls += "?" + params.Encode() req, _ := http.NewRequest("POST", urls, body) googleapi.SetOpaque(req.URL) req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *HttpCommand) Endpoint() endpoint.Endpoint { return func(ctx context.Context, req interface{}) (interface{}, error) { ctx, cancel := context.WithCancel(ctx) defer cancel() u, err := url.Parse(c.Url) if err != nil { return nil, fmt.Errorf("URL: %v", err) } if c.Method == "GET" { q := u.Query() args, ok := req.([]*command.Argument) if !ok { return nil, fmt.Errorf("TypeError: The request is not argument") } if len(q) <= 0 { for _, arg := range args { q.Set(arg.Name, arg.Value) } } else { //Reverse query values //Filter query values e.g. message=<messageid>&user=<userid> kv := make(map[string]string) for key, val := range q { if strings.HasPrefix(val[0], "<") && strings.HasSuffix(val[0], ">") { kv[val[0][1:len(val[0])-1]] = key } } for _, arg := range args { param, ok := kv[arg.Name] if !ok { continue } q.Set(param, arg.Value) } } u.RawQuery = q.Encode() } else if c.Method == "POST" { //TODO: How to represent POST form //For now, There is same scheme for the command argument in the POST method } request, err := http.NewRequest(c.Method, u.String(), nil) if err != nil { return nil, fmt.Errorf("NewRequest: %v", err) } response, err := ctxhttp.Do(ctx, c.client, request) if err != nil { return nil, fmt.Errorf("Do: %v", err) } //TODO: //defer func() { _ = response.Body.Close() }() return response, nil } }
func (m *Client) GetReal(ctx context.Context) (string, error) { urlStr := m.getRealURL() req, err := http.NewRequest("GET", urlStr, nil) if err != nil { return "", err } req.Header.Add("Authorization", m.AuthHeader) resp, err := ctxhttp.Do(ctx, m.client, req) if err != nil { return "", err } defer resp.Body.Close() if resp.StatusCode == http.StatusOK { b, err := ioutil.ReadAll(resp.Body) return string(b), err } scope := ErrorMethodScope{ Method: "getReal", URL: urlStr, } return "", newMethodError(scope, resp) }
func (c *JobsReportsGetCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["onBehalfOfContentOwner"]; ok { params.Set("onBehalfOfContentOwner", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "v1/jobs/{jobId}/reports/{reportId}") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.Expand(req.URL, map[string]string{ "jobId": c.jobId, "reportId": c.reportId, }) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *ManagementWebpropertiesListCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["max-results"]; ok { params.Set("max-results", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["start-index"]; ok { params.Set("start-index", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "management/accounts/{accountId}/webproperties") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.Expand(req.URL, map[string]string{ "accountId": c.accountId, }) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *JobsListCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["onBehalfOfContentOwner"]; ok { params.Set("onBehalfOfContentOwner", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["pageSize"]; ok { params.Set("pageSize", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["pageToken"]; ok { params.Set("pageToken", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "v1/jobs") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.SetOpaque(req.URL) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *TasksLeaseCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) params.Set("leaseSecs", fmt.Sprintf("%v", c.leaseSecs)) params.Set("numTasks", fmt.Sprintf("%v", c.numTasks)) if v, ok := c.opt_["groupByTag"]; ok { params.Set("groupByTag", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["tag"]; ok { params.Set("tag", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/taskqueues/{taskqueue}/tasks/lease") urls += "?" + params.Encode() req, _ := http.NewRequest("POST", urls, body) googleapi.Expand(req.URL, map[string]string{ "project": c.project, "taskqueue": c.taskqueue, }) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *TasksUpdateCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.task2) if err != nil { return nil, err } ctype := "application/json" params := make(url.Values) params.Set("alt", alt) params.Set("newLeaseSeconds", fmt.Sprintf("%v", c.newLeaseSeconds)) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/taskqueues/{taskqueue}/tasks/{task}") urls += "?" + params.Encode() req, _ := http.NewRequest("POST", urls, body) googleapi.Expand(req.URL, map[string]string{ "project": c.project, "taskqueue": c.taskqueue, "task": c.task, }) req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
// doUploadRequest performs a single HTTP request to upload data. // off specifies the offset in rx.Media from which data is drawn. // size is the number of bytes in data. // final specifies whether data is the final chunk to be uploaded. func (rx *ResumableUpload) doUploadRequest(ctx context.Context, data io.Reader, off, size int64, final bool) (*http.Response, error) { req, err := http.NewRequest("POST", rx.URI, data) if err != nil { return nil, err } req.ContentLength = size var contentRange string if final { if size == 0 { contentRange = fmt.Sprintf("bytes */%v", off) } else { contentRange = fmt.Sprintf("bytes %v-%v/%v", off, off+size-1, off+size) } } else { contentRange = fmt.Sprintf("bytes %v-%v/*", off, off+size-1) } req.Header.Set("Content-Range", contentRange) req.Header.Set("Content-Type", rx.MediaType) req.Header.Set("User-Agent", rx.UserAgent) fn := Hook(ctx, req) resp, err := ctxhttp.Do(ctx, rx.Client, req) fn(resp) return resp, err }
// Upload stores provided data to a specified namespace. Returns information about upload. func (m *Client) Upload(ctx context.Context, namespace string, filename string, size int64, body io.Reader) (*UploadInfo, error) { urlStr := m.uploadURL(namespace, filename) req, err := http.NewRequest("POST", urlStr, body) if err != nil { return nil, err } req.Header.Add("Authorization", m.AuthHeader) if req.ContentLength <= 0 { req.ContentLength = size } resp, err := ctxhttp.Do(ctx, m.client, req) if err != nil { return nil, err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { scope := ErrorMethodScope{ Method: "upload", URL: urlStr, } return nil, newMethodError(scope, resp) } var info UploadInfo if err := decodeXML(&info, resp.Body); err != nil { return nil, err } return &info, nil }
func (c *MediaUploadCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.media) if err != nil { return nil, err } ctype := "application/json" c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1/media/{+resourceName}") if c.media_ != nil || c.resumable_ != nil { urls = strings.Replace(urls, "https://www.googleapis.com/", "https://www.googleapis.com/upload/", 1) c.urlParams_.Set("uploadType", c.protocol_) } urls += "?" + c.urlParams_.Encode() if c.protocol_ != "resumable" && c.media_ != nil { cancel := gensupport.IncludeMedia(c.media_, &body, &ctype) defer cancel() } req, _ := http.NewRequest("POST", urls, body) googleapi.Expand(req.URL, map[string]string{ "resourceName": c.resourceName, }) if c.protocol_ == "resumable" { if c.mediaType_ == "" { c.mediaType_ = gensupport.DetectMediaType(c.resumable_) } req.Header.Set("X-Upload-Content-Type", c.mediaType_) } req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
// Get reads a given key from storage and return ReadCloser to body. // User is responsible for closing returned ReadCloser. func (m *Client) Get(ctx context.Context, namespace, key string, Range ...uint64) (io.ReadCloser, error) { urlStr := m.ReadURL(namespace, key) req, err := http.NewRequest("GET", urlStr, nil) if err != nil { return nil, err } req.Header.Add("Authorization", m.AuthHeader) switch len(Range) { case 0: case 1: req.Header.Add("Range", fmt.Sprintf("bytes=%d-", Range[0])) case 2: req.Header.Add("Range", fmt.Sprintf("bytes=%d-%d", Range[0], Range[1])) default: return nil, fmt.Errorf("Invalid range") } resp, err := ctxhttp.Do(ctx, m.client, req) if err != nil { return nil, err } if resp.StatusCode == http.StatusOK || resp.StatusCode == http.StatusPartialContent { return resp.Body, nil } defer resp.Body.Close() scope := ErrorMethodScope{ Method: "get", URL: urlStr, } return nil, newMethodError(scope, resp) }
func (c *HostedmodelsPredictCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.input) if err != nil { return nil, err } ctype := "application/json" params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "hostedmodels/{hostedModelName}/predict") urls += "?" + params.Encode() req, _ := http.NewRequest("POST", urls, body) googleapi.Expand(req.URL, map[string]string{ "hostedModelName": c.hostedModelName, }) req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
// DownloadInfo retrieves an information about direct link to a file, // if it's available. func (m *Client) DownloadInfo(ctx context.Context, namespace, key string) (*DownloadInfo, error) { urlStr := m.downloadinfoURL(namespace, key) req, err := http.NewRequest("GET", urlStr, nil) if err != nil { return nil, err } req.Header.Add("Authorization", m.AuthHeader) resp, err := ctxhttp.Do(ctx, m.client, req) if err != nil { return nil, err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { scope := ErrorMethodScope{ Method: "downloadInfo", URL: urlStr, } return nil, newMethodError(scope, resp) } var info DownloadInfo if err := decodeXML(&info, resp.Body); err != nil { return nil, err } return &info, nil }
func (c *TransfersListCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["customerId"]; ok { params.Set("customerId", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["maxResults"]; ok { params.Set("maxResults", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["newOwnerUserId"]; ok { params.Set("newOwnerUserId", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["oldOwnerUserId"]; ok { params.Set("oldOwnerUserId", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["pageToken"]; ok { params.Set("pageToken", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["status"]; ok { params.Set("status", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "transfers") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.SetOpaque(req.URL) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *httpClient) do(ctx context.Context, req *http.Request) (*http.Response, []byte, error) { resp, err := ctxhttp.Do(ctx, &http.Client{Transport: c.transport}, req) defer func() { if resp != nil { resp.Body.Close() } }() if err != nil { return nil, nil, err } var body []byte done := make(chan struct{}) go func() { body, err = ioutil.ReadAll(resp.Body) close(done) }() select { case <-ctx.Done(): err = resp.Body.Close() <-done if err == nil { err = ctx.Err() } case <-done: } return resp, body, err }
func (c *V1GetDiscoveryCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["args"]; ok { params.Set("args", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["format"]; ok { params.Set("format", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["labels"]; ok { params.Set("labels", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["version"]; ok { params.Set("version", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "v1/discovery") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.SetOpaque(req.URL) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *StatesUpdateCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.updaterequest) if err != nil { return nil, err } ctype := "application/json" params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["currentStateVersion"]; ok { params.Set("currentStateVersion", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "states/{stateKey}") urls += "?" + params.Encode() req, _ := http.NewRequest("PUT", urls, body) googleapi.Expand(req.URL, map[string]string{ "stateKey": strconv.FormatInt(c.stateKey, 10), }) req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (c *ArchiveInsertCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "{groupId}/archive") if c.media_ != nil || c.resumableBuffer_ != nil { urls = strings.Replace(urls, "https://www.googleapis.com/", "https://www.googleapis.com/upload/", 1) protocol := "multipart" if c.resumableBuffer_ != nil { protocol = "resumable" } c.urlParams_.Set("uploadType", protocol) } urls += "?" + c.urlParams_.Encode() body = new(bytes.Buffer) ctype := "application/json" if c.media_ != nil { var combined io.ReadCloser combined, ctype = gensupport.CombineBodyMedia(body, ctype, c.media_, c.mediaType_) defer combined.Close() body = combined } req, _ := http.NewRequest("POST", urls, body) googleapi.Expand(req.URL, map[string]string{ "groupId": c.groupId, }) if c.resumableBuffer_ != nil { req.Header.Set("X-Upload-Content-Type", c.mediaType_) } req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
// Retrieve the status of a pod synchronously from the Kube // API server. func (c *Client) PodStatus(ctx context.Context, podName string) (*api.PodStatus, error) { getURL := c.endpointURL + defaultPod + "/" + podName // Make request to Kubernetes API req, err := http.NewRequest("GET", getURL, nil) if err != nil { return nil, fmt.Errorf("failed to create request: GET %q : %v", getURL, err) } res, err := ctxhttp.Do(ctx, c.httpClient, req) if err != nil { return nil, fmt.Errorf("failed to make request: GET %q: %v", getURL, err) } body, err := ioutil.ReadAll(res.Body) res.Body.Close() if err != nil { return nil, fmt.Errorf("failed to read request body for GET %q: %v", getURL, err) } if res.StatusCode != http.StatusOK { return nil, fmt.Errorf("http error %d GET %q: %q: %v", res.StatusCode, getURL, string(body), err) } var pod *api.Pod if err := json.Unmarshal(body, &pod); err != nil { return nil, fmt.Errorf("failed to decode pod resources: %v", err) } return &pod.Status, nil }
func (c *WebResourceUpdateCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.siteverificationwebresourceresource) if err != nil { return nil, err } ctype := "application/json" params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "webResource/{id}") urls += "?" + params.Encode() req, _ := http.NewRequest("PUT", urls, body) googleapi.Expand(req.URL, map[string]string{ "id": c.id, }) req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
// Run creates a new pod resource in the default pod namespace with // the given pod API specification. // It returns the pod status once it has entered the Running phase. // An error is returned if the pod can not be created, if it does // does not enter the running phase within 2 minutes, or if ctx.Done // is closed. func (c *Client) Run(ctx context.Context, pod *api.Pod) (*api.PodStatus, error) { var podJSON bytes.Buffer if err := json.NewEncoder(&podJSON).Encode(pod); err != nil { return nil, fmt.Errorf("failed to encode pod in json: %v", err) } postURL := c.endpointURL + defaultPod req, err := http.NewRequest("POST", postURL, &podJSON) if err != nil { return nil, fmt.Errorf("failed to create request: POST %q : %v", postURL, err) } res, err := ctxhttp.Do(ctx, c.httpClient, req) if err != nil { return nil, fmt.Errorf("failed to make request: POST %q: %v", postURL, err) } body, err := ioutil.ReadAll(res.Body) res.Body.Close() if err != nil { return nil, fmt.Errorf("failed to read request body for POST %q: %v", postURL, err) } if res.StatusCode != http.StatusCreated { return nil, fmt.Errorf("http error: %d POST %q: %q: %v", res.StatusCode, postURL, string(body), err) } var podResult api.Pod if err := json.Unmarshal(body, &podResult); err != nil { return nil, fmt.Errorf("failed to decode pod resources: %v", err) } ctx, cancel := context.WithTimeout(ctx, 2*time.Minute) defer cancel() status, err := c.AwaitPodNotPending(ctx, podResult.Name, podResult.ObjectMeta.ResourceVersion) if err != nil { return nil, err } return status, nil }
func (c *ArchiveInsertCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "{groupId}/archive") if c.media_ != nil || c.resumable_ != nil { urls = strings.Replace(urls, "https://www.googleapis.com/", "https://www.googleapis.com/upload/", 1) c.urlParams_.Set("uploadType", c.protocol_) } urls += "?" + c.urlParams_.Encode() body = new(bytes.Buffer) ctype := "application/json" if c.protocol_ != "resumable" { cancel := gensupport.ConditionallyIncludeMedia(c.media_, &body, &ctype) defer cancel() } req, _ := http.NewRequest("POST", urls, body) googleapi.Expand(req.URL, map[string]string{ "groupId": c.groupId, }) if c.protocol_ == "resumable" { if c.mediaType_ == "" { c.mediaType_ = gensupport.DetectMediaType(c.resumable_) } req.Header.Set("X-Upload-Content-Type", c.mediaType_) } req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) }
func (lb *BackendLoadBalancer) DoWithLoadBalancer(req *http.Request, useTLS bool) (*http.Response, error) { connectString, err := lb.LoadBalancer.GetConnectAddress() if err != nil { return nil, err } log.Debug("connect string is ", connectString) req.URL.Host = connectString req.Host = connectString var transport *http.Transport if useTLS == true { log.Debug("Configuring TLS transport") transport = lb.httpsTransport req.URL.Scheme = "https" } else { log.Debug("Configuring non-TLS transport") transport = lb.httpTransport req.URL.Scheme = "http" } client := &http.Client{ Transport: transport, } req.RequestURI = "" //Must clear when using http.Client return ctxhttp.Do(req.Context(), client, req) }