1
0
mirror of https://github.com/alice-lg/alice-lg.git synced 2024-05-11 05:55:03 +00:00
alice-lg-alice-lg/pkg/http/api_endpoints_meta.go

72 lines
1.8 KiB
Go
Raw Normal View History

2021-10-22 22:40:03 +02:00
package http
2018-09-22 15:51:20 +02:00
import (
2021-03-22 16:50:08 +01:00
"net/http"
2018-09-22 15:51:20 +02:00
"github.com/julienschmidt/httprouter"
2021-03-22 16:50:08 +01:00
"github.com/alice-lg/alice-lg/pkg/api"
2018-09-22 15:51:20 +02:00
)
// Handle Status Endpoint, this is intended for
// monitoring and service health checks
2021-10-26 23:11:42 +02:00
func (s *Server) apiStatusShow(
2021-12-07 19:11:11 +01:00
req *http.Request,
2021-10-26 23:11:42 +02:00
_params httprouter.Params,
2021-10-27 17:54:51 +00:00
) (response, error) {
2021-12-07 19:11:11 +01:00
ctx := req.Context()
status, err := CollectAppStatus(ctx, s.routesStore, s.neighborsStore)
2018-09-22 15:51:20 +02:00
return status, err
}
// Handle status
2021-10-26 23:11:42 +02:00
func (s *Server) apiStatus(
_req *http.Request,
params httprouter.Params,
2021-10-27 17:54:51 +00:00
) (response, error) {
2021-07-02 14:30:43 +02:00
rsID, err := validateSourceID(params.ByName("id"))
2018-09-22 15:51:20 +02:00
if err != nil {
return nil, err
}
2019-01-11 20:06:03 +01:00
2021-10-26 23:11:42 +02:00
source := s.cfg.SourceInstanceByID(rsID)
2019-01-11 20:06:03 +01:00
if source == nil {
2021-10-26 23:11:42 +02:00
return nil, ErrSourceNotFound
2019-01-11 20:06:03 +01:00
}
2018-09-22 15:51:20 +02:00
result, err := source.Status()
2018-10-02 14:52:47 +02:00
if err != nil {
2021-10-27 17:54:51 +00:00
s.logSourceError("status", rsID, err)
2018-10-02 14:52:47 +02:00
}
2018-09-22 15:51:20 +02:00
return result, err
}
// Handle Config Endpoint
2021-10-26 23:11:42 +02:00
func (s *Server) apiConfigShow(
_req *http.Request,
_params httprouter.Params,
2021-10-27 17:54:51 +00:00
) (response, error) {
2021-10-26 23:11:42 +02:00
result := api.ConfigResponse{
Asn: s.cfg.Server.Asn,
2021-10-27 14:48:52 +00:00
BGPCommunities: s.cfg.UI.BGPCommunities,
2021-10-26 23:11:42 +02:00
RejectReasons: s.cfg.UI.RoutesRejections.Reasons,
Noexport: api.Noexport{
LoadOnDemand: s.cfg.UI.RoutesNoexports.LoadOnDemand,
},
NoexportReasons: s.cfg.UI.RoutesNoexports.Reasons,
RejectCandidates: api.RejectCandidates{
Communities: s.cfg.UI.RoutesRejectCandidates.Communities,
},
2021-10-27 14:48:52 +00:00
Rpki: api.Rpki(s.cfg.UI.Rpki),
2021-10-26 23:11:42 +02:00
RoutesColumns: s.cfg.UI.RoutesColumns,
RoutesColumnsOrder: s.cfg.UI.RoutesColumnsOrder,
NeighborsColumns: s.cfg.UI.NeighborsColumns,
NeighborsColumnsOrder: s.cfg.UI.NeighborsColumnsOrder,
LookupColumns: s.cfg.UI.LookupColumns,
LookupColumnsOrder: s.cfg.UI.LookupColumnsOrder,
PrefixLookupEnabled: s.cfg.Server.EnablePrefixLookup,
2018-09-22 15:51:20 +02:00
}
2021-10-26 23:11:42 +02:00
return result, nil
2018-09-22 15:51:20 +02:00
}