mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-12-24 12:29:05 +01:00
Implement tool to validate archive
This commit is contained in:
parent
68a839bf1c
commit
eb2e2cb1d2
4
.gitignore
vendored
4
.gitignore
vendored
@ -9,6 +9,6 @@
|
||||
|
||||
/web/frontend/public/build
|
||||
/web/frontend/node_modules
|
||||
.vscode/settings.json
|
||||
/.vscode/*
|
||||
/archive-migration
|
||||
.vscode/launch.json
|
||||
/archive-manager
|
||||
|
@ -52,14 +52,18 @@ func getPath(
|
||||
|
||||
func loadJobMeta(filename string) (*schema.JobMeta, error) {
|
||||
|
||||
f, err := os.Open(filename)
|
||||
b, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
log.Errorf("fsBackend loadJobMeta()- %v", err)
|
||||
return &schema.JobMeta{}, err
|
||||
}
|
||||
defer f.Close()
|
||||
if config.Keys.Validate {
|
||||
if err := schema.Validate(schema.Meta, bytes.NewReader(b)); err != nil {
|
||||
return &schema.JobMeta{}, fmt.Errorf("validate cluster config: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
return DecodeJobMeta(bufio.NewReader(f))
|
||||
return DecodeJobMeta(bytes.NewReader(b))
|
||||
}
|
||||
|
||||
func (fsa *FsArchive) Init(rawConfig json.RawMessage) (int, error) {
|
||||
|
@ -4,6 +4,32 @@
|
||||
// license that can be found in the LICENSE file.
|
||||
package main
|
||||
|
||||
func main() {
|
||||
import (
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/ClusterCockpit/cc-backend/internal/config"
|
||||
"github.com/ClusterCockpit/cc-backend/pkg/archive"
|
||||
)
|
||||
|
||||
func main() {
|
||||
var srcPath, flagConfigFile string
|
||||
|
||||
flag.StringVar(&srcPath, "s", "./var/job-archive", "Specify the source job archive path. Default is ./var/job-archive")
|
||||
flag.StringVar(&flagConfigFile, "config", "./config.json", "Specify alternative path to `config.json`")
|
||||
flag.Parse()
|
||||
archiveCfg := fmt.Sprintf("{\"kind\": \"file\",\"path\": \"%s\"}", srcPath)
|
||||
|
||||
config.Init(flagConfigFile)
|
||||
|
||||
if err := archive.Init(json.RawMessage(archiveCfg)); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
ar := archive.GetHandle()
|
||||
|
||||
for jobMeta := range ar.Iter() {
|
||||
fmt.Printf("Validate %s - %d\n", jobMeta.Cluster, jobMeta.JobID)
|
||||
}
|
||||
}
|
||||
|
@ -180,6 +180,7 @@ func main() {
|
||||
|
||||
flag.StringVar(&srcPath, "s", "./var/job-archive", "Specify the source job archive path. Default is ./var/job-archive")
|
||||
flag.StringVar(&dstPath, "d", "./var/job-archive-new", "Specify the destination job archive path. Default is ./var/job-archive-new")
|
||||
flag.Parse()
|
||||
|
||||
if _, err := os.Stat(filepath.Join(srcPath, "version.txt")); !errors.Is(err, os.ErrNotExist) {
|
||||
log.Fatal("Archive version exists!")
|
||||
|
Loading…
Reference in New Issue
Block a user