35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
package artifactstore
|
|
|
|
import (
|
|
"fmt"
|
|
"mrvacommander/pkg/common"
|
|
)
|
|
|
|
// XX: static types: split by type?
|
|
// Restrict the keys / values for ArtifactLocation and centralize the common ones
|
|
// here
|
|
const (
|
|
AF_VAL_BUCKET_RESULTS = "results"
|
|
AF_VAL_BUCKET_PACKS = "packs"
|
|
AF_KEY_BUCKET = "bucket"
|
|
AF_KEY_KEY = "key"
|
|
)
|
|
|
|
type ArtifactLocation struct {
|
|
// Data is a map of key-value pairs that describe the location of the artifact.
|
|
// For example, a simple key-value pair could be "path" -> "/path/to/artifact.tgz".
|
|
// Alternatively, a more complex example could be "bucket" -> "example", "key" -> "UNIQUE_ARTIFACT_IDENTIFIER".
|
|
// XX: static types
|
|
Data map[string]string `json:"data"`
|
|
}
|
|
|
|
// deriveKeyFromSessionId generates a key for a query pack based on the job ID
|
|
func deriveKeyFromSessionId(sessionId int) string {
|
|
return fmt.Sprintf("%d", sessionId)
|
|
}
|
|
|
|
// deriveKeyFromJobSpec generates a key for a result based on the JobSpec
|
|
func deriveKeyFromJobSpec(jobSpec common.JobSpec) string {
|
|
return fmt.Sprintf("%d-%s", jobSpec.SessionID, jobSpec.NameWithOwner)
|
|
}
|