mirror of
https://github.com/fosrl/olm.git
synced 2025-12-05 19:17:35 -06:00
Break out start and stop API
This commit is contained in:
15
api/api.go
15
api/api.go
@@ -114,6 +114,7 @@ func (s *API) Start() error {
|
||||
mux.HandleFunc("/switch-org", s.handleSwitchOrg)
|
||||
mux.HandleFunc("/disconnect", s.handleDisconnect)
|
||||
mux.HandleFunc("/exit", s.handleExit)
|
||||
mux.HandleFunc("/health", s.handleHealth)
|
||||
|
||||
s.server = &http.Server{
|
||||
Handler: mux,
|
||||
@@ -309,6 +310,20 @@ func (s *API) handleStatus(w http.ResponseWriter, r *http.Request) {
|
||||
json.NewEncoder(w).Encode(resp)
|
||||
}
|
||||
|
||||
// handleHealth handles the /health endpoint
|
||||
func (s *API) handleHealth(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != http.MethodGet {
|
||||
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
|
||||
return
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.WriteHeader(http.StatusOK)
|
||||
json.NewEncoder(w).Encode(map[string]string{
|
||||
"status": "ok",
|
||||
})
|
||||
}
|
||||
|
||||
// handleExit handles the /exit endpoint
|
||||
func (s *API) handleExit(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != http.MethodPost {
|
||||
|
||||
3
main.go
3
main.go
@@ -214,6 +214,9 @@ func runOlmMainWithArgs(ctx context.Context, args []string) {
|
||||
}
|
||||
|
||||
olm.Init(ctx, olmConfig)
|
||||
if err := olm.StartApi(); err != nil {
|
||||
logger.Fatal("Failed to start API server: %v", err)
|
||||
}
|
||||
|
||||
if config.ID != "" && config.Secret != "" && config.Endpoint != "" {
|
||||
tunnelConfig := olm.TunnelConfig{
|
||||
|
||||
24
olm/olm.go
24
olm/olm.go
@@ -101,10 +101,6 @@ func Init(ctx context.Context, config GlobalConfig) {
|
||||
|
||||
apiServer.SetVersion(config.Version)
|
||||
|
||||
if err := apiServer.Start(); err != nil {
|
||||
logger.Fatal("Failed to start HTTP server: %v", err)
|
||||
}
|
||||
|
||||
// Set up API handlers
|
||||
apiServer.SetHandlers(
|
||||
// onConnect
|
||||
@@ -907,3 +903,23 @@ func StopTunnel() {
|
||||
|
||||
logger.Info("Tunnel process stopped")
|
||||
}
|
||||
|
||||
func StopApi() error {
|
||||
if apiServer != nil {
|
||||
err := apiServer.Stop()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to stop API server: %w", err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func StartApi() error {
|
||||
if apiServer != nil {
|
||||
err := apiServer.Start()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to start API server: %w", err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user