summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--golang/Gopkg.lock20
-rw-r--r--golang/api/handlers/entities.go2
-rw-r--r--golang/cmd/fatcatd/root.go14
-rw-r--r--golang/cmd/fatcatd/serve.go50
-rw-r--r--golang/fatcatd.toml2
-rw-r--r--golang/gen/restapi/configure_fatcat.go25
6 files changed, 43 insertions, 70 deletions
diff --git a/golang/Gopkg.lock b/golang/Gopkg.lock
index f5ff016e..624973cf 100644
--- a/golang/Gopkg.lock
+++ b/golang/Gopkg.lock
@@ -21,6 +21,12 @@
[[projects]]
branch = "master"
+ name = "github.com/bradleyg/go-sentroni"
+ packages = ["."]
+ revision = "16e7bf48e1494134ac32000c9e22f3cd3e54c85f"
+
+[[projects]]
+ branch = "master"
name = "github.com/carbocation/interpose"
packages = [
".",
@@ -170,6 +176,12 @@
revision = "ef8a98b0bbce4a65b5aa4c368430a80ddc533168"
[[projects]]
+ name = "github.com/inconshreveable/mousetrap"
+ packages = ["."]
+ revision = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75"
+ version = "v1.0"
+
+[[projects]]
name = "github.com/jessevdk/go-flags"
packages = ["."]
revision = "c6ca198ec95c841fdb89fc0de7496fed11ab854e"
@@ -249,6 +261,12 @@
version = "v1.2.0"
[[projects]]
+ name = "github.com/spf13/cobra"
+ packages = ["."]
+ revision = "a1f051bc3eba734da4772d60e2d677f47cf93ef4"
+ version = "v0.0.2"
+
+[[projects]]
branch = "master"
name = "github.com/spf13/jwalterweatherman"
packages = ["."]
@@ -348,6 +366,6 @@
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
- inputs-digest = "22b7db2e7bce9c3b5a5b85e98dfead56dce992a11035235a7d854916782a19dd"
+ inputs-digest = "6f07904be5d2765e24cd25378e28c8c1c34f6e4205100dc6f8364d0be5eafbf9"
solver-name = "gps-cdcl"
solver-version = 1
diff --git a/golang/api/handlers/entities.go b/golang/api/handlers/entities.go
index 75c8b72b..61104553 100644
--- a/golang/api/handlers/entities.go
+++ b/golang/api/handlers/entities.go
@@ -2,8 +2,6 @@
package handlers
import (
- //"net/http"
-
"github.com/go-pg/pg"
"github.com/go-openapi/runtime/middleware"
diff --git a/golang/cmd/fatcatd/root.go b/golang/cmd/fatcatd/root.go
index d4c7f161..b5263b06 100644
--- a/golang/cmd/fatcatd/root.go
+++ b/golang/cmd/fatcatd/root.go
@@ -6,7 +6,6 @@ import (
"fmt"
log "github.com/sirupsen/logrus"
- //middleware "github.com/go-openapi/runtime/middleware"
"github.com/spf13/viper"
"github.com/spf13/cobra"
"github.com/getsentry/raven-go"
@@ -25,18 +24,20 @@ func init() {
cobra.OnInitialize(initConfig)
rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is ./fatcatd.toml)")
rootCmd.PersistentFlags().BoolP("verbose", "v", false, "increase logging volume")
+ viper.BindPFlag("verbose", rootCmd.PersistentFlags().Lookup("verbose"))
+
+ serveCmd.Flags().String("db-url", "postgres://", "database connecion string")
rootCmd.AddCommand(serveCmd)
}
func initConfig() {
- viper.SetDefault("port", 9411)
- viper.SetDefault("verbose", true)
+ viper.SetDefault("port", 9411)
+ viper.SetDefault("db_url", "postgres://bnewbold@localhost/fatcat")
viper.SetEnvPrefix("FATCAT")
viper.AutomaticEnv()
-
if cfgFile != "" {
// Use config file from the flag.
viper.SetConfigFile(cfgFile)
@@ -54,6 +55,11 @@ func initConfig() {
// not default of stderr
log.SetOutput(os.Stdout);
+ if viper.GetBool("verbose") == true {
+ log.SetLevel(log.DebugLevel)
+ }
+ log.Debug("It's verbose!")
+
raven.SetDSN(viper.GetString("sentry_dsn"));
}
diff --git a/golang/cmd/fatcatd/serve.go b/golang/cmd/fatcatd/serve.go
index dcee4f4f..f1eeb995 100644
--- a/golang/cmd/fatcatd/serve.go
+++ b/golang/cmd/fatcatd/serve.go
@@ -2,17 +2,15 @@
package main
import (
- //"os"
"net/http"
"github.com/spf13/viper"
log "github.com/sirupsen/logrus"
loads "github.com/go-openapi/loads"
- //flags "github.com/jessevdk/go-flags"
- //"github.com/getsentry/raven-go"
"github.com/carbocation/interpose"
"github.com/carbocation/interpose/adaptors"
"github.com/meatballhat/negroni-logrus"
+ "github.com/bradleyg/go-sentroni"
"github.com/go-pg/pg"
"github.com/spf13/cobra"
@@ -31,8 +29,6 @@ var serveCmd = &cobra.Command{
func main_serve() {
- log.Warn("Starting up...");
-
// load embedded swagger file
swaggerSpec, err := loads.Analyzed(restapi.SwaggerJSON, "")
if err != nil {
@@ -49,36 +45,13 @@ func main_serve() {
server := restapi.NewServer(api)
defer server.Shutdown()
-/*
- parser := flags.NewParser(server, flags.Default)
- parser.ShortDescription = "fatcat"
- parser.LongDescription = "A scalable, versioned, API-oriented catalog of bibliographic entities and file metadata"
-
- server.ConfigureFlags()
- for _, optsGroup := range api.CommandLineOptionsGroups {
- _, err := parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options)
- if err != nil {
- log.Fatalln(err)
- }
- }
-
- if _, err := parser.Parse(); err != nil {
- code := 1
- if fe, ok := err.(*flags.Error); ok {
- if fe.Type == flags.ErrHelp {
- code = 0
- }
- }
- os.Exit(code)
- }
-*/
-
server.Port = viper.GetInt("port")
- db := pg.Connect(&pg.Options{
- User: "bnewbold", // XXX:
- Database: "fatcat",
- })
+ db_options, err := pg.ParseURL(viper.GetString("db_url"))
+ if err != nil {
+ log.Panicf("parsing DB string: {}", err)
+ }
+ db := pg.Connect(db_options)
defer db.Close()
// register all the many handlers here
@@ -87,20 +60,19 @@ func main_serve() {
middle := interpose.New()
- // sentry and upstream
- // XXX: middle.UseHandler(sentry.Recovery(raven.DefaultClient, false))
+ // sentry
+ middle.Use(adaptors.FromNegroni(sentroni.NewRecovery(viper.GetString("sentry_dsn"))))
// logging
- negroniMiddleware := negronilogrus.NewMiddleware()
- middle.Use(adaptors.FromNegroni(negroniMiddleware))
+ middle.Use(adaptors.FromNegroni(negronilogrus.NewMiddleware()))
- // add clacks (TODO: only production)
+ // add clacks
middle.UseHandler(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
rw.Header().Set("X-Clacks-Overhead:", "GNU Aaron Swartz, John Perry Barlow")
}))
+ // actual handler
middle.UseHandler(api.Serve(nil))
-
server.SetHandler(middle)
if err := server.Serve(); err != nil {
diff --git a/golang/fatcatd.toml b/golang/fatcatd.toml
index 72ddd2d9..bd839b19 100644
--- a/golang/fatcatd.toml
+++ b/golang/fatcatd.toml
@@ -1 +1 @@
-verbose = true
+verbose = false
diff --git a/golang/gen/restapi/configure_fatcat.go b/golang/gen/restapi/configure_fatcat.go
index 2ec7e366..d4923b64 100644
--- a/golang/gen/restapi/configure_fatcat.go
+++ b/golang/gen/restapi/configure_fatcat.go
@@ -1,6 +1,6 @@
// This file is safe to edit. Once it exists it will not be overwritten
-// XXX: this file isn't actually used
+// NB: this file isn't actually used
package restapi
@@ -13,10 +13,6 @@ import (
runtime "github.com/go-openapi/runtime"
middleware "github.com/go-openapi/runtime/middleware"
graceful "github.com/tylerb/graceful"
- "github.com/carbocation/interpose"
- "github.com/carbocation/interpose/adaptors"
- //"github.com/getsentry/raven-go"
- "github.com/meatballhat/negroni-logrus"
"git.archive.org/bnewbold/fatcat/golang/gen/restapi/operations"
)
@@ -77,22 +73,5 @@ func setupMiddlewares(handler http.Handler) http.Handler {
// The middleware configuration happens before anything, this middleware also applies to serving the swagger.json document.
// So this is a good place to plug in a panic handling middleware, logging and metrics
func setupGlobalMiddleware(handler http.Handler) http.Handler {
-
- middle := interpose.New()
-
- // sentry and upstream
- //middle.UseHandler(sentry.Recovery(raven.DefaultClient, false))
-
- // logging
- negroniMiddleware := negronilogrus.NewMiddleware()
- middle.Use(adaptors.FromNegroni(negroniMiddleware))
-
- // add clacks
- middle.UseHandler(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
- rw.Header().Set("X-Clacks-Overhead:", "GNU Aaron Swartz, John Perry Barlow")
- }))
-
- middle.UseHandler(handler)
-
- return middle
+ return handler
}