mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2025-12-19 05:36:17 +01:00
Make NATS API subjects configurable
This commit is contained in:
@@ -13,6 +13,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/ClusterCockpit/cc-backend/internal/archiver"
|
||||
"github.com/ClusterCockpit/cc-backend/internal/config"
|
||||
"github.com/ClusterCockpit/cc-backend/internal/importer"
|
||||
"github.com/ClusterCockpit/cc-backend/internal/repository"
|
||||
"github.com/ClusterCockpit/cc-backend/pkg/nats"
|
||||
@@ -20,13 +21,6 @@ import (
|
||||
"github.com/ClusterCockpit/cc-lib/schema"
|
||||
)
|
||||
|
||||
// NATS subject constants for Job and Node APIs.
|
||||
const (
|
||||
SubjectJobStart = "cc.job.start"
|
||||
SubjectJobStop = "cc.job.stop"
|
||||
SubjectNodeState = "cc.node.state"
|
||||
)
|
||||
|
||||
// NatsAPI provides NATS subscription-based handlers for Job and Node operations.
|
||||
// It mirrors the functionality of the REST API but uses NATS messaging.
|
||||
type NatsAPI struct {
|
||||
@@ -52,19 +46,24 @@ func (api *NatsAPI) StartSubscriptions() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
if err := client.Subscribe(SubjectJobStart, api.handleStartJob); err != nil {
|
||||
return err
|
||||
}
|
||||
if config.Keys.APISubjects != nil {
|
||||
|
||||
if err := client.Subscribe(SubjectJobStop, api.handleStopJob); err != nil {
|
||||
return err
|
||||
}
|
||||
s := config.Keys.APISubjects
|
||||
|
||||
if err := client.Subscribe(SubjectNodeState, api.handleNodeState); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := client.Subscribe(s.SubjectJobStart, api.handleStartJob); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cclog.Info("NATS API subscriptions started")
|
||||
if err := client.Subscribe(s.SubjectJobStop, api.handleStopJob); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := client.Subscribe(s.SubjectNodeState, api.handleNodeState); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cclog.Info("NATS API subscriptions started")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user