(operatorConfig OperatorConfig, request *http.Request)
| 171 | } |
| 172 | |
| 173 | func makeOperatorRequest(operatorConfig OperatorConfig, request *http.Request) ([]byte, error) { |
| 174 | if operatorConfig.Telemetry { |
| 175 | values := request.URL.Query() |
| 176 | values.Set("clientID", operatorConfig.ClientID) |
| 177 | request.URL.RawQuery = values.Encode() |
| 178 | } |
| 179 | |
| 180 | request.Header.Set("CortexAPIVersion", consts.CortexVersion) |
| 181 | awsClient, err := aws.New() |
| 182 | if err != nil { |
| 183 | return nil, err |
| 184 | } |
| 185 | |
| 186 | authHeader, err := awsClient.IdentityRequestAsHeader() |
| 187 | if err != nil { |
| 188 | return nil, err |
| 189 | } |
| 190 | request.Header.Set(consts.AuthHeader, authHeader) |
| 191 | |
| 192 | timeout := 600 * time.Second |
| 193 | if request.URL.Path == "/info" { |
| 194 | timeout = 10 * time.Second |
| 195 | } |
| 196 | |
| 197 | client := &http.Client{ |
| 198 | Timeout: timeout, |
| 199 | Transport: &http.Transport{ |
| 200 | TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, |
| 201 | }, |
| 202 | } |
| 203 | |
| 204 | response, err := client.Do(request) |
| 205 | if err != nil { |
| 206 | return nil, ErrorFailedToConnectOperator(err, operatorConfig.EnvName, operatorConfig.OperatorEndpoint) |
| 207 | } |
| 208 | defer response.Body.Close() |
| 209 | |
| 210 | if response.StatusCode != 200 { |
| 211 | bodyBytes, err := ioutil.ReadAll(response.Body) |
| 212 | if err != nil { |
| 213 | return nil, errors.Wrap(err, _errStrRead) |
| 214 | } |
| 215 | |
| 216 | var output schema.ErrorResponse |
| 217 | err = json.Unmarshal(bodyBytes, &output) |
| 218 | if err != nil || output.Message == "" { |
| 219 | return nil, ErrorOperatorResponseUnknown(string(bodyBytes), response.StatusCode) |
| 220 | } |
| 221 | |
| 222 | return nil, errors.WithStack(&errors.Error{ |
| 223 | Kind: output.Kind, |
| 224 | Message: output.Message, |
| 225 | NoTelemetry: true, |
| 226 | }) |
| 227 | } |
| 228 | |
| 229 | bodyBytes, err := ioutil.ReadAll(response.Body) |
| 230 | if err != nil { |
no test coverage detected