Skip to content

Commit

Permalink
better error handling (#49)
Browse files Browse the repository at this point in the history
  • Loading branch information
majst01 authored Jun 12, 2024
1 parent 7ed773b commit 59fb41e
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 12 deletions.
14 changes: 6 additions & 8 deletions internal/console/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
"io"
"log/slog"
"os"
"runtime"
"strings"
"sync"
"time"
Expand All @@ -29,13 +28,13 @@ type consoleServer struct {
createdAts *sync.Map
}

func NewServer(log *slog.Logger, spec *Specification, client metalgo.Client) (*consoleServer, error) {
func NewServer(log *slog.Logger, spec *Specification, client metalgo.Client) *consoleServer {
return &consoleServer{
log: log,
client: client,
spec: spec,
createdAts: new(sync.Map),
}, nil
}
}

func (cs *consoleServer) userClient(token string) (metalgo.Client, error) {
Expand All @@ -47,7 +46,7 @@ func (cs *consoleServer) userClient(token string) (metalgo.Client, error) {
}

// Run starts ssh server and listen for console connections.
func (cs *consoleServer) Run() {
func (cs *consoleServer) Run() error {
s := &ssh.Server{
Addr: fmt.Sprintf(":%d", cs.spec.Port),
Handler: cs.sessionHandler,
Expand All @@ -56,17 +55,16 @@ func (cs *consoleServer) Run() {

hostKey, err := loadHostKey()
if err != nil {
cs.log.Error("failed to load host key", "error", err)
runtime.Goexit()
return fmt.Errorf("failed to load host key %w", err)
}
s.AddHostKey(hostKey)

cs.log.Info("starting ssh server", "port", cs.spec.Port)
err = s.ListenAndServe()
if err != nil {
cs.log.Error("unable to start listener", "error", err)
panic(err)
return fmt.Errorf("unable to start listener %w", err)
}
return nil
}

const oidcEnv = "LC_METAL_STACK_OIDC_TOKEN"
Expand Down
6 changes: 2 additions & 4 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,8 @@ func main() {
}

log.Info("metal-console", "version", v.V.String(), "port", spec.Port, "metal-api", spec.MetalAPIURL, "devmode", spec.DevMode())
s, err := console.NewServer(log, spec, client)
if err != nil {
log.Error("failed to create console server", "error", err)
if err := console.NewServer(log, spec, client).Run(); err != nil {
log.Error("unable to start console server", "error", err)
panic(err)
}
s.Run()
}

0 comments on commit 59fb41e

Please sign in to comment.