mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-12-25 12:59:06 +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/public/build
|
||||||
/web/frontend/node_modules
|
/web/frontend/node_modules
|
||||||
.vscode/settings.json
|
/.vscode/*
|
||||||
/archive-migration
|
/archive-migration
|
||||||
.vscode/launch.json
|
/archive-manager
|
||||||
|
@ -52,14 +52,18 @@ func getPath(
|
|||||||
|
|
||||||
func loadJobMeta(filename string) (*schema.JobMeta, error) {
|
func loadJobMeta(filename string) (*schema.JobMeta, error) {
|
||||||
|
|
||||||
f, err := os.Open(filename)
|
b, err := os.ReadFile(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("fsBackend loadJobMeta()- %v", err)
|
log.Errorf("fsBackend loadJobMeta()- %v", err)
|
||||||
return &schema.JobMeta{}, 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) {
|
func (fsa *FsArchive) Init(rawConfig json.RawMessage) (int, error) {
|
||||||
|
@ -4,6 +4,32 @@
|
|||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
package main
|
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(&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.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) {
|
if _, err := os.Stat(filepath.Join(srcPath, "version.txt")); !errors.Is(err, os.ErrNotExist) {
|
||||||
log.Fatal("Archive version exists!")
|
log.Fatal("Archive version exists!")
|
||||||
|
Loading…
Reference in New Issue
Block a user