67 lines
1.5 KiB
Go
67 lines
1.5 KiB
Go
package util
|
|
|
|
import (
|
|
log "github.com/cihub/seelog"
|
|
|
|
"infini.sh/framework/core/event"
|
|
"infini.sh/framework/core/task"
|
|
"infini.sh/framework/core/util"
|
|
)
|
|
|
|
func WriteLog(taskItem *task.Task, taskResult *task.TaskResult, message string) {
|
|
labels := util.MapStr{}
|
|
labels.Update(util.MapStr(taskItem.Metadata.Labels))
|
|
labels["task_type"] = taskItem.Metadata.Type
|
|
labels["task_id"] = taskItem.ID
|
|
labels["parent_task_id"] = taskItem.ParentId
|
|
labels["retry_no"] = taskItem.RetryTimes
|
|
event.SaveLog(event.Event{
|
|
Metadata: event.EventMetadata{
|
|
Category: "task",
|
|
Name: "logging",
|
|
Datatype: "event",
|
|
Labels: labels,
|
|
},
|
|
Fields: util.MapStr{
|
|
"task": util.MapStr{
|
|
"logging": util.MapStr{
|
|
"config": taskItem.ConfigString,
|
|
"status": taskItem.Status,
|
|
"message": message,
|
|
"result": taskResult,
|
|
},
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
var runningTaskStatus = []string{task.StatusRunning, task.StatusReady, task.StatusReady1}
|
|
|
|
func IsRunningState(status string) bool {
|
|
return util.StringInArray(runningTaskStatus, status)
|
|
}
|
|
|
|
func GetTaskConfig(task *task.Task, config interface{}) error {
|
|
if task.Config_ == nil {
|
|
return util.FromJSONBytes([]byte(task.ConfigString), config)
|
|
}
|
|
buf, err := util.ToJSONBytes(task.Config_)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return util.FromJSONBytes(buf, config)
|
|
}
|
|
|
|
func GetMapIntValue(m util.MapStr, key string) int64 {
|
|
v, err := m.GetValue(key)
|
|
if err != nil {
|
|
return 0
|
|
}
|
|
vv, err := util.ExtractInt(v)
|
|
if err != nil {
|
|
log.Errorf("got %s but failed to extract, err: %v", key, err)
|
|
return 0
|
|
}
|
|
return vv
|
|
}
|