Merge branch 'master' into optimize-psql
This commit is contained in:
@ -15,11 +15,11 @@ import (
|
||||
func railsRedisHandler(next http.HandlerFunc) http.HandlerFunc {
|
||||
cookie := conf.Auth.Cookie
|
||||
if len(cookie) == 0 {
|
||||
panic(errors.New("no auth.cookie defined"))
|
||||
logger.Fatal().Msg("no auth.cookie defined")
|
||||
}
|
||||
|
||||
if len(conf.Auth.Rails.URL) == 0 {
|
||||
logger.Fatal(errors.New("no auth.rails.url defined"))
|
||||
logger.Fatal().Msg("no auth.rails.url defined")
|
||||
}
|
||||
|
||||
rp := &redis.Pool{
|
||||
@ -74,16 +74,16 @@ func railsRedisHandler(next http.HandlerFunc) http.HandlerFunc {
|
||||
func railsMemcacheHandler(next http.HandlerFunc) http.HandlerFunc {
|
||||
cookie := conf.Auth.Cookie
|
||||
if len(cookie) == 0 {
|
||||
panic(errors.New("no auth.cookie defined"))
|
||||
logger.Fatal().Msg("no auth.cookie defined")
|
||||
}
|
||||
|
||||
if len(conf.Auth.Rails.URL) == 0 {
|
||||
logger.Fatal(errors.New("no auth.rails.url defined"))
|
||||
logger.Fatal().Msg("no auth.rails.url defined")
|
||||
}
|
||||
|
||||
rURL, err := url.Parse(conf.Auth.Rails.URL)
|
||||
if err != nil {
|
||||
logger.Fatal(err)
|
||||
logger.Fatal().Err(err)
|
||||
}
|
||||
|
||||
mc := memcache.New(rURL.Host)
|
||||
@ -121,12 +121,12 @@ func railsMemcacheHandler(next http.HandlerFunc) http.HandlerFunc {
|
||||
func railsCookieHandler(next http.HandlerFunc) http.HandlerFunc {
|
||||
cookie := conf.Auth.Cookie
|
||||
if len(cookie) == 0 {
|
||||
panic(errors.New("no auth.cookie defined"))
|
||||
logger.Fatal().Msg("no auth.cookie defined")
|
||||
}
|
||||
|
||||
ra, err := railsAuth(conf)
|
||||
if err != nil {
|
||||
logger.Fatal(err)
|
||||
logger.Fatal().Err(err)
|
||||
}
|
||||
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
@ -137,14 +137,14 @@ func railsCookieHandler(next http.HandlerFunc) http.HandlerFunc {
|
||||
|
||||
ck, err := r.Cookie(cookie)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
logger.Error().Err(err)
|
||||
next.ServeHTTP(w, r)
|
||||
return
|
||||
}
|
||||
|
||||
userID, err := ra.ParseCookie(ck.Value)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
logger.Error().Err(err)
|
||||
next.ServeHTTP(w, r)
|
||||
return
|
||||
}
|
||||
|
@ -76,6 +76,7 @@ type configRemote struct {
|
||||
ID string
|
||||
Path string
|
||||
URL string
|
||||
Debug bool
|
||||
PassHeaders []string `mapstructure:"pass_headers"`
|
||||
SetHeaders []struct {
|
||||
Name string
|
||||
|
@ -100,7 +100,7 @@ func (c *coreContext) resolveRemote(
|
||||
// replacement data for the marked insertion points
|
||||
// key and value will be replaced by whats below
|
||||
toA := [1]jsn.Field{}
|
||||
to := toA[:0]
|
||||
to := toA[:1]
|
||||
|
||||
// use the json key to find the related Select object
|
||||
k1 := xxhash.Sum64(field.Key)
|
||||
@ -197,7 +197,7 @@ func (c *coreContext) resolveRemotes(
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
go func(n int, s *qcode.Select) {
|
||||
go func(n int, id []byte, s *qcode.Select) {
|
||||
defer wg.Done()
|
||||
|
||||
st := time.Now()
|
||||
@ -230,7 +230,7 @@ func (c *coreContext) resolveRemotes(
|
||||
}
|
||||
|
||||
to[n] = jsn.Field{[]byte(s.FieldName), ob.Bytes()}
|
||||
}(i, s)
|
||||
}(i, id, s)
|
||||
}
|
||||
wg.Wait()
|
||||
|
||||
|
@ -10,6 +10,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/gorilla/websocket"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -137,7 +138,7 @@ func apiv1Http(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
func errorResp(w http.ResponseWriter, err error) {
|
||||
if conf.DebugLevel > 0 {
|
||||
logger.Error(err.Error())
|
||||
log.Error().Err(err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
|
28
serv/reso.go
28
serv/reso.go
@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httputil"
|
||||
"strings"
|
||||
|
||||
"github.com/cespare/xxhash/v2"
|
||||
@ -100,7 +101,12 @@ func buildFn(r configRemote) func(*http.Request, []byte) ([]byte, error) {
|
||||
for _, v := range r.PassHeaders {
|
||||
h.Set(v, inReq.Header.Get(v))
|
||||
}
|
||||
req.Header = h
|
||||
if len(h) != 0 {
|
||||
if host, ok := h["Host"]; ok {
|
||||
req.Host = host[0]
|
||||
}
|
||||
req.Header = h
|
||||
}
|
||||
|
||||
res, err := client.Do(req)
|
||||
if err != nil {
|
||||
@ -108,6 +114,26 @@ func buildFn(r configRemote) func(*http.Request, []byte) ([]byte, error) {
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
if r.Debug {
|
||||
reqDump, err := httputil.DumpRequestOut(req, true)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
resDump, err := httputil.DumpResponse(res, true)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
logger.Warn().Msgf("Remote Request Debug:\n%s\n%s",
|
||||
reqDump, resDump)
|
||||
}
|
||||
|
||||
if res.StatusCode != 200 {
|
||||
return nil,
|
||||
fmt.Errorf("server responded with a %d", res.StatusCode)
|
||||
}
|
||||
|
||||
b, err := ioutil.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
32
serv/serv.go
32
serv/serv.go
@ -15,7 +15,7 @@ import (
|
||||
"github.com/dosco/super-graph/qcode"
|
||||
"github.com/go-pg/pg"
|
||||
"github.com/gobuffalo/flect"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
@ -30,7 +30,7 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
logger *logrus.Logger
|
||||
logger *zerolog.Logger
|
||||
conf *config
|
||||
db *pg.DB
|
||||
qcompile *qcode.Compiler
|
||||
@ -38,15 +38,19 @@ var (
|
||||
authFailBlock int
|
||||
)
|
||||
|
||||
func initLog() *logrus.Logger {
|
||||
log := logrus.New()
|
||||
log.Formatter = new(logrus.TextFormatter)
|
||||
log.Formatter.(*logrus.TextFormatter).DisableColors = false
|
||||
log.Formatter.(*logrus.TextFormatter).DisableTimestamp = true
|
||||
log.Level = logrus.TraceLevel
|
||||
log.Out = os.Stdout
|
||||
func initLog() *zerolog.Logger {
|
||||
logger := zerolog.New(zerolog.ConsoleWriter{Out: os.Stderr}).
|
||||
With().Caller().Logger()
|
||||
|
||||
return log
|
||||
return &logger
|
||||
/*
|
||||
log := logrus.New()
|
||||
logger.Formatter = new(logrus.TextFormatter)
|
||||
logger.Formatter.(*logrus.TextFormatter).DisableColors = false
|
||||
logger.Formatter.(*logrus.TextFormatter).DisableTimestamp = true
|
||||
logger.Level = logrus.TraceLevel
|
||||
logger.Out = os.Stdout
|
||||
*/
|
||||
}
|
||||
|
||||
func initConf() (*config, error) {
|
||||
@ -178,17 +182,17 @@ func Init() {
|
||||
|
||||
conf, err = initConf()
|
||||
if err != nil {
|
||||
logger.Fatal(err)
|
||||
logger.Fatal().Err(err)
|
||||
}
|
||||
|
||||
db, err = initDB(conf)
|
||||
if err != nil {
|
||||
logger.Fatal(err)
|
||||
logger.Fatal().Err(err)
|
||||
}
|
||||
|
||||
qcompile, pcompile, err = initCompilers(conf)
|
||||
if err != nil {
|
||||
logger.Fatal(err)
|
||||
logger.Fatal().Err(err)
|
||||
}
|
||||
|
||||
initResolvers()
|
||||
@ -219,7 +223,7 @@ func startHTTP() {
|
||||
|
||||
srv.RegisterOnShutdown(func() {
|
||||
if err := db.Close(); err != nil {
|
||||
logger.Println(err)
|
||||
logger.Error().Err(err)
|
||||
}
|
||||
})
|
||||
|
||||
|
Reference in New Issue
Block a user