Ekaterina Lebedeva
4cd50c8c03
All checks were successful
DCO action / DCO (pull_request) Successful in 45s
Tests and linters / Tests (1.21) (pull_request) Successful in 2m3s
Tests and linters / Tests (1.22) (pull_request) Successful in 2m4s
Tests and linters / Tests with -race (pull_request) Successful in 2m13s
Tests and linters / Lint (pull_request) Successful in 3m29s
* Currently, objects created in preset are never deleted. k6 deletes only objects from registry, if registry file is not provided k6 delete load fails. * Added cli utility to import objects created in preset into registry so k6 can delete them normally. Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
47 lines
945 B
Go
47 lines
945 B
Go
package importer
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
|
|
"git.frostfs.info/TrueCloudLab/xk6-frostfs/internal/registry"
|
|
)
|
|
|
|
type PreGenObj struct {
|
|
Bucket string `json:"bucket"`
|
|
Object string `json:"object"`
|
|
Container string `json:"container"`
|
|
}
|
|
|
|
type PreGenerateInfo struct {
|
|
Buckets []string `json:"buckets"`
|
|
Containers []string `json:"containers"`
|
|
Objects []PreGenObj `json:"objects"`
|
|
ObjSize string `json:"obj_size"`
|
|
}
|
|
|
|
func ImportJSONPreGen(o *registry.ObjRegistry, filename string) error {
|
|
f, err := os.ReadFile(filename)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
var pregenInfo PreGenerateInfo
|
|
err = json.Unmarshal(f, &pregenInfo)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, obj := range pregenInfo.Objects {
|
|
if obj.Bucket != "" {
|
|
err = o.AddObject("", "", obj.Bucket, obj.Object, "")
|
|
} else {
|
|
err = o.AddObject(obj.Container, obj.Object, "", "", "")
|
|
}
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|