mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2025-12-31 02:46:16 +01:00
Integrate NATS API.
Only start either REST start/stop API or NATS start/stop API
This commit is contained in:
@@ -49,9 +49,10 @@ const (
|
|||||||
|
|
||||||
// Server encapsulates the HTTP server state and dependencies
|
// Server encapsulates the HTTP server state and dependencies
|
||||||
type Server struct {
|
type Server struct {
|
||||||
router *mux.Router
|
router *mux.Router
|
||||||
server *http.Server
|
server *http.Server
|
||||||
apiHandle *api.RestAPI
|
restAPIHandle *api.RestAPI
|
||||||
|
natsAPIHandle *api.NatsAPI
|
||||||
}
|
}
|
||||||
|
|
||||||
func onFailureResponse(rw http.ResponseWriter, r *http.Request, err error) {
|
func onFailureResponse(rw http.ResponseWriter, r *http.Request, err error) {
|
||||||
@@ -104,7 +105,7 @@ func (s *Server) init() error {
|
|||||||
|
|
||||||
authHandle := auth.GetAuthInstance()
|
authHandle := auth.GetAuthInstance()
|
||||||
|
|
||||||
s.apiHandle = api.New()
|
s.restAPIHandle = api.New()
|
||||||
|
|
||||||
info := map[string]any{}
|
info := map[string]any{}
|
||||||
info["hasOpenIDConnect"] = false
|
info["hasOpenIDConnect"] = false
|
||||||
@@ -240,13 +241,20 @@ func (s *Server) init() error {
|
|||||||
|
|
||||||
// Mount all /monitoring/... and /api/... routes.
|
// Mount all /monitoring/... and /api/... routes.
|
||||||
routerConfig.SetupRoutes(secured, buildInfo)
|
routerConfig.SetupRoutes(secured, buildInfo)
|
||||||
s.apiHandle.MountAPIRoutes(securedapi)
|
s.restAPIHandle.MountAPIRoutes(securedapi)
|
||||||
s.apiHandle.MountUserAPIRoutes(userapi)
|
s.restAPIHandle.MountUserAPIRoutes(userapi)
|
||||||
s.apiHandle.MountConfigAPIRoutes(configapi)
|
s.restAPIHandle.MountConfigAPIRoutes(configapi)
|
||||||
s.apiHandle.MountFrontendAPIRoutes(frontendapi)
|
s.restAPIHandle.MountFrontendAPIRoutes(frontendapi)
|
||||||
|
|
||||||
|
if config.Keys.APISubjects != nil {
|
||||||
|
s.natsAPIHandle = api.NewNatsAPI()
|
||||||
|
if err := s.natsAPIHandle.StartSubscriptions(); err != nil {
|
||||||
|
return fmt.Errorf("starting NATS subscriptions: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if memorystore.InternalCCMSFlag {
|
if memorystore.InternalCCMSFlag {
|
||||||
s.apiHandle.MountMetricStoreAPIRoutes(metricstoreapi)
|
s.restAPIHandle.MountMetricStoreAPIRoutes(metricstoreapi)
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.Keys.EmbedStaticFiles {
|
if config.Keys.EmbedStaticFiles {
|
||||||
|
|||||||
@@ -79,8 +79,11 @@ func (api *RestAPI) MountAPIRoutes(r *mux.Router) {
|
|||||||
// Slurm node state
|
// Slurm node state
|
||||||
r.HandleFunc("/nodestate/", api.updateNodeStates).Methods(http.MethodPost, http.MethodPut)
|
r.HandleFunc("/nodestate/", api.updateNodeStates).Methods(http.MethodPost, http.MethodPut)
|
||||||
// Job Handler
|
// Job Handler
|
||||||
r.HandleFunc("/jobs/start_job/", api.startJob).Methods(http.MethodPost, http.MethodPut)
|
if config.Keys.APISubjects == nil {
|
||||||
r.HandleFunc("/jobs/stop_job/", api.stopJobByRequest).Methods(http.MethodPost, http.MethodPut)
|
cclog.Info("Enabling REST start/stop job API")
|
||||||
|
r.HandleFunc("/jobs/start_job/", api.startJob).Methods(http.MethodPost, http.MethodPut)
|
||||||
|
r.HandleFunc("/jobs/stop_job/", api.stopJobByRequest).Methods(http.MethodPost, http.MethodPut)
|
||||||
|
}
|
||||||
r.HandleFunc("/jobs/", api.getJobs).Methods(http.MethodGet)
|
r.HandleFunc("/jobs/", api.getJobs).Methods(http.MethodGet)
|
||||||
r.HandleFunc("/jobs/{id}", api.getJobByID).Methods(http.MethodPost)
|
r.HandleFunc("/jobs/{id}", api.getJobByID).Methods(http.MethodPost)
|
||||||
r.HandleFunc("/jobs/{id}", api.getCompleteJobByID).Methods(http.MethodGet)
|
r.HandleFunc("/jobs/{id}", api.getCompleteJobByID).Methods(http.MethodGet)
|
||||||
|
|||||||
Reference in New Issue
Block a user