Monitord Acces Change
This commit is contained in:
@@ -1,12 +1,15 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"oc-monitord/conf"
|
||||
"sync"
|
||||
|
||||
oclib "cloud.o-forge.io/core/oc-lib"
|
||||
"cloud.o-forge.io/core/oc-lib/logs"
|
||||
"cloud.o-forge.io/core/oc-lib/models/common/enum"
|
||||
"cloud.o-forge.io/core/oc-lib/models/workflow_execution"
|
||||
"cloud.o-forge.io/core/oc-lib/tools"
|
||||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
@@ -36,6 +39,31 @@ func GetLogger() zerolog.Logger {
|
||||
return logger
|
||||
}
|
||||
|
||||
// EmitExecStateUpdate loads the execution, sets its state and emits a
|
||||
// CREATE_RESOURCE NATS event so oc-scheduler applies the change and fires
|
||||
// NotifyChange for the WebSocket streams.
|
||||
// Direct UpdateOne calls are replaced by this function so oc-scheduler remains
|
||||
// the single writer for WorkflowExecution.
|
||||
func EmitExecStateUpdate(execID string, state enum.BookingStatus) {
|
||||
adminReq := &tools.APIRequest{Admin: true}
|
||||
res, _, err := workflow_execution.NewAccessor(adminReq).LoadOne(execID)
|
||||
if err != nil || res == nil {
|
||||
return
|
||||
}
|
||||
exec := res.(*workflow_execution.WorkflowExecution)
|
||||
exec.State = state
|
||||
payload, marshalErr := json.Marshal(exec)
|
||||
if marshalErr != nil {
|
||||
return
|
||||
}
|
||||
tools.NewNATSCaller().SetNATSPub(tools.CREATE_RESOURCE, tools.NATSResponse{
|
||||
FromApp: "oc-monitord",
|
||||
Datatype: tools.WORKFLOW_EXECUTION,
|
||||
Method: int(tools.CREATE_RESOURCE),
|
||||
Payload: payload,
|
||||
})
|
||||
}
|
||||
|
||||
func GetWFLogger(workflowName string) zerolog.Logger {
|
||||
onceWF.Do(func(){
|
||||
wf_logger = logger.With().
|
||||
|
||||
Reference in New Issue
Block a user