Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
a3ee0b7900
|
|||
|
114c7101d6
|
|||
| 41476d04a2 | |||
| a5780449fc |
@@ -10,12 +10,12 @@
|
|||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
|
|
||||||
- name: Copy build to remote
|
# - name: Copy build to remote
|
||||||
ansible.builtin.copy:
|
# ansible.builtin.copy:
|
||||||
src: ev.service
|
# src: ev.service
|
||||||
dest: /etc/systemd/system/ev.service
|
# dest: /etc/systemd/system/ev.service
|
||||||
owner: root
|
# owner: root
|
||||||
group: root
|
# group: root
|
||||||
|
|
||||||
- name: Restart service
|
- name: Restart service
|
||||||
systemd:
|
systemd:
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ func (s *service) getPending(w http.ResponseWriter, r *http.Request, peerID stri
|
|||||||
if err != nil && !errors.Is(err, ev.ErrNotFound) {
|
if err != nil && !errors.Is(err, ev.ErrNotFound) {
|
||||||
span.RecordError(fmt.Errorf("peer not found: %w", err))
|
span.RecordError(fmt.Errorf("peer not found: %w", err))
|
||||||
w.WriteHeader(http.StatusNotFound)
|
w.WriteHeader(http.StatusNotFound)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var req *Request
|
var req *Request
|
||||||
@@ -223,6 +224,7 @@ func (s *service) getPending(w http.ResponseWriter, r *http.Request, peerID stri
|
|||||||
if req == nil {
|
if req == nil {
|
||||||
span.RecordError(fmt.Errorf("request not found"))
|
span.RecordError(fmt.Errorf("request not found"))
|
||||||
w.WriteHeader(http.StatusNoContent)
|
w.WriteHeader(http.StatusNoContent)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
negotiator := contentnegotiation.NewNegotiator("application/json", "text/environment", "text/plain", "text/html")
|
negotiator := contentnegotiation.NewNegotiator("application/json", "text/environment", "text/plain", "text/html")
|
||||||
@@ -304,7 +306,7 @@ func (s *service) getResults(w http.ResponseWriter, r *http.Request) {
|
|||||||
sort.Sort(sort.Reverse(requests))
|
sort.Sort(sort.Reverse(requests))
|
||||||
|
|
||||||
args := requestArgs(r)
|
args := requestArgs(r)
|
||||||
args.Requests = requests[:maxResults]
|
args.Requests = requests[:min(maxResults, len(requests))]
|
||||||
|
|
||||||
s.state.Use(ctx, func(ctx context.Context, state *state) error {
|
s.state.Use(ctx, func(ctx context.Context, state *state) error {
|
||||||
args.CountPeers = len(state.peers)
|
args.CountPeers = len(state.peers)
|
||||||
@@ -451,6 +453,7 @@ func (s *service) postResult(w http.ResponseWriter, r *http.Request, reqID strin
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
span.RecordError(fmt.Errorf("peer not found: %w", err))
|
span.RecordError(fmt.Errorf("peer not found: %w", err))
|
||||||
w.WriteHeader(http.StatusNotFound)
|
w.WriteHeader(http.StatusNotFound)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if peerResults.Has(reqID) {
|
if peerResults.Has(reqID) {
|
||||||
|
|||||||
@@ -91,17 +91,17 @@ func (s *service) Run(ctx context.Context) (err error) {
|
|||||||
subRes, e := s.es.EventStream().Subscribe(ctx, queueResults, 0)
|
subRes, e := s.es.EventStream().Subscribe(ctx, queueResults, 0)
|
||||||
errs = multierr.Append(errs, e)
|
errs = multierr.Append(errs, e)
|
||||||
|
|
||||||
|
if errs != nil {
|
||||||
|
return errs
|
||||||
|
}
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
err = multierr.Combine(errs, subReq.Close(ctx), subRes.Close(ctx))
|
err = multierr.Combine(err, subReq.Close(ctx), subRes.Close(ctx))
|
||||||
}()
|
}()
|
||||||
|
|
||||||
if errs != nil {
|
|
||||||
return errs
|
|
||||||
}
|
|
||||||
|
|
||||||
for {
|
for {
|
||||||
var events event.Events
|
var events event.Events
|
||||||
select {
|
select {
|
||||||
|
|||||||
@@ -4,10 +4,13 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"log"
|
"log"
|
||||||
|
"log/slog"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"go.sour.is/pkg/env"
|
||||||
"go.sour.is/pkg/lg"
|
"go.sour.is/pkg/lg"
|
||||||
"go.sour.is/pkg/service"
|
"go.sour.is/pkg/service"
|
||||||
)
|
)
|
||||||
@@ -27,6 +30,13 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
func run(ctx context.Context) error {
|
func run(ctx context.Context) error {
|
||||||
|
// TODO: make this configurable.
|
||||||
|
level := slog.LevelError
|
||||||
|
if ok, _ := strconv.ParseBool(env.Default("LOG_DEBUG", "FALSE")); ok {
|
||||||
|
level = slog.LevelDebug
|
||||||
|
}
|
||||||
|
slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: level})))
|
||||||
|
|
||||||
svc := &service.Harness{}
|
svc := &service.Harness{}
|
||||||
ctx, stop := lg.Init(ctx, appName)
|
ctx, stop := lg.Init(ctx, appName)
|
||||||
svc.OnStop(stop)
|
svc.OnStop(stop)
|
||||||
|
|||||||
Reference in New Issue
Block a user