in internal/corpus/generator.go [165:194]
func (gc GeneratorCorpus) Generate(packageRegistryBaseURL, integrationPackage, dataStream, packageVersion string, totEvents uint64, timeNow time.Time, randSeed int64) (string, error) {
if err := gc.fs.MkdirAll(gc.location, corpusLocPerm); err != nil {
return "", fmt.Errorf("cannot generate corpus location folder: %v", err)
}
payloadFilename := path.Join(gc.location, gc.bulkPayloadFilename(integrationPackage, dataStream, packageVersion))
f, err := gc.fs.OpenFile(payloadFilename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, corpusPerm)
if err != nil {
return "", err
}
ctx := context.Background()
flds, dataStreamType, err := fields.LoadFields(ctx, packageRegistryBaseURL, integrationPackage, dataStream, packageVersion)
if err != nil {
return "", err
}
createPayload := []byte(`{ "create" : { "_index": "` + dataStreamType + `-` + integrationPackage + `.` + dataStream + `-default" } }` + "\n")
err = gc.eventsPayloadFromFields(nil, flds, totEvents, timeNow, randSeed, createPayload, f)
if err != nil {
return "", err
}
if err := f.Close(); err != nil {
return "", err
}
return payloadFilename, err
}