)
var (
- version = "dev"
Command = service.Command(arvados.ServiceNameKeepstore, newHandlerOrErrorHandler)
)
return errors.New("no volumes configured")
}
- h.Logger.Printf("keepstore %s starting, pid %d", version, os.Getpid())
+ h.Logger.Printf("keepstore %s starting, pid %d", cmd.Version.String(), os.Getpid())
// Start a round-robin VolumeManager with the configured volumes.
vm, err := makeRRVolumeManager(h.Logger, h.Cluster, serviceURL, newVolumeMetricsVecs(reg))
// Initialize the trashq and workers
h.trashq = NewWorkQueue()
- for i := 0; i < 1 || i < h.Cluster.Collections.BlobTrashConcurrency; i++ {
+ for i := 0; i < h.Cluster.Collections.BlobTrashConcurrency; i++ {
go RunTrashWorker(h.volmgr, h.Logger, h.Cluster, h.trashq)
}
}
h.keepClient.Arvados.ApiToken = fmt.Sprintf("%x", rand.Int63())
- if d := h.Cluster.Collections.BlobTrashCheckInterval.Duration(); d > 0 {
+ if d := h.Cluster.Collections.BlobTrashCheckInterval.Duration(); d > 0 &&
+ h.Cluster.Collections.BlobTrash &&
+ h.Cluster.Collections.BlobDeleteConcurrency > 0 {
go emptyTrash(h.volmgr.writables, d)
}