X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a8d73de4f59cf567a96f2f04be01a249d4f7c20b..fb6909efa81aa96af7e4bf5b29438de1e21b3068:/services/keepstore/keepstore.go diff --git a/services/keepstore/keepstore.go b/services/keepstore/keepstore.go index 79e3017d55..fcbdddacb1 100644 --- a/services/keepstore/keepstore.go +++ b/services/keepstore/keepstore.go @@ -13,10 +13,12 @@ import ( "syscall" "time" + "git.curoverse.com/arvados.git/sdk/go/arvados" "git.curoverse.com/arvados.git/sdk/go/arvadosclient" "git.curoverse.com/arvados.git/sdk/go/config" "git.curoverse.com/arvados.git/sdk/go/keepclient" "github.com/coreos/go-systemd/daemon" + "github.com/prometheus/client_golang/prometheus" ) var version = "dev" @@ -49,6 +51,7 @@ var ( DiskHashError = &KeepError{500, "Hash mismatch in stored data"} ExpiredError = &KeepError{401, "Expired permission signature"} NotFoundError = &KeepError{404, "Not Found"} + VolumeBusyError = &KeepError{503, "Volume backend busy"} GenericError = &KeepError{500, "Fail"} FullError = &KeepError{503, "Full"} SizeRequiredError = &KeepError{411, "Missing Content-Length"} @@ -119,7 +122,9 @@ func main() { log.Printf("keepstore %s started", version) - err = theConfig.Start() + metricsRegistry := prometheus.NewRegistry() + + err = theConfig.Start(metricsRegistry) if err != nil { log.Fatal(err) } @@ -149,6 +154,22 @@ func main() { } } + var cluster *arvados.Cluster + cfg, err := arvados.GetConfig(arvados.DefaultConfigFile) + if err != nil && os.IsNotExist(err) { + log.Warnf("DEPRECATED: proceeding without cluster configuration file %q (%s)", arvados.DefaultConfigFile, err) + cluster = &arvados.Cluster{ + ClusterID: "xxxxx", + } + } else if err != nil { + log.Fatalf("load config %q: %s", arvados.DefaultConfigFile, err) + } else { + cluster, err = cfg.GetCluster("") + if err != nil { + log.Fatalf("config error in %q: %s", arvados.DefaultConfigFile, err) + } + } + log.Println("keepstore starting, pid", os.Getpid()) defer log.Println("keepstore exiting, pid", os.Getpid()) @@ -156,7 +177,7 @@ func main() { KeepVM = MakeRRVolumeManager(theConfig.Volumes) // Middleware/handler stack - router := MakeRESTRouter() + router := MakeRESTRouter(cluster, metricsRegistry) // Set up a TCP listener. listener, err := net.Listen("tcp", theConfig.Listen)