"git.curoverse.com/arvados.git/sdk/go/arvados"
)
-type Config struct {
+type wsConfig struct {
Client arvados.Client
Postgres pgConfig
Listen string
ServerEventQueue int
}
-func DefaultConfig() Config {
- return Config{
+func defaultConfig() wsConfig {
+ return wsConfig{
Client: arvados.Client{
APIHost: "localhost:443",
},
eventsOut uint64
}
-var _ DebugStatuser = (*pgEventSource)(nil)
+var _ debugStatuser = (*pgEventSource)(nil)
func (ps *pgEventSource) setup() {
ps.shutdown = make(chan error, 1)
}
// loggerConfig sets up logging to behave as configured.
-func loggerConfig(cfg Config) {
+func loggerConfig(cfg wsConfig) {
lvl, err := logrus.ParseLevel(cfg.LogLevel)
if err != nil {
logrus.Fatal(err)
configPath := flag.String("config", "/etc/arvados/ws/ws.yml", "`path` to config file")
dumpConfig := flag.Bool("dump-config", false, "show current configuration and exit")
- cfg := DefaultConfig()
+ cfg := defaultConfig()
flag.Parse()
err := config.LoadFile(&cfg, *configPath)
Handler: &router{
Config: &cfg,
eventSource: eventSource,
- newPermChecker: func() permChecker { return NewPermChecker(cfg.Client) },
+ newPermChecker: func() permChecker { return newPermChecker(cfg.Client) },
},
}
// Bootstrap the eventSource by attaching a dummy subscriber
Check(uuid string) (bool, error)
}
-func NewPermChecker(ac arvados.Client) permChecker {
+func newPermChecker(ac arvados.Client) permChecker {
ac.AuthToken = ""
return &cachingPermChecker{
Client: &ac,
}
type router struct {
- Config *Config
+ Config *wsConfig
eventSource eventSource
newPermChecker func() permChecker
ReqsActive int64
}
-type DebugStatuser interface {
+type debugStatuser interface {
DebugStatus() interface{}
}
QueueSize: rtr.Config.ClientEventQueue,
}
rtr.mux = http.NewServeMux()
- rtr.mux.Handle("/websocket", rtr.makeServer(NewSessionV0))
- rtr.mux.Handle("/arvados/v1/events.ws", rtr.makeServer(NewSessionV1))
+ rtr.mux.Handle("/websocket", rtr.makeServer(newSessionV0))
+ rtr.mux.Handle("/arvados/v1/events.ws", rtr.makeServer(newSessionV1))
rtr.mux.HandleFunc("/debug.json", jsonHandler(rtr.DebugStatus))
rtr.mux.HandleFunc("/status.json", jsonHandler(rtr.Status))
}
"HTTP": rtr.status,
"Outgoing": rtr.handler.DebugStatus(),
}
- if es, ok := rtr.eventSource.(DebugStatuser); ok {
+ if es, ok := rtr.eventSource.(debugStatuser); ok {
s["EventSource"] = es.DebugStatus()
}
return s
setupOnce sync.Once
}
-func NewSessionV0(ws wsConn, sendq chan<- interface{}, db *sql.DB, pc permChecker) (session, error) {
+func newSessionV0(ws wsConn, sendq chan<- interface{}, db *sql.DB, pc permChecker) (session, error) {
sess := &v0session{
sendq: sendq,
ws: ws,
"errors"
)
-func NewSessionV1(ws wsConn, sendq chan<- interface{}, db *sql.DB, pc permChecker) (session, error) {
+func newSessionV1(ws wsConn, sendq chan<- interface{}, db *sql.DB, pc permChecker) (session, error) {
return nil, errors.New("Not implemented")
}