in dev/import-beats/kibana.go [60:86]
func (km *kibanaMigrator) migrateDashboardFile(dashboardFile []byte, moduleName string, dataStreamNames []string) ([]byte, error) {
request, err := http.NewRequest("POST",
fmt.Sprintf("%s/api/kibana/dashboards/import?force=true", km.hostPort),
bytes.NewReader(dashboardFile))
if err != nil {
return nil, errors.Wrapf(err, "creating POST request failed")
}
request.Header.Add("kbn-xsrf", "8.0.0")
if km.username != "" {
request.SetBasicAuth(km.username, km.password)
}
response, err := http.DefaultClient.Do(request)
if err != nil {
return nil, errors.Wrapf(err, "making POST request to Kibana failed")
}
defer response.Body.Close()
saved, err := ioutil.ReadAll(response.Body)
if err != nil {
return nil, errors.Wrapf(err, "reading saved object failed")
}
if response.StatusCode != http.StatusOK {
return nil, fmt.Errorf("making POST request failed: %s", string(saved))
}
return saved, nil
}