Documentation ¶
Index ¶
- Constants
- Variables
- func CWL_input_check(job_input *cwl.Job_document, cwl_workflow *cwl.Workflow) (err error)
- func DBGetJobAcl(job_id string) (_acl acl.Acl, err error)
- func DbFindDistinct(q bson.M, d string) (results interface{}, err error)
- func DbUpdateJobField(job_id string, key string, value interface{}) (err error)
- func DeleteClientGroup(id string) (err error)
- func Deserialize_b64(encoding string, target interface{}) (err error)
- func GetAdminView(special string) (data []interface{}, err error)
- func GetJobCount(q bson.M) (count int, err error)
- func GetJobIdByTaskId_deprecated(taskid string) (jobid string, err error)
- func GetJobIdByWorkId_deprecated(workid string) (jobid string, err error)
- func GetTaskIdByWorkId_deprecated(workid string) (taskid string, err error)
- func HasInfoField(a string) bool
- func InitAwfMgr()
- func InitClientGroupDB()
- func InitJobDB()
- func InitProxyWorkChan()
- func InitReaper()
- func InitResMgr(service string)
- func IsFirstTask(taskid string) bool
- func IsValidUUID(uuid string) bool
- func NotifyWorkunitProcessed(work *Workunit, perf *WorkPerf) (err error)
- func PushOutputData(work *Workunit) (size int64, err error)
- func ReloadFromDisk(path string) (err error)
- func RemoveWorkFromClient(client *Client, workid Workunit_Unique_Identifier) (err error)
- func SetClientProfile(profile *Client)
- func UpdateJobState_deprecated(jobid string, newstate string, oldstates []string) (err error)
- type BaseResponse
- type CQMgr
- func (qm *CQMgr) AddClient(client *Client, lock bool) (err error)
- func (qm *CQMgr) CheckClient(client *Client) (ok bool, err error)
- func (qm *CQMgr) CheckoutWorkunits(req_policy string, client_id string, client *Client, available_bytes int64, ...) (workunits []*Workunit, err error)
- func (qm *CQMgr) ClientChecker()
- func (qm *CQMgr) ClientHandle()
- func (qm *CQMgr) ClientHeartBeat(id string, cg *ClientGroup, workerstate WorkerState) (hbmsg HeartbeatInstructions, err error)
- func (qm *CQMgr) ClientStatusChange_deprecated(client *Client, new_status string, client_write_lock bool) (err error)
- func (qm *CQMgr) DeleteClients(delete_clients []string)
- func (qm *CQMgr) EnqueueWorkunit(work *Workunit) (err error)
- func (qm *CQMgr) FetchDataToken(workid string, clientid string) (token string, err error)
- func (qm *CQMgr) GetAllClientsByUser(u *user.User) (clients []*Client, err error)
- func (qm *CQMgr) GetClient(id string, lock_clientmap bool) (client *Client, ok bool, err error)
- func (qm *CQMgr) GetClientByUser(id string, u *user.User) (client *Client, err error)
- func (qm *CQMgr) GetClientMap() *ClientMap
- func (qm *CQMgr) GetWorkById(id Workunit_Unique_Identifier) (workunit *Workunit, err error)
- func (qm *CQMgr) HasClient(id string, lock_clientmap bool) (has bool, err error)
- func (qm *CQMgr) ListClients() (ids []string, err error)
- func (qm *CQMgr) NotifyWorkStatus(notice Notice)
- func (qm *CQMgr) ReQueueWorkunitByClient(client *Client, client_write_lock bool) (err error)
- func (qm *CQMgr) RegisterNewClient(files FormFiles, cg *ClientGroup) (client *Client, err error)
- func (qm *CQMgr) RemoveClient(id string, lock bool) (err error)
- func (qm *CQMgr) ResumeClient(id string) (err error)
- func (qm *CQMgr) ResumeClientByUser(id string, u *user.User) (err error)
- func (qm *CQMgr) ResumeSuspendedClients() (count int, err error)
- func (qm *CQMgr) ResumeSuspendedClientsByUser(u *user.User) (count int)
- func (qm *CQMgr) ShowWorkunits(status string) (workunits []*Workunit, err error)
- func (qm *CQMgr) ShowWorkunitsByUser(status string, u *user.User) (workunits []*Workunit)
- func (qm *CQMgr) SuspendAllClients(reason string) (count int, err error)
- func (qm *CQMgr) SuspendAllClientsByUser(u *user.User, reason string) (count int, err error)
- func (qm *CQMgr) SuspendClient(id string, client *Client, reason string, client_write_lock bool) (err error)
- func (qm *CQMgr) SuspendClientByUser(id string, u *user.User, reason string) (err error)
- func (qm *CQMgr) UpdateSubClients(id string, count int) (err error)
- func (qm *CQMgr) UpdateSubClientsByUser(id string, count int, u *user.User)
- type CWL_workunit
- type Client
- func (this *Client) Add(workid Workunit_Unique_Identifier) (err error)
- func (cl *Client) Append_Skip_work(workid Workunit_Unique_Identifier, write_lock bool) (err error)
- func (cl *Client) Contains_Skip_work_nolock(workid string) (c bool)
- func (cl *Client) Get_Ack() (ack CoAck, err error)
- func (cl *Client) Get_Busy(do_read_lock bool) (b bool, err error)
- func (cl *Client) Get_Group(do_read_lock bool) (g string, err error)
- func (cl *Client) Get_Id(do_read_lock bool) (s string, err error)
- func (cl *Client) Get_Last_failed() (count int, err error)
- func (cl *Client) Get_New_Status(do_read_lock bool) (s string, err error)
- func (cl *Client) Get_Suspended(do_read_lock bool) (s bool, err error)
- func (cl *Client) Get_Total_checkout() (count int, err error)
- func (cl *Client) Get_Total_completed() (count int, err error)
- func (cl *Client) Get_Total_failed() (count int, err error)
- func (cl *Client) Increment_last_failed(write_lock bool) (value int, err error)
- func (cl *Client) Increment_total_checkout(err error)
- func (cl *Client) Increment_total_completed() (err error)
- func (cl *Client) Increment_total_failed(write_lock bool) (err error)
- func (client *Client) Init()
- func (cl *Client) Marshal() (result []byte, err error)
- func (cl *Client) Resume(write_lock bool) (err error)
- func (cl *Client) Set_Busy(b bool, do_write_lock bool) (err error)
- func (cl *Client) Set_Online(o bool, write_lock bool) (err error)
- func (cl *Client) Set_Status_deprecated(s string, write_lock bool) (err error)
- func (cl *Client) Set_Suspended(s bool, reason string, write_lock bool) (err error)
- func (cl *Client) Suspend(reason string, write_lock bool) (err error)
- func (cl *Client) Update_Status(write_lock bool) (err error)
- type ClientGroup
- func CreateClientGroup(name string, u *user.User) (cg *ClientGroup, err error)
- func LoadClientGroup(id string) (clientgroup *ClientGroup, err error)
- func LoadClientGroupByName(name string) (clientgroup *ClientGroup, err error)
- func LoadClientGroupByToken(token string) (clientgroup *ClientGroup, err error)
- type ClientGroups
- type ClientMap
- func (cl *ClientMap) Add(client *Client, lock bool) (err error)
- func (cl *ClientMap) Delete(client_id string, lock bool) (err error)
- func (cl *ClientMap) Get(client_id string, lock bool) (client *Client, ok bool, err error)
- func (cl *ClientMap) GetClientIds() (ids []string, err error)
- func (cl *ClientMap) GetClients() (clients []*Client, err error)
- func (cl *ClientMap) Has(client_id string, lock bool) (ok bool, err error)
- type ClientMgr
- type ClientWorkMgr
- type Clients
- type CoAck
- type CoReq
- type Command
- type Command_p
- type Environ_p
- type Envs
- type Filter_work_stats
- type FormFile
- type FormFiles
- type HeartbeatInstructions
- type Helper
- type IO
- type IOmap
- type Info
- type Job
- func CWL2AWE(_user *user.User, files FormFiles, job_input *cwl.Job_document, ...) (job *Job, err error)
- func CreateJobImport(u *user.User, file FormFile) (job *Job, err error)
- func CreateJobUpload(u *user.User, files FormFiles) (job *Job, err error)
- func GetJob(id string) (job *Job, err error)
- func JobDepToJob(jobDep *JobDep) (job *Job, err error)
- func LoadJob(id string) (job *Job, err error)
- func NewJob() (job *Job)
- func ReadJobFile(filename string) (job *Job, err error)
- func (job *Job) AddTask(task *Task) (err error)
- func (job *Job) AddWorkflowInstance(id string, inputs cwl.Job_document, remain_tasks int) (err error)
- func (job *Job) Decrease_WorkflowInstance_RemainTasks(id string) (remain_tasks int, err error)
- func (job *Job) Delete() (err error)
- func (job *Job) FilePath() (path string, err error)
- func (job *Job) GetDataToken() (token string)
- func (job *Job) GetJobLogs() (jlog *JobLog, err error)
- func (job *Job) GetPrivateEnv(taskid string) (env map[string]string, err error)
- func (job *Job) GetRemainTasks() (remain_tasks int, err error)
- func (job *Job) GetState(do_lock bool) (state string, err error)
- func (job *Job) GetTasks() (tasks []*Task, err error)
- func (job *Job) GetWorkflowInstance(id string, do_read_lock bool) (wi *WorkflowInstance, err error)
- func (job *Job) GetWorkflowInstanceIndex(id string, do_read_lock bool) (index int, err error)
- func (job *Job) IncrementRemainTasks(inc int) (err error)
- func (job *Job) IncrementResumed(inc int) (err error)
- func (job *Job) Init() (changed bool, err error)
- func (job *Job) Mkdir() (err error)
- func (job *Job) NumTask() int
- func (job *Job) Path() (path string, err error)
- func (job *Job) RLockRecursive()
- func (job *Job) RUnlockRecursive()
- func (job *Job) Rmdir() (err error)
- func (job *Job) Save() (err error)
- func (job *Job) SaveToDisk() (err error)
- func (job *Job) SetClientgroups(clientgroups string) (err error)
- func (job *Job) SetDataToken(token string) (err error)
- func (job *Job) SetError(newError *JobError) (err error)
- func (job *Job) SetExpiration(expire string) (err error)
- func (job *Job) SetFile(file FormFile) (err error)
- func (job *Job) SetPipeline(pipeline string) (err error)
- func (job *Job) SetPriority(priority int) (err error)
- func (job *Job) SetRemainTasks(remain_tasks int) (err error)
- func (job *Job) SetState(newState string, oldstates []string) (err error)
- func (job *Job) Set_WorkflowInstance_Outputs(id string, outputs cwl.Job_document) (err error)
- func (job *Job) TaskList() []*Task
- func (job *Job) UpdateFile(files FormFiles, field string) (err error)
- type JobDep
- type JobError
- type JobLog
- type JobMap
- type JobMgr
- type JobMin
- type JobPerf
- type JobRaw
- type JobReaper
- type Job_Acl
- type Job_p
- type Jobs
- func (n *Jobs) GetAll(q bson.M, order string, direction string, do_init bool) (err error)
- func (n *Jobs) GetAllLimitOffset(q bson.M, limit int, offset int) (err error)
- func (n *Jobs) GetAllRecent(q bson.M, recent int, do_init bool) (count int, err error)
- func (n *Jobs) GetAllUnsorted(q bson.M) (err error)
- func (n *Jobs) GetJobAt(index int) *Job
- func (n *Jobs) GetPaginated(q bson.M, limit int, offset int, order string, direction string, do_init bool) (count int, err error)
- func (n *Jobs) Init() (changed_count int, err error)
- func (n *Jobs) Length() int
- func (n *Jobs) RLockRecursive()
- func (n *Jobs) RUnlockRecursive()
- type Notice
- type PartInfo
- type Pipeline
- type ProxyMgr
- func (qm *ProxyMgr) ClientChecker()
- func (qm *ProxyMgr) ClientHandle()
- func (qm *ProxyMgr) DeleteJobByUser(jobid string, u *user.User, full bool) (err error)
- func (qm *ProxyMgr) DeleteSuspendedJobsByUser(u *user.User, full bool) (num int)
- func (qm *ProxyMgr) DeleteZombieJobsByUser(u *user.User, full bool) (num int)
- func (qm *ProxyMgr) EnqueueTasksByJobId(jobid string) (err error)
- func (qm *ProxyMgr) FetchDataToken(workunit *Workunit, clientid string) (token string, err error)
- func (qm *ProxyMgr) FetchPrivateEnv(workid string, clientid string) (env map[string]string, err error)
- func (qm *ProxyMgr) FinalizeWorkPerf(string, string) (err error)
- func (qm *ProxyMgr) GetActiveJobs() map[string]bool
- func (qm *ProxyMgr) GetJsonStatus() (status map[string]map[string]int, err error)
- func (qm *ProxyMgr) GetQueue(name string) interface{}
- func (qm *ProxyMgr) GetReportMsg(string, string) (report string, err error)
- func (qm *ProxyMgr) GetSuspendJobs() map[string]bool
- func (qm *ProxyMgr) GetTextStatus() string
- func (qm *ProxyMgr) IsJobRegistered(id string) bool
- func (qm *ProxyMgr) JobRegister() (jid string, err error)
- func (qm *ProxyMgr) Lock()
- func (qm *ProxyMgr) NoticeHandle()
- func (qm *ProxyMgr) QueueStatus() string
- func (qm *ProxyMgr) RLock()
- func (qm *ProxyMgr) RUnlock()
- func (qm *ProxyMgr) RecomputeJob(jobid string, stage string) (err error)
- func (qm *ProxyMgr) RecoverJob(id string, job *Job) (err error)
- func (qm *ProxyMgr) RecoverJobs() (recovered int, total int, err error)
- func (qm *ProxyMgr) RegisterNewClient(files FormFiles, cg *ClientGroup) (client *Client, err error)
- func (qm *ProxyMgr) ResubmitJob(id string) (err error)
- func (qm *ProxyMgr) ResumeQueue()
- func (qm *ProxyMgr) ResumeSuspendedJobByUser(id string, u *user.User) (recovered bool, err error)
- func (qm *ProxyMgr) ResumeSuspendedJobsByUser(u *user.User) (num int)
- func (qm *ProxyMgr) SaveStdLog(string, string, string) (err error)
- func (qm *ProxyMgr) SuspendJob(jobid string, jerror *JobError) (err error)
- func (qm *ProxyMgr) SuspendQueue()
- func (qm *ProxyMgr) TaskHandle()
- func (qm *ProxyMgr) Unlock()
- func (qm *ProxyMgr) UpdateQueueLoop()
- func (qm *ProxyMgr) UpdateQueueToken(job *Job) (err error)
- type RWMutex
- func (m *RWMutex) Init(name string)
- func (m *RWMutex) Lock() (err error)
- func (m *RWMutex) LockNamed(name string) (err error)
- func (m *RWMutex) RCount() (c int)
- func (m *RWMutex) RList() (list []string)
- func (m *RWMutex) RLock()
- func (m *RWMutex) RLockAnon()
- func (m *RWMutex) RLockNamed(name string) (rl ReadLock, err error)
- func (m *RWMutex) RUnlock()
- func (m *RWMutex) RUnlockAnon()
- func (m *RWMutex) RUnlockNamed(rl ReadLock)
- func (m *RWMutex) Unlock()
- type ReadLock
- type RequestQueue
- type ResourceMgr
- type ServerMgr
- func (qm *ServerMgr) ClientHandle()
- func (qm *ServerMgr) CreateAndEnqueueWorkunits(task *Task, job *Job) (err error)
- func (qm *ServerMgr) CreateJobPerf(jobid string)
- func (qm *ServerMgr) CreateTaskPerf(task *Task) (err error)
- func (qm *ServerMgr) CreateWorkPerf(id Workunit_Unique_Identifier) (err error)
- func (qm *ServerMgr) DeleteJobByUser(jobid string, u *user.User, full bool) (err error)
- func (qm *ServerMgr) DeleteSuspendedJobsByUser(u *user.User, full bool) (num int)
- func (qm *ServerMgr) DeleteZombieJobsByUser(u *user.User, full bool) (num int)
- func (qm *ServerMgr) EnqueueTasksByJobId(jobid string) (err error)
- func (qm *ServerMgr) FetchDataToken(work_id Workunit_Unique_Identifier, clientid string) (token string, err error)
- func (qm *ServerMgr) FetchPrivateEnv(id Workunit_Unique_Identifier, clientid string) (env map[string]string, err error)
- func (qm *ServerMgr) FinalizeJobPerf(jobid string)
- func (qm *ServerMgr) FinalizeTaskPerf(task *Task) (err error)
- func (qm *ServerMgr) FinalizeWorkPerf(id Workunit_Unique_Identifier, reportfile string) (err error)
- func (qm *ServerMgr) GetActiveJobs() (ajobs map[string]bool)
- func (qm *ServerMgr) GetJsonStatus() (status map[string]map[string]int, err error)
- func (qm *ServerMgr) GetQueue(name string) interface{}
- func (qm *ServerMgr) GetReportMsg(id Workunit_Unique_Identifier, logname string) (report string, err error)
- func (qm *ServerMgr) GetStepInputObjects(job *Job, task_id Task_Unique_Identifier, ...) (workunit_input_map cwl.JobDocMap, err error)
- func (qm *ServerMgr) GetSuspendJobs() (sjobs map[string]bool)
- func (qm *ServerMgr) GetTextStatus() string
- func (qm *ServerMgr) IsJobRegistered(id string) bool
- func (qm *ServerMgr) Lock()
- func (qm *ServerMgr) LogJobPerf(jobid string)
- func (qm *ServerMgr) NoticeHandle()
- func (qm *ServerMgr) QueueStatus() string
- func (qm *ServerMgr) RLock()
- func (qm *ServerMgr) RUnlock()
- func (qm *ServerMgr) RecomputeJob(jobid string, stage string) (err error)
- func (qm *ServerMgr) RecoverJob(id string, job *Job) (recovered bool, err error)
- func (qm *ServerMgr) RecoverJobs() (recovered int, total int, err error)
- func (qm *ServerMgr) ResubmitJob(jobid string) (err error)
- func (qm *ServerMgr) ResumeQueue()
- func (qm *ServerMgr) ResumeSuspendedJobByUser(id string, u *user.User) (err error)
- func (qm *ServerMgr) ResumeSuspendedJobsByUser(u *user.User) (num int)
- func (qm *ServerMgr) SaveStdLog(id Workunit_Unique_Identifier, logname string, tmppath string) (err error)
- func (qm *ServerMgr) SuspendJob(jobid string, jerror *JobError) (err error)
- func (qm *ServerMgr) SuspendQueue()
- func (qm *ServerMgr) TaskHandle()
- func (qm *ServerMgr) Unlock()
- func (qm *ServerMgr) UpdateJobPerfStartTime(jobid string)
- func (qm *ServerMgr) UpdateJobTaskToInProgress(works []*Workunit) (err error)
- func (qm *ServerMgr) UpdateQueueLoop()
- func (qm *ServerMgr) UpdateQueueToken(job *Job) (err error)
- func (qm *ServerMgr) UpdateTaskPerfStartTime(task *Task) (err error)
- type StandardResponse
- type StringLocked
- type StructContainer
- type Task
- func (task *Task) CollectDependencies() (changed bool, err error)
- func (task *Task) CreateInputIndexes() (err error)
- func (task *Task) CreateOutputIndexes() (err error)
- func (task *Task) CreateWorkunits(qm *ServerMgr, job *Job) (wus []*Workunit, err error)
- func (task *Task) DeleteInput() (modified int)
- func (task *Task) DeleteLogs(logname string, writelock bool) (err error)
- func (task *Task) DeleteOutput() (modified int)
- func (task *Task) GetOutput(filename string) (output *IO, err error)
- func (task *Task) GetOutputs() (outputs []*IO, err error)
- func (task *Task) GetTaskLogs() (tlog *TaskLog, err error)
- func (task *Task) IncrementComputeTime(inc int) (err error)
- func (task *Task) IncrementRemainWork(inc int, writelock bool) (remainwork int, err error)
- func (task *Task) Init(job *Job) (changed bool, err error)
- func (task *Task) InitPartIndex() (err error)
- func (task *Task) ResetTaskTrue(name string) (err error)
- func (task *Task) SetRemainWork(num int, writelock bool) (err error)
- func (task *Task) SetResetTask(info *Info) (err error)
- func (task *Task) SetTaskType(type_str string, writelock bool) (err error)
- func (task *Task) ValidateDependants(qm *ServerMgr) (reason string, err error)
- func (task *Task) ValidateInputs(qm *ServerMgr) (err error)
- func (task *Task) ValidateOutputs() (err error)
- func (task *Task) ValidatePredata() (err error)
- type TaskDep
- type TaskLog
- type TaskMap
- func (tm *TaskMap) Add(task *Task) (modified bool, err error)
- func (tm *TaskMap) Delete(taskid Task_Unique_Identifier) (task *Task, ok bool)
- func (tm *TaskMap) Get(taskid Task_Unique_Identifier, lock bool) (task *Task, ok bool, err error)
- func (tm *TaskMap) GetTasks() (tasks []*Task, err error)
- func (tm *TaskMap) Has(taskid Task_Unique_Identifier, lock bool) (ok bool, err error)
- func (tm *TaskMap) Len() (length int, err error)
- type TaskPerf
- type TaskRaw
- func (task *TaskRaw) Finalize() (ok bool, err error)
- func (task *TaskRaw) GetChildren(qm *ServerMgr) (children []*Task, err error)
- func (task *TaskRaw) GetDependsOn() (dep []string, err error)
- func (task *TaskRaw) GetId(me string) (id Task_Unique_Identifier, err error)
- func (task *TaskRaw) GetJobId() (id string, err error)
- func (task *TaskRaw) GetParent() (p string, err error)
- func (task *TaskRaw) GetState() (state string, err error)
- func (task *TaskRaw) GetStateNamed(name string) (state string, err error)
- func (task *TaskRaw) GetTaskType() (type_str string, err error)
- func (task *TaskRaw) InitRaw(job *Job) (changed bool, err error)
- func (task *TaskRaw) SetCompletedDate(t time.Time, lock bool) (err error)
- func (task *TaskRaw) SetCreatedDate(t time.Time) (err error)
- func (task *TaskRaw) SetStartedDate(t time.Time) (err error)
- func (task *TaskRaw) SetState(new_state string, write_lock bool) (err error)
- func (task *TaskRaw) SetStepOutput(jd *cwl.Job_document, lock bool) (err error)
- type Task_Unique_Identifier
- type Task_p
- type WorkList
- type WorkLog
- type WorkMgr
- type WorkPerf
- type WorkQueue
- func (wq *WorkQueue) Add(workunit *Workunit) (err error)
- func (wq *WorkQueue) Clean() (workunits []*Workunit)
- func (wq *WorkQueue) Delete(id Workunit_Unique_Identifier) (err error)
- func (wq *WorkQueue) Get(id Workunit_Unique_Identifier) (w *Workunit, ok bool, err error)
- func (wq *WorkQueue) GetAll() (worklist []*Workunit, err error)
- func (wq *WorkQueue) GetForJob(jobid string) (worklist []*Workunit, err error)
- func (wq *WorkQueue) Has(id Workunit_Unique_Identifier) (has bool, err error)
- func (wq *WorkQueue) Len() (int, error)
- func (wq *WorkQueue) StatusChange(id Workunit_Unique_Identifier, workunit *Workunit, new_status string, ...) (err error)
- type WorkerRuntime
- type WorkerState
- type Workflow
- type WorkflowInstance
- type WorkflowMgr
- type Workunit
- func (work *Workunit) CDworkpath() (err error)
- func (w *Workunit) GetId() (id Workunit_Unique_Identifier)
- func (work *Workunit) GetNotes() string
- func (work *Workunit) Mkdir() (err error)
- func (work *Workunit) Part() (part string)
- func (work *Workunit) Path() (path string, err error)
- func (work *Workunit) RemoveDir() (err error)
- func (work *Workunit) SetState(new_state string, reason string) (err error)
- type WorkunitList
- func (cl *WorkunitList) Add(workid Workunit_Unique_Identifier) (err error)
- func (cl *WorkunitList) Delete(workid Workunit_Unique_Identifier, write_lock bool) (err error)
- func (cl *WorkunitList) Delete_all(workid string, write_lock bool) (err error)
- func (cl *WorkunitList) FillMap() (err error)
- func (cl *WorkunitList) Get_list(do_read_lock bool) (assigned_work_ids []Workunit_Unique_Identifier, err error)
- func (cl *WorkunitList) Get_string_list(do_read_lock bool) (work_ids []string, err error)
- func (cl *WorkunitList) Has(workid Workunit_Unique_Identifier) (ok bool, err error)
- func (this *WorkunitList) Init(name string)
- func (cl *WorkunitList) Length(lock bool) (clength int, err error)
- type WorkunitMap
- func (wm *WorkunitMap) Delete(id Workunit_Unique_Identifier) (err error)
- func (wm *WorkunitMap) Get(id Workunit_Unique_Identifier) (workunit *Workunit, ok bool, err error)
- func (wm *WorkunitMap) GetWorkunits() (workunits []*Workunit, err error)
- func (wm *WorkunitMap) Len() (length int, err error)
- func (wm *WorkunitMap) Set(workunit *Workunit) (err error)
- type Workunit_Unique_Identifier
- func New_Workunit_Unique_Identifier(task Task_Unique_Identifier, rank int) (wui Workunit_Unique_Identifier)
- func New_Workunit_Unique_Identifier_FromString(old_style_id string) (w Workunit_Unique_Identifier, err error)
- func New_Workunit_Unique_Identifier_from_interface(original interface{}) (wui Workunit_Unique_Identifier, err error)
- type WorkunitsSortby
Constants ¶
const ( JOB_STAT_INIT = "init" // inital state JOB_STAT_QUEUING = "queuing" // transition from "init" to "queued" JOB_STAT_QUEUED = "queued" // all tasks have been added to taskmap JOB_STAT_INPROGRESS = "in-progress" // a first task went into state in-progress JOB_STAT_COMPLETED = "completed" JOB_STAT_SUSPEND = "suspend" JOB_STAT_FAILED_PERMANENT = "failed-permanent" // this sepcific error state can be trigger by the workflow software JOB_STAT_DELETED = "deleted" )
const ( TASK_STAT_INIT = "init" // initial state on creation of a task TASK_STAT_PENDING = "pending" // a task that wants to be enqueued TASK_STAT_READY = "ready" // a task ready to be enqueued TASK_STAT_QUEUED = "queued" // a task for which workunits have been created/queued TASK_STAT_INPROGRESS = "in-progress" // a first workunit has been checkout (this does not guarantee a workunit is running right now) TASK_STAT_SUSPEND = "suspend" TASK_STAT_FAILED = "failed" TASK_STAT_FAILED_PERMANENT = "failed-permanent" // on exit code 42 TASK_STAT_COMPLETED = "completed" TASK_STAT_SKIPPED = "user_skipped" // deprecated TASK_STAT_FAIL_SKIP = "skipped" // deprecated TASK_STAT_PASSED = "passed" // deprecated ? )
const ( TASK_TYPE_UNKNOWN = "" TASK_TYPE_SCATTER = "scatter" TASK_TYPE_WORKFLOW = "workflow" TASK_TYPE_NORMAL = "normal" )
const ( WORK_STAT_INIT = "init" // initial state WORK_STAT_QUEUED = "queued" // after requeue ; after failures below max ; on WorkQueue.Add() WORK_STAT_RESERVED = "reserved" // short lived state between queued and checkout. when a worker checks the workunit out, the state is reserved. WORK_STAT_CHECKOUT = "checkout" // normal work checkout ; client registers that already has a workunit (e.g. after reboot of server) WORK_STAT_SUSPEND = "suspend" // on MAX_FAILURE ; on SuspendJob WORK_STAT_FAILED_PERMANENT = "failed-permanent" // app had exit code 42 WORK_STAT_DONE = "done" // client only: done WORK_STAT_ERROR = "fail" // client only: workunit computation or IO error (variable was renamed to ERROR but not the string fail, to maintain backwards compability) WORK_STAT_PREPARED = "prepared" // client only: after argument parsing WORK_STAT_COMPUTED = "computed" // client only: after computation is done, before upload WORK_STAT_DISCARDED = "discarded" // client only: job / task suspended or server UUID changes WORK_STAT_PROXYQUEUED = "proxyqueued" // proxy only )
Variables ¶
var ( QMgr ResourceMgr Service string = "unknown" Self *Client ProxyWorkChan chan bool Server_UUID string JM *JobMap Start_time time.Time )
var (
CGNameRegex = regexp.MustCompile(`^[A-Za-z0-9\_\-\.]+$`)
)
var DocumentMaxByte = 16777216
mongodb has hard limit of 16 MB docuemnt size
var JOB_STATS_ACTIVE = []string{JOB_STAT_QUEUING, JOB_STAT_QUEUED, JOB_STAT_INPROGRESS}
var JOB_STATS_REGISTERED = []string{JOB_STAT_QUEUING, JOB_STAT_QUEUED, JOB_STAT_INPROGRESS, JOB_STAT_SUSPEND}
var JOB_STATS_TO_RECOVER = []string{JOB_STAT_INIT, JOB_STAT_QUEUING, JOB_STAT_QUEUED, JOB_STAT_INPROGRESS, JOB_STAT_SUSPEND}
var JobInfoIndexes = []string{"name", "submittime", "completedtime", "pipeline", "clientgroups", "project", "service", "user", "priority", "userattr.submission"}
indexed info fields for search
var TASK_STATS_RESET = []string{TASK_STAT_QUEUED, TASK_STAT_INPROGRESS, TASK_STAT_SUSPEND}
var WAIT_TIMEOUT = time.Minute * 3
Functions ¶
func CWL_input_check ¶ added in v0.9.62
func CWL_input_check(job_input *cwl.Job_document, cwl_workflow *cwl.Workflow) (err error)
func DbFindDistinct ¶ added in v0.9.26
func DbUpdateJobField ¶ added in v0.9.33
func DeleteClientGroup ¶ added in v0.9.3
func Deserialize_b64 ¶ added in v0.9.62
func GetAdminView ¶ added in v0.9.62
patch the admin view data function from the job controller through to the db.go
func GetJobIdByTaskId_deprecated ¶ added in v0.9.62
func GetJobIdByWorkId_deprecated ¶ added in v0.9.62
func GetTaskIdByWorkId_deprecated ¶ added in v0.9.62
func HasInfoField ¶ added in v0.9.26
func InitAwfMgr ¶
func InitAwfMgr()
func InitClientGroupDB ¶ added in v0.9.3
func InitClientGroupDB()
func InitProxyWorkChan ¶
func InitProxyWorkChan()
func InitReaper ¶ added in v0.9.26
func InitReaper()
func InitResMgr ¶
func InitResMgr(service string)
func IsFirstTask ¶
func IsValidUUID ¶ added in v0.9.62
func NotifyWorkunitProcessed ¶
functions for REST API communication (=deprecated=) notify AWE server a workunit is finished with status either "failed" or "done", and with perf statistics if "done"
func PushOutputData ¶
deprecated, see cache.UploadOutputData
func ReloadFromDisk ¶
func RemoveWorkFromClient ¶ added in v0.9.45
func RemoveWorkFromClient(client *Client, workid Workunit_Unique_Identifier) (err error)
func SetClientProfile ¶ added in v0.9.33
func SetClientProfile(profile *Client)
Types ¶
type BaseResponse ¶ added in v0.9.62
type CQMgr ¶
type CQMgr struct {
// contains filtered or unexported fields
}
this struct is embedded in ServerMgr
func (*CQMgr) CheckClient ¶ added in v0.9.33
func (*CQMgr) CheckoutWorkunits ¶
func (*CQMgr) ClientChecker ¶
func (qm *CQMgr) ClientChecker()
func (*CQMgr) ClientHandle ¶ added in v0.9.16
func (qm *CQMgr) ClientHandle()
func (*CQMgr) ClientHeartBeat ¶
func (qm *CQMgr) ClientHeartBeat(id string, cg *ClientGroup, workerstate WorkerState) (hbmsg HeartbeatInstructions, err error)
func (*CQMgr) ClientStatusChange_deprecated ¶ added in v0.9.62
func (*CQMgr) DeleteClients ¶ added in v0.9.33
func (*CQMgr) EnqueueWorkunit ¶
func (*CQMgr) FetchDataToken ¶
func (*CQMgr) GetAllClientsByUser ¶ added in v0.9.3
func (*CQMgr) GetClientByUser ¶ added in v0.9.3
func (*CQMgr) GetClientMap ¶ added in v0.9.33
func (*CQMgr) GetWorkById ¶
func (qm *CQMgr) GetWorkById(id Workunit_Unique_Identifier) (workunit *Workunit, err error)
func (*CQMgr) ListClients ¶ added in v0.9.16
func (*CQMgr) NotifyWorkStatus ¶
func (*CQMgr) ReQueueWorkunitByClient ¶
func (*CQMgr) RegisterNewClient ¶
func (qm *CQMgr) RegisterNewClient(files FormFiles, cg *ClientGroup) (client *Client, err error)
This can be a new client or an old client that re-registers
func (*CQMgr) RemoveClient ¶ added in v0.9.16
lock is for clientmap
func (*CQMgr) ResumeClient ¶
func (*CQMgr) ResumeClientByUser ¶ added in v0.9.3
func (*CQMgr) ResumeSuspendedClients ¶
func (*CQMgr) ResumeSuspendedClientsByUser ¶ added in v0.9.3
func (*CQMgr) ShowWorkunits ¶
func (*CQMgr) ShowWorkunitsByUser ¶ added in v0.9.3
func (*CQMgr) SuspendAllClients ¶
func (*CQMgr) SuspendAllClientsByUser ¶ added in v0.9.3
func (*CQMgr) SuspendClient ¶
func (qm *CQMgr) SuspendClient(id string, client *Client, reason string, client_write_lock bool) (err error)
use id OR client
func (*CQMgr) SuspendClientByUser ¶ added in v0.9.3
func (*CQMgr) UpdateSubClients ¶
type CWL_workunit ¶ added in v0.9.48
type CWL_workunit struct { Job_input *cwl.Job_document `bson:"job_input,omitempty" json:"job_input,omitempty" mapstructure:"job_input,omitempty"` Job_input_filename string `bson:"job_input_filename,omitempty" json:"job_input_filename,omitempty" mapstructure:"job_input_filename,omitempty"` //CWL_tool *cwl.CommandLineTool `bson:"cwl_tool,omitempty" json:"cwl_tool,omitempty" mapstructure:"cwl_tool,omitempty"` //CWL_tool_filename string `bson:"cwl_tool_filename,omitempty" json:"cwl_tool_filename,omitempty" mapstructure:"cwl_tool_filename,omitempty"` Tool interface{} `bson:"tool,omitempty" json:"tool,omitempty" mapstructure:"tool,omitempty"` Tool_filename string `bson:"tool_filename,omitempty" json:"tool_filename,omitempty" mapstructure:"tool_filename,omitempty"` Outputs *cwl.Job_document `bson:"outputs,omitempty" json:"outputs,omitempty" mapstructure:"outputs,omitempty"` OutputsExpected *[]cwl.WorkflowStepOutput `bson:"outputs_expected,omitempty" json:"outputs_expected,omitempty" mapstructure:"outputs_expected,omitempty"` // this is the subset of outputs that are needed by the workflow Notice `bson:",inline" json:",inline" mapstructure:",squash"` }
func NewCWL_workunit ¶ added in v0.9.62
func NewCWL_workunit() *CWL_workunit
func NewCWL_workunit_from_interface ¶ added in v0.9.62
func NewCWL_workunit_from_interface(native interface{}) (workunit *CWL_workunit, schemata []cwl.CWLType_Type, err error)
type Client ¶
type Client struct { RWMutex `bson:"-" json:"-"` WorkerRuntime `bson:",inline" json:",inline"` WorkerState `bson:",inline" json:",inline"` RegTime time.Time `bson:"regtime" json:"regtime"` LastCompleted time.Time `bson:"lastcompleted" json:"lastcompleted"` // time of last time a job was completed (can be used to compute idle time) Serve_time string `bson:"serve_time" json:"serve_time"` Total_checkout int `bson:"total_checkout" json:"total_checkout"` Total_completed int `bson:"total_completed" json:"total_completed"` Total_failed int `bson:"total_failed" json:"total_failed"` Skip_work []string `bson:"skip_work" json:"skip_work"` Last_failed int `bson:"-" json:"-"` Tag bool `bson:"-" json:"-"` Proxy bool `bson:"proxy" json:"proxy"` SubClients int `bson:"subclients" json:"subclients"` Online bool `bson:"online" json:"online"` // a state Suspended bool `bson:"suspended" json:"suspended"` // a state Suspend_reason string `bson:"suspend_reason" json:"suspend_reason"` // a state Status string `bson:"Status" json:"Status"` // 1) suspended? 2) busy ? 3) online (call is idle) 4) offline Assigned_work *WorkunitList `bson:"assigned_work" json:"assigned_work"` // this is for exporting into json // contains filtered or unexported fields }
this is the Worker
func NewProfileClient ¶
create Client object from json file
func (*Client) Add ¶ added in v0.9.62
func (this *Client) Add(workid Workunit_Unique_Identifier) (err error)
func (*Client) Append_Skip_work ¶ added in v0.9.33
func (cl *Client) Append_Skip_work(workid Workunit_Unique_Identifier, write_lock bool) (err error)
func (*Client) Contains_Skip_work_nolock ¶ added in v0.9.33
func (*Client) Get_Last_failed ¶ added in v0.9.33
func (*Client) Get_New_Status ¶ added in v0.9.62
this function should not be used internally, this is only for backwards-compatibility and human readability
func (*Client) Get_Suspended ¶ added in v0.9.62
func (*Client) Get_Total_checkout ¶ added in v0.9.33
func (*Client) Get_Total_completed ¶ added in v0.9.33
func (*Client) Get_Total_failed ¶ added in v0.9.33
func (*Client) Increment_last_failed ¶ added in v0.9.33
func (*Client) Increment_total_checkout ¶ added in v0.9.33
func (*Client) Increment_total_completed ¶ added in v0.9.33
func (*Client) Increment_total_failed ¶ added in v0.9.33
func (*Client) Init ¶ added in v0.9.33
func (client *Client) Init()
invoked by NewClient or manually after unmarshalling
func (*Client) Set_Online ¶ added in v0.9.62
func (*Client) Set_Status_deprecated ¶ added in v0.9.62
func (*Client) Set_Suspended ¶ added in v0.9.62
func (*Client) Update_Status ¶ added in v0.9.62
type ClientGroup ¶ added in v0.9.3
type ClientGroup struct { Id string `bson:"id" json:"id"` IP_CIDR string `bson:"ip_cidr" json:"ip_cidr"` Name string `bson:"name" json:"name"` Token string `bson:"token" json:"token"` Acl clientGroupAcl.ClientGroupAcl `bson:"acl" json:"-"` CreatedOn time.Time `bson:"created_on" json:"created_on"` Expiration time.Time `bson:"expiration" json:"expiration"` LastModified time.Time `bson:"last_modified" json:"last_modified"` }
func CreateClientGroup ¶ added in v0.9.3
func CreateClientGroup(name string, u *user.User) (cg *ClientGroup, err error)
func LoadClientGroup ¶ added in v0.9.3
func LoadClientGroup(id string) (clientgroup *ClientGroup, err error)
func LoadClientGroupByName ¶ added in v0.9.3
func LoadClientGroupByName(name string) (clientgroup *ClientGroup, err error)
func LoadClientGroupByToken ¶ added in v0.9.3
func LoadClientGroupByToken(token string) (clientgroup *ClientGroup, err error)
func (*ClientGroup) Save ¶ added in v0.9.3
func (cg *ClientGroup) Save() (err error)
func (*ClientGroup) SetToken ¶ added in v0.9.3
func (cg *ClientGroup) SetToken()
type ClientMap ¶ added in v0.9.33
type ClientMap struct { RWMutex // contains filtered or unexported fields }
func NewClientMap ¶ added in v0.9.33
func NewClientMap() *ClientMap
func (*ClientMap) GetClientIds ¶ added in v0.9.33
func (*ClientMap) GetClients ¶ added in v0.9.33
type ClientMgr ¶
type ClientMgr interface { RegisterNewClient(FormFiles, *ClientGroup) (*Client, error) ClientHeartBeat(string, *ClientGroup, WorkerState) (HeartbeatInstructions, error) GetClient(string, bool) (*Client, bool, error) GetClientByUser(string, *user.User) (*Client, error) //GetAllClients() []*Client GetClientMap() *ClientMap GetAllClientsByUser(*user.User) ([]*Client, error) //DeleteClient(*Client) error //DeleteClientById(string) error //DeleteClientByUser(string, *user.User) error SuspendClient(string, *Client, string, bool) error SuspendClientByUser(string, *user.User, string) error ResumeClient(string) error ResumeClientByUser(string, *user.User) error ResumeSuspendedClients() (int, error) ResumeSuspendedClientsByUser(*user.User) int SuspendAllClients(string) (int, error) SuspendAllClientsByUser(*user.User, string) (int, error) ClientChecker() UpdateSubClients(string, int) error UpdateSubClientsByUser(string, int, *user.User) }
type ClientWorkMgr ¶
type Clients ¶ added in v0.9.33
type Clients []*Client
func (*Clients) RLockRecursive ¶ added in v0.9.33
func (cs *Clients) RLockRecursive()
func (*Clients) RUnlockRecursive ¶ added in v0.9.33
func (cs *Clients) RUnlockRecursive()
type Command ¶
type Command struct { Name string `bson:"name" json:"name" mapstructure:"name"` Args string `bson:"args" json:"args" mapstructure:"args"` ArgsArray []string `bson:"args_array" json:"args_array" mapstructure:"args_array"` // use this instead of Args, which is just a string Dockerimage string `bson:"Dockerimage" json:"Dockerimage" mapstructure:"Dockerimage"` // for Shock (TODO rename this !) DockerPull string `bson:"dockerPull" json:"dockerPull" mapstructure:"dockerPull"` // docker pull Cmd_script []string `bson:"cmd_script" json:"cmd_script" mapstructure:"cmd_script"` Environ Envs `bson:"environ" json:"environ" mapstructure:"environ"` HasPrivateEnv bool `bson:"has_private_env" json:"has_private_env" mapstructure:"has_private_env"` Description string `bson:"description" json:"description" mapstructure:"description"` ParsedArgs []string `bson:"-" json:"-" mapstructure:"-"` Local bool // indicates local execution, i.e. working directory is same as current working directory (do not delete !) }
func NewCommand ¶
type Environ_p ¶ added in v0.9.3
following special code is in order to unmarshal the private field Command.Environ.Private, so put them in to this file for less confusion
type Filter_work_stats ¶ added in v0.9.62
type HeartbeatInstructions ¶ added in v0.9.62
heartbeat response from awe-server to awe-worker used for issue operation request to client, e.g. discard suspended workunits
type IO ¶
type IO struct { FileName string `bson:"filename" json:"filename" mapstructure:"filename"` Name string `bson:"name" json:"name" mapstructure:"name"` // specifies abstract name of output as defined by the app AppPosition int `bson:"appposition" json:"-" mapstructure:"-"` // specifies position in app output array Directory string `bson:"directory" json:"directory" mapstructure:"directory"` Host string `bson:"host" json:"host" mapstructure:"host"` Node string `bson:"node" json:"node" mapstructure:"node"` Url string `bson:"url" json:"url" mapstructure:"url"` // can be shock or any other url Size int64 `bson:"size" json:"size" mapstructure:"size"` MD5 string `bson:"md5" json:"-" mapstructure:"-"` Cache bool `bson:"cache" json:"cache" mapstructure:"cache"` // indicates that this files is "predata"" that needs to be cached Origin string `bson:"origin" json:"origin" mapstructure:"origin"` Path string `bson:"-" json:"-" mapstructure:"-"` Optional bool `bson:"optional" json:"-" mapstructure:"-"` Nonzero bool `bson:"nonzero" json:"nonzero" mapstructure:"nonzero"` DataToken string `bson:"datatoken" json:"-" mapstructure:"-"` Intermediate bool `bson:"Intermediate" json:"-" mapstructure:"-"` Temporary bool `bson:"temporary" json:"temporary" mapstructure:"temporary"` ShockFilename string `bson:"shockfilename" json:"shockfilename" mapstructure:"shockfilename"` ShockIndex string `bson:"shockindex" json:"shockindex" mapstructure:"shockindex"` // on input it indicates that Shock node has to be indexed by AWE server AttrFile string `bson:"attrfile" json:"attrfile" mapstructure:"attrfile"` NoFile bool `bson:"nofile" json:"nofile" mapstructure:"nofile"` Delete bool `bson:"delete" json:"delete" mapstructure:"delete"` // speficies that this is a temorary node, to be deleted from shock on job completion Type string `bson:"type" json:"type" mapstructure:"type"` NodeAttr map[string]interface{} `bson:"nodeattr" json:"nodeattr" mapstructure:"nodeattr"` // specifies attribute data to be stored in shock node (output only) FormOptions map[string]string `bson:"formoptions" json:"formoptions" mapstructure:"formoptions"` Uncompress string `bson:"uncompress" json:"uncompress" mapstructure:"uncompress"` // tells AWE client to uncompress this file, e.g. "gzip" Indexes map[string]shock.IdxInfo `bson:"-" json:"-" mapstructure:"-"` // copy of shock node.Indexes, not saved }
func (*IO) DeleteNode ¶ added in v0.9.3
func (*IO) UpdateFileSize ¶ added in v0.9.68
type IOmap ¶
Deprecated JobDep struct uses deprecated TaskDep struct which uses the deprecated IOmap. Maintained for backwards compatibility. Jobs that cannot be parsed into the Job struct, but can be parsed into the JobDep struct will be translated to the new Job struct. (=deprecated=)
type Info ¶
type Info struct { Name string `bson:"name" json:"name" mapstructure:"name"` Xref string `bson:"xref" json:"xref" mapstructure:"xref"` Service string `bson:"service" json:"service" mapstructure:"service"` Project string `bson:"project" json:"project" mapstructure:"project"` User string `bson:"user" json:"user" mapstructure:"user"` Pipeline string `bson:"pipeline" json:"pipeline" mapstructure:"pipeline"` // or workflow ClientGroups string `bson:"clientgroups" json:"clientgroups" mapstructure:"clientgroups"` SubmitTime time.Time `bson:"submittime" json:"submittime" mapstructure:"submittime"` StartedTime time.Time `bson:"startedtime" json:"startedtime" mapstructure:"startedtime"` CompletedTime time.Time `bson:"completedtime" json:"completedtime" mapstructure:"completedtime"` Priority int `bson:"priority" json:"priority" mapstructure:"priority"` Auth bool `bson:"auth" json:"auth" mapstructure:"auth"` DataToken string `bson:"datatoken" json:"-" mapstructure:"-"` NoRetry bool `bson:"noretry" json:"noretry" mapstructure:"noretry"` UserAttr map[string]interface{} `bson:"userattr" json:"userattr" mapstructure:"userattr"` Description string `bson:"description" json:"description" mapstructure:"description"` Tracking bool `bson:"tracking" json:"tracking" mapstructure:"tracking"` StartAt time.Time `bson:"start_at" json:"start_at" mapstructure:"start_at"` // will start tasks at this timepoint or shortly after }
job info
type Job ¶
func CreateJobImport ¶ added in v0.9.26
func JobDepToJob ¶ added in v0.9.16
Takes the deprecated (version 1) Job struct and returns the version 2 Job struct or an error
func ReadJobFile ¶ added in v0.9.33
func (*Job) AddWorkflowInstance ¶ added in v0.9.62
func (*Job) Decrease_WorkflowInstance_RemainTasks ¶ added in v0.9.62
func (*Job) GetDataToken ¶
func (*Job) GetJobLogs ¶ added in v0.9.27
func (*Job) GetPrivateEnv ¶ added in v0.9.3
func (*Job) GetRemainTasks ¶ added in v0.9.33
func (*Job) GetWorkflowInstance ¶ added in v0.9.62
func (job *Job) GetWorkflowInstance(id string, do_read_lock bool) (wi *WorkflowInstance, err error)
func (*Job) GetWorkflowInstanceIndex ¶ added in v0.9.62
func (*Job) IncrementRemainTasks ¶ added in v0.9.33
func (*Job) IncrementResumed ¶ added in v0.9.33
func (*Job) RLockRecursive ¶ added in v0.9.33
func (job *Job) RLockRecursive()
func (*Job) RUnlockRecursive ¶ added in v0.9.33
func (job *Job) RUnlockRecursive()
func (*Job) SaveToDisk ¶ added in v0.9.33
func (*Job) SetClientgroups ¶ added in v0.9.33
func (*Job) SetDataToken ¶
func (*Job) SetExpiration ¶ added in v0.9.26
func (*Job) SetPipeline ¶ added in v0.9.26
func (*Job) SetPriority ¶ added in v0.9.33
func (*Job) SetRemainTasks ¶ added in v0.9.33
func (*Job) Set_WorkflowInstance_Outputs ¶ added in v0.9.62
func (job *Job) Set_WorkflowInstance_Outputs(id string, outputs cwl.Job_document) (err error)
type JobDep ¶ added in v0.9.16
Deprecated JobDep struct uses deprecated TaskDep struct which uses the deprecated IOmap. Maintained for backwards compatibility. Jobs that cannot be parsed into the Job struct, but can be parsed into the JobDep struct will be translated to the new Job struct. (=deprecated=)
type JobError ¶ added in v0.9.48
type JobError struct { ClientFailed string `bson:"clientfailed" json:"clientfailed"` WorkFailed string `bson:"workfailed" json:"workfailed"` TaskFailed string `bson:"taskfailed" json:"taskfailed"` ServerNotes string `bson:"servernotes" json:"servernotes"` WorkNotes string `bson:"worknotes" json:"worknotes"` AppError string `bson:"apperror" json:"apperror"` Status string `bson:"status" json:"status"` }
type JobMap ¶ added in v0.9.33
type JobMap struct { RWMutex // contains filtered or unexported fields }
type JobMgr ¶
type JobMgr interface { EnqueueTasksByJobId(string) error GetActiveJobs() map[string]bool IsJobRegistered(string) bool GetSuspendJobs() map[string]bool SuspendJob(string, *JobError) error ResumeSuspendedJobByUser(string, *user.User) error ResumeSuspendedJobsByUser(*user.User) int ResubmitJob(string) error DeleteJobByUser(string, *user.User, bool) error DeleteSuspendedJobsByUser(*user.User, bool) int DeleteZombieJobsByUser(*user.User, bool) int RecoverJob(string, *Job) (bool, error) RecoverJobs() (int, int, error) FinalizeWorkPerf(Workunit_Unique_Identifier, string) error SaveStdLog(Workunit_Unique_Identifier, string, string) error GetReportMsg(Workunit_Unique_Identifier, string) (string, error) RecomputeJob(string, string) error UpdateQueueToken(*Job) error }
type JobMin ¶ added in v0.9.8
type JobMin struct { Id string `bson:"id" json:"id"` Name string `bson:"name" json:"name"` Size int64 `bson:"size" json:"size"` SubmitTime time.Time `bson:"submittime" json:"submittime"` CompletedTime time.Time `bson:"completedtime" json:"completedtime"` ComputeTime int `bson:"computetime" json:"computetime"` Task []int `bson:"task" json:"task"` State []string `bson:"state" json:"state"` UserAttr map[string]interface{} `bson:"userattr" json:"userattr"` }
type JobPerf ¶
type JobPerf struct { Id string `bson:"id" json:"id"` Queued int64 `bson:"queued" json:"queued"` Start int64 `bson:"start" json:"start"` End int64 `bson:"end" json:"end"` Resp int64 `bson:"resp" json:"resp"` //End - Queued Ptasks map[string]*TaskPerf `bson:"task_stats" json:"task_stats"` Pworks map[string]*WorkPerf `bson:"work_stats" json:"work_stats"` }
func LoadJobPerf ¶
func NewJobPerf ¶
type JobRaw ¶ added in v0.9.33
type JobRaw struct { RWMutex Id string `bson:"id" json:"id"` // uuid Acl acl.Acl `bson:"acl" json:"-"` Info *Info `bson:"info" json:"info"` Script script `bson:"script" json:"-"` State string `bson:"state" json:"state"` Registered bool `bson:"registered" json:"registered"` RemainTasks int `bson:"remaintasks" json:"remaintasks"` Expiration time.Time `bson:"expiration" json:"expiration"` // 0 means no expiration UpdateTime time.Time `bson:"updatetime" json:"updatetime"` Error *JobError `bson:"error" json:"error"` // error struct exists when in suspended state Resumed int `bson:"resumed" json:"resumed"` // number of times the job has been resumed from suspension ShockHost string `bson:"shockhost" json:"shockhost"` // this is a fall-back default if not specified at a lower level IsCWL bool `bson:"is_cwl" json:"is_cwl` CwlVersion cwl.CWLVersion `bson:"cwl_version" json:"cwl_version"` CWL_objects interface{} `bson:"cwl_objects" json:"cwl_objects` CWL_job_input interface{} `bson:"cwl_job_input" json:"cwl_job_input` // has to be an array for mongo (id as key would not work) CWL_collection *cwl.CWL_collection `bson:"-" json:"-" yaml:"-" mapstructure:"-"` CWL_workflow *cwl.Workflow `bson:"-" json:"-" yaml:"-" mapstructure:"-"` WorkflowInstances []interface{} `bson:"workflow_instances" json:"workflow_instances" yaml:"workflow_instances" mapstructure:"workflow_instances"` WorkflowInstancesMap map[string]*WorkflowInstance `bson:"-" json:"-" yaml:"-" mapstructure:"-"` Entrypoint string `bson:"entrypoint" json:"entrypoint"` // name of main workflow (typically has name #main or #entrypoint) }
type JobReaper ¶ added in v0.9.26
type JobReaper struct{}
var ( Ttl *JobReaper ExpireRegex = regexp.MustCompile(`^(\d+)(M|H|D)$`) )
func NewJobReaper ¶ added in v0.9.26
func NewJobReaper() *JobReaper
type Jobs ¶
type Jobs []*Job
Job array type
func (*Jobs) GetAllLimitOffset ¶
func (*Jobs) GetAllRecent ¶
func (*Jobs) GetPaginated ¶
func (*Jobs) RLockRecursive ¶ added in v0.9.33
func (n *Jobs) RLockRecursive()
func (*Jobs) RUnlockRecursive ¶ added in v0.9.33
func (n *Jobs) RUnlockRecursive()
type Notice ¶
type Notice struct { Id Workunit_Unique_Identifier `bson:"id" json:"id" mapstructure:"id"` // redundant field, for reporting WorkerId string `bson:"worker_id" json:"worker_id" mapstructure:"worker_id"` Results *cwl.Job_document `bson:"results" json:"results" mapstructure:"results"` // subset of tool_results with Shock URLs Status string `bson:"status,omitempty" json:"status,omitempty" mapstructure:"status,omitempty"` // this is redundant as workunit already has state, but this is only used for transfer ComputeTime int `bson:"computetime,omitempty" json:"computetime,omitempty" mapstructure:"computetime,omitempty"` Notes string Stderr string }
type PartInfo ¶
type PartInfo struct { Input string `bson:"input" json:"input" mapstructure:"input"` Index string `bson:"index" json:"index" mapstructure:"index"` TotalIndex int `bson:"totalindex" json:"totalindex" mapstructure:"totalindex"` MaxPartSizeMB int `bson:"maxpartsize_mb" json:"maxpartsize_mb" mapstructure:"maxpartsize_mb"` Options string `bson:"options" json:"-" mapstructure:"-"` }
type Pipeline ¶
type Pipeline struct { Info *Info `bson:"info" json:"info"` Tasks []Task `bson:"tasks" json:"tasks"` }
func NewPipeline ¶
func NewPipeline() *Pipeline
type ProxyMgr ¶
type ProxyMgr struct {
CQMgr
}
func NewProxyMgr ¶
func NewProxyMgr() *ProxyMgr
func (*ProxyMgr) ClientChecker ¶
func (qm *ProxyMgr) ClientChecker()
func (*ProxyMgr) ClientHandle ¶ added in v0.9.16
func (qm *ProxyMgr) ClientHandle()
func (*ProxyMgr) DeleteJobByUser ¶ added in v0.9.3
func (*ProxyMgr) DeleteSuspendedJobsByUser ¶ added in v0.9.3
func (*ProxyMgr) DeleteZombieJobsByUser ¶ added in v0.9.3
func (*ProxyMgr) EnqueueTasksByJobId ¶
func (*ProxyMgr) FetchDataToken ¶
func (*ProxyMgr) FetchPrivateEnv ¶ added in v0.9.3
func (*ProxyMgr) FinalizeWorkPerf ¶
func (*ProxyMgr) GetActiveJobs ¶
func (*ProxyMgr) GetJsonStatus ¶ added in v0.9.26
func (*ProxyMgr) GetReportMsg ¶
func (*ProxyMgr) GetSuspendJobs ¶
func (*ProxyMgr) GetTextStatus ¶ added in v0.9.26
func (*ProxyMgr) IsJobRegistered ¶
func (*ProxyMgr) JobRegister ¶
func (*ProxyMgr) NoticeHandle ¶ added in v0.9.33
func (qm *ProxyMgr) NoticeHandle()
func (*ProxyMgr) QueueStatus ¶ added in v0.9.23
func (*ProxyMgr) RecomputeJob ¶
recompute jobs from specified task stage
func (*ProxyMgr) RecoverJob ¶ added in v0.9.26
recover job not in queue
func (*ProxyMgr) RecoverJobs ¶
recover jobs not completed before awe-server restarts
func (*ProxyMgr) RegisterNewClient ¶
func (qm *ProxyMgr) RegisterNewClient(files FormFiles, cg *ClientGroup) (client *Client, err error)
func (*ProxyMgr) ResubmitJob ¶
re-submit a job in db but not in the queue (caused by server restarting)
func (*ProxyMgr) ResumeQueue ¶ added in v0.9.23
func (qm *ProxyMgr) ResumeQueue()
func (*ProxyMgr) ResumeSuspendedJobByUser ¶ added in v0.9.3
resubmit a suspended job if user has rights
func (*ProxyMgr) ResumeSuspendedJobsByUser ¶ added in v0.9.3
func (*ProxyMgr) SuspendJob ¶
func (*ProxyMgr) SuspendQueue ¶ added in v0.9.23
func (qm *ProxyMgr) SuspendQueue()
func (*ProxyMgr) TaskHandle ¶ added in v0.9.16
func (qm *ProxyMgr) TaskHandle()
func (*ProxyMgr) UpdateQueueLoop ¶ added in v0.9.33
func (qm *ProxyMgr) UpdateQueueLoop()
func (*ProxyMgr) UpdateQueueToken ¶ added in v0.9.48
type RWMutex ¶ added in v0.9.33
type RWMutex struct { Name string `bson:"-" json:"-"` // contains filtered or unexported fields }
func (*RWMutex) RLockNamed ¶ added in v0.9.33
func (*RWMutex) RUnlockAnon ¶ added in v0.9.33
func (m *RWMutex) RUnlockAnon()
func (*RWMutex) RUnlockNamed ¶ added in v0.9.33
type RequestQueue ¶ added in v0.9.62
func NewRequestQueue ¶ added in v0.9.62
func NewRequestQueue() (q *RequestQueue)
func (RequestQueue) Pull ¶ added in v0.9.62
func (q RequestQueue) Pull() (req *CoReq, err error)
func (RequestQueue) Push ¶ added in v0.9.62
func (q RequestQueue) Push(req *CoReq) (err error)
type ResourceMgr ¶
type ServerMgr ¶
func NewServerMgr ¶
func NewServerMgr() *ServerMgr
func (*ServerMgr) ClientHandle ¶ added in v0.9.16
func (qm *ServerMgr) ClientHandle()
func (*ServerMgr) CreateAndEnqueueWorkunits ¶ added in v0.9.33
func (*ServerMgr) CreateJobPerf ¶
---perf related methods
func (*ServerMgr) CreateTaskPerf ¶
func (*ServerMgr) CreateWorkPerf ¶
func (qm *ServerMgr) CreateWorkPerf(id Workunit_Unique_Identifier) (err error)
func (*ServerMgr) DeleteJobByUser ¶ added in v0.9.3
func (*ServerMgr) DeleteSuspendedJobsByUser ¶ added in v0.9.3
func (*ServerMgr) DeleteZombieJobsByUser ¶ added in v0.9.3
delete jobs in db with "queued" or "in-progress" state but not in the queue (zombie jobs) that user has access to
func (*ServerMgr) EnqueueTasksByJobId ¶
---task methods---- this is invoked after a job is uploaded and saved in mongo
func (*ServerMgr) FetchDataToken ¶
func (qm *ServerMgr) FetchDataToken(work_id Workunit_Unique_Identifier, clientid string) (token string, err error)
--workunit methds (servermgr implementation)
func (*ServerMgr) FetchPrivateEnv ¶ added in v0.9.3
func (*ServerMgr) FinalizeJobPerf ¶
func (*ServerMgr) FinalizeTaskPerf ¶
TODO evaluate err
func (*ServerMgr) FinalizeWorkPerf ¶
func (qm *ServerMgr) FinalizeWorkPerf(id Workunit_Unique_Identifier, reportfile string) (err error)
func (*ServerMgr) GetActiveJobs ¶
func (*ServerMgr) GetJsonStatus ¶ added in v0.9.26
func (*ServerMgr) GetReportMsg ¶
func (qm *ServerMgr) GetReportMsg(id Workunit_Unique_Identifier, logname string) (report string, err error)
func (*ServerMgr) GetStepInputObjects ¶ added in v0.9.62
func (*ServerMgr) GetSuspendJobs ¶
func (*ServerMgr) GetTextStatus ¶ added in v0.9.26
func (*ServerMgr) IsJobRegistered ¶
func (*ServerMgr) LogJobPerf ¶
func (*ServerMgr) NoticeHandle ¶ added in v0.9.33
func (qm *ServerMgr) NoticeHandle()
func (*ServerMgr) QueueStatus ¶ added in v0.9.23
func (*ServerMgr) RecomputeJob ¶
recompute job from specified task stage
func (*ServerMgr) RecoverJob ¶ added in v0.9.26
recover a job in db that is missing from queue (caused by server restarting)
func (*ServerMgr) RecoverJobs ¶
recover jobs not completed before awe-server restarts
func (*ServerMgr) ResubmitJob ¶
recompute job from beginning
func (*ServerMgr) ResumeQueue ¶ added in v0.9.23
func (qm *ServerMgr) ResumeQueue()
func (*ServerMgr) ResumeSuspendedJobByUser ¶ added in v0.9.3
resubmit a suspended job if the user is authorized
func (*ServerMgr) ResumeSuspendedJobsByUser ¶ added in v0.9.3
func (*ServerMgr) SaveStdLog ¶
func (qm *ServerMgr) SaveStdLog(id Workunit_Unique_Identifier, logname string, tmppath string) (err error)
func (*ServerMgr) SuspendJob ¶
use for JOB_STAT_SUSPEND and JOB_STAT_FAILED_PERMANENT
func (*ServerMgr) SuspendQueue ¶ added in v0.9.23
func (qm *ServerMgr) SuspendQueue()
func (*ServerMgr) TaskHandle ¶ added in v0.9.16
func (qm *ServerMgr) TaskHandle()
func (*ServerMgr) UpdateJobPerfStartTime ¶
func (*ServerMgr) UpdateJobTaskToInProgress ¶
update job/task states from "queued" to "in-progress" once the first workunit is checked out
func (*ServerMgr) UpdateQueueLoop ¶ added in v0.9.33
func (qm *ServerMgr) UpdateQueueLoop()
func (*ServerMgr) UpdateQueueToken ¶ added in v0.9.48
update tokens for in-memory data structures
func (*ServerMgr) UpdateTaskPerfStartTime ¶
type StandardResponse ¶ added in v0.9.33
type StandardResponse struct { Status int `json:"status"` Data interface{} `json:"data"` Error []string `json:"error"` }
func NotifyWorkunitProcessedWithLogs ¶
func NotifyWorkunitProcessedWithLogs(work *Workunit, perf *WorkPerf, sendstdlogs bool) (response *StandardResponse, err error)
type StringLocked ¶ added in v0.9.33
func (*StringLocked) Get ¶ added in v0.9.33
func (s *StringLocked) Get() string
func (*StringLocked) Set ¶ added in v0.9.33
func (s *StringLocked) Set(value string)
type StructContainer ¶ added in v0.9.43
type StructContainer struct {
Data interface{} `json:"data"`
}
type Task ¶
type Task struct { TaskRaw `bson:",inline"` Inputs []*IO `bson:"inputs" json:"inputs"` Outputs []*IO `bson:"outputs" json:"outputs"` Predata []*IO `bson:"predata" json:"predata"` }
func CreateTasks ¶ added in v0.9.62
func (*Task) CollectDependencies ¶ added in v0.9.62
populate DependsOn
func (*Task) CreateInputIndexes ¶ added in v0.9.67
checks and creates indices on input shock nodes if needed
func (*Task) CreateOutputIndexes ¶ added in v0.9.67
checks and creates indices on output shock nodes if needed if worker failed to do so, this will catch it
func (*Task) CreateWorkunits ¶ added in v0.9.33
func (*Task) DeleteInput ¶ added in v0.9.12
func (*Task) DeleteLogs ¶ added in v0.9.67
func (*Task) DeleteOutput ¶ added in v0.9.3
func (*Task) GetOutputs ¶ added in v0.9.33
func (*Task) GetTaskLogs ¶ added in v0.9.27
func (*Task) IncrementComputeTime ¶ added in v0.9.33
func (*Task) IncrementRemainWork ¶ added in v0.9.33
func (*Task) InitPartIndex ¶
get part size based on partition/index info this resets task.Partition when called only 1 task.Inputs allowed unless 'partinfo.input' specified on POST if fail to get index info, task.TotalWork set to 1 and task.Partition set to nil
func (*Task) ResetTaskTrue ¶ added in v0.9.67
func (*Task) SetRemainWork ¶ added in v0.9.33
func (*Task) SetResetTask ¶ added in v0.9.67
func (*Task) SetTaskType ¶ added in v0.9.62
func (*Task) ValidateDependants ¶ added in v0.9.67
func (*Task) ValidateInputs ¶ added in v0.9.67
func (*Task) ValidateOutputs ¶ added in v0.9.67
func (*Task) ValidatePredata ¶ added in v0.9.67
type TaskDep ¶ added in v0.9.16
type TaskDep struct { TaskRaw `bson:",inline"` Inputs IOmap `bson:"inputs" json:"inputs"` Outputs IOmap `bson:"outputs" json:"outputs"` Predata IOmap `bson:"predata" json:"predata"` }
Deprecated JobDep struct uses deprecated TaskDep struct which uses the deprecated IOmap. Maintained for backwards compatibility. Jobs that cannot be parsed into the Job struct, but can be parsed into the JobDep struct will be translated to the new Job struct. (=deprecated=)
type TaskMap ¶ added in v0.9.33
type TaskMap struct { RWMutex // contains filtered or unexported fields }
func NewTaskMap ¶ added in v0.9.33
func NewTaskMap() (t *TaskMap)
func (*TaskMap) Delete ¶ added in v0.9.33
func (tm *TaskMap) Delete(taskid Task_Unique_Identifier) (task *Task, ok bool)
type TaskPerf ¶
type TaskPerf struct { Queued int64 `bson:"queued" json:"queued"` Start int64 `bson:"start" json:"start"` End int64 `bson:"end" json:"end"` Resp int64 `bson:"resp" json:"resp"` //End -Queued InFileSizes []int64 `bson:"size_infile" json:"size_infile"` OutFileSizes []int64 `bson:"size_outfile" json:"size_outfile"` }
func NewTaskPerf ¶
type TaskRaw ¶ added in v0.9.33
type TaskRaw struct { RWMutex `bson:"-" json:"-"` Task_Unique_Identifier `bson:",inline"` Id string `bson:"taskid" json:"taskid"` // old-style TaskType string `bson:"task_type" json:"task_type"` Info *Info `bson:"-" json:"-"` // this is just a pointer to the job.Info Cmd *Command `bson:"cmd" json:"cmd"` Partition *PartInfo `bson:"partinfo" json:"-"` DependsOn []string `bson:"dependsOn" json:"dependsOn"` // only needed if dependency cannot be inferred from Input.Origin TotalWork int `bson:"totalwork" json:"totalwork"` MaxWorkSize int `bson:"maxworksize" json:"maxworksize"` RemainWork int `bson:"remainwork" json:"remainwork"` ResetTask bool `bson:"resettask" json:"-"` // trigged by function - resume, recompute, resubmit State string `bson:"state" json:"state"` CreatedDate time.Time `bson:"createdDate" json:"createddate"` StartedDate time.Time `bson:"startedDate" json:"starteddate"` CompletedDate time.Time `bson:"completedDate" json:"completeddate"` ComputeTime int `bson:"computetime" json:"computetime"` UserAttr map[string]interface{} `bson:"userattr" json:"userattr"` ClientGroups string `bson:"clientgroups" json:"clientgroups"` WorkflowStep *cwl.WorkflowStep `bson:"workflowStep" json:"workflowStep"` // CWL-only StepOutputInterface interface{} `bson:"stepOutput" json:"stepOutput"` // CWL-only StepInput *cwl.Job_document `bson:"-" json:"-"` // CWL-only StepOutput *cwl.Job_document `bson:"-" json:"-"` // CWL-only Scatter_task bool `bson:"scatter_task" json:"scatter_task"` // CWL-only, indicates if this is a scatter_task TODO: compare with TaskType ? Children []Task_Unique_Identifier `bson:"children" json:"children"` // CWL-only, list of all children in a subworkflow task Children_ptr []*Task `bson:"-" json:"-"` // CWL-only Finalizing bool `bson:"-" json:"-"` // CWL-only, a lock mechanism }
func NewTaskRaw ¶ added in v0.9.33
func NewTaskRaw(task_id Task_Unique_Identifier, info *Info) (tr TaskRaw, err error)
func (*TaskRaw) Finalize ¶ added in v0.9.62
this function prevents a dead-lock when a sub-workflow task finalizes
func (*TaskRaw) GetChildren ¶ added in v0.9.62
func (*TaskRaw) GetDependsOn ¶ added in v0.9.33
func (*TaskRaw) GetId ¶ added in v0.9.33
func (task *TaskRaw) GetId(me string) (id Task_Unique_Identifier, err error)
func (*TaskRaw) GetStateNamed ¶ added in v0.9.33
only for debugging purposes
func (*TaskRaw) GetTaskType ¶ added in v0.9.62
func (*TaskRaw) SetCompletedDate ¶ added in v0.9.43
func (*TaskRaw) SetCreatedDate ¶ added in v0.9.33
func (*TaskRaw) SetStartedDate ¶ added in v0.9.33
func (*TaskRaw) SetStepOutput ¶ added in v0.9.62
func (task *TaskRaw) SetStepOutput(jd *cwl.Job_document, lock bool) (err error)
type Task_Unique_Identifier ¶ added in v0.9.62
type Task_Unique_Identifier struct { TaskName string `bson:"task_name" json:"task_name" mapstructure:"task_name"` // example: #main/filter Parent string `bson:"parent" json:"parent" mapstructure:"parent"` JobId string `bson:"jobid" json:"jobid" mapstructure:"jobid"` }
func New_Task_Unique_Identifier ¶ added in v0.9.62
func New_Task_Unique_Identifier(jobid string, parent string, taskname string) (t Task_Unique_Identifier, err error)
func New_Task_Unique_Identifier_FromString ¶ added in v0.9.62
func New_Task_Unique_Identifier_FromString(old_style_id string) (t Task_Unique_Identifier, err error)
func (Task_Unique_Identifier) String ¶ added in v0.9.62
func (taskid Task_Unique_Identifier) String() (s string, err error)
type WorkLog ¶ added in v0.9.27
type WorkLog struct { Id string `bson:"wuid" json:"wuid"` // TODO change ! Rank int `bson:"rank" json:"rank"` Logs map[string]string `bson:"logs" json:"logs"` }
func NewWorkLog ¶ added in v0.9.27
func NewWorkLog(id Workunit_Unique_Identifier) (wlog *WorkLog, err error)
type WorkMgr ¶
type WorkMgr interface { GetWorkById(Workunit_Unique_Identifier) (*Workunit, error) ShowWorkunits(string) ([]*Workunit, error) ShowWorkunitsByUser(string, *user.User) []*Workunit CheckoutWorkunits(string, string, *Client, int64, int) ([]*Workunit, error) NotifyWorkStatus(Notice) EnqueueWorkunit(*Workunit) error FetchDataToken(Workunit_Unique_Identifier, string) (string, error) FetchPrivateEnv(Workunit_Unique_Identifier, string) (map[string]string, error) }
type WorkPerf ¶
type WorkPerf struct { Queued int64 `bson:"queued" json:"queued"` // WQ (queued at server or client, depending on who creates it) Done int64 `bson:"done" json:"done"` // WD (done at server) Resp int64 `bson:"resp" json:"resp"` // Done - Queued (server metric) Checkout int64 `bson:"checkout" json:"checkout"` // checkout at client Deliver int64 `bson:"deliver" json:"deliver"` // done at client ClientResp int64 `bson:"clientresp" json:"clientresp"` // Deliver - Checkout (client metric) PreDataIn float64 `bson:"time_predata_in" json:"time_predata_in"` // time in seconds for downloading prerequisite data at client DataIn float64 `bson:"time_data_in" json:"time_data_in"` // time in seconds for input data move-in at client DataOut float64 `bson:"time_data_out" json:"time_data_out"` // time in seconds for output data move-out at client Runtime int64 `bson:"runtime" json:"runtime"` // time in seconds for computation at client DockerPrep int64 `bson:"dockerprep" json:"dockerprep"` // time in seconds for docker preparation on client MaxMemUsage int64 `bson:"max_mem_usage" json:"max_mem_usage"` // maxium memory consumption MaxMemoryTotalRss int64 `bson:"max_memory_total_rss" json:"max_memory_total_rss"` MaxMemoryTotalSwap int64 `bson:"max_memory_total_swap" json:"max_memory_total_swap"` ClientId string `bson:"client_id" json:"client_id"` PreDataSize int64 `bson:"size_predata" json:"size_predata"` //predata moved over network InFileSize int64 `bson:"size_infile" json:"size_infile"` //input file moved over network OutFileSize int64 `bson:"size_outfile" json:"size_outfile"` //outpuf file moved over network }
func NewWorkPerf ¶
func NewWorkPerf() *WorkPerf
type WorkQueue ¶ added in v0.9.33
type WorkQueue struct { Queue WorkunitMap // WORK_STAT_QUEUED - waiting workunits Checkout WorkunitMap // WORK_STAT_CHECKOUT - workunits being checked out Suspend WorkunitMap // WORK_STAT_SUSPEND - suspended workunits // contains filtered or unexported fields }
func NewWorkQueue ¶ added in v0.9.33
func NewWorkQueue() *WorkQueue
func (*WorkQueue) Delete ¶ added in v0.9.33
func (wq *WorkQueue) Delete(id Workunit_Unique_Identifier) (err error)
func (*WorkQueue) Get ¶ added in v0.9.33
func (wq *WorkQueue) Get(id Workunit_Unique_Identifier) (w *Workunit, ok bool, err error)
func (*WorkQueue) Has ¶ added in v0.9.33
func (wq *WorkQueue) Has(id Workunit_Unique_Identifier) (has bool, err error)
func (*WorkQueue) StatusChange ¶ added in v0.9.33
type WorkerRuntime ¶ added in v0.9.62
type WorkerRuntime struct { Id string `bson:"id" json:"id"` // this is a uuid (the only relevant identifier) Name string `bson:"name" json:"name"` // this can be anything you want Group string `bson:"group" json:"group"` User string `bson:"user" json:"user"` Domain string `bson:"domain" json:"domain"` InstanceId string `bson:"instance_id" json:"instance_id"` // Openstack specific InstanceType string `bson:"instance_type" json:"instance_type"` // Openstack specific //Host string `bson:"host" json:"host"` // deprecated Hostname string `bson:"hostname" json:"hostname"` Host_ip string `bson:"host_ip" json:"host_ip"` // Host can be physical machine or VM, whatever is helpful for management CPUs int `bson:"cores" json:"cores"` Apps []string `bson:"apps" json:"apps"` GitCommitHash string `bson:"git_commit_hash" json:"git_commit_hash"` Version string `bson:"version" json:"version"` }
worker info that does not change at runtime
type WorkerState ¶ added in v0.9.62
type WorkerState struct { Busy bool `bson:"busy" json:"busy"` // a state Current_work *WorkunitList `bson:"current_work" json:"current_work"` }
changes at runtime
func NewWorkerState ¶ added in v0.9.62
func NewWorkerState() (ws *WorkerState)
type Workflow ¶
type Workflow struct { WfInfo awf_info `bson:"workflow_info" json:"workflow_info"` JobInfo awf_jobinfo `bson:"job_info" json:"job_info"` RawInputs map[string]string `bson:"raw_inputs" json:"raw_inputs"` Variables map[string]string `bson:"variables" json:"variables"` DataServer string `bson:"data_server" json:"data_server"` Tasks []*awf_task `bson:"tasks" json:"tasks"` }
type WorkflowInstance ¶ added in v0.9.62
type WorkflowInstance struct { Id string `bson:"id" json:"id" mapstructure:"id"` Inputs cwl.Job_document `bson:"inputs" json:"inputs" mapstructure:"inputs"` Outputs cwl.Job_document `bson:"outputs" json:"outputs" mapstructure:"outputs"` RemainTasks int `bson:"remaintasks" json:"remaintasks" mapstructure:"remaintasks"` }
func NewWorkflowInstanceFromInterface ¶ added in v0.9.62
func NewWorkflowInstanceFromInterface(original interface{}) (wi WorkflowInstance, err error)
type WorkflowMgr ¶
type WorkflowMgr struct {
// contains filtered or unexported fields
}
var (
AwfMgr *WorkflowMgr
)
func NewWorkflowMgr ¶
func NewWorkflowMgr() *WorkflowMgr
func (*WorkflowMgr) AddWorkflow ¶
func (wfm *WorkflowMgr) AddWorkflow(name string, awf *Workflow)
func (*WorkflowMgr) GetAllWorkflows ¶
func (wfm *WorkflowMgr) GetAllWorkflows() (workflows []*Workflow)
func (*WorkflowMgr) GetWorkflow ¶
func (wfm *WorkflowMgr) GetWorkflow(name string) (awf *Workflow, err error)
func (*WorkflowMgr) LoadWorkflows ¶
func (wfm *WorkflowMgr) LoadWorkflows() (err error)
type Workunit ¶
type Workunit struct { Workunit_Unique_Identifier `bson:",inline" json:",inline" mapstructure:",squash"` Id string `bson:"id,omitempty" json:"id,omitempty" mapstructure:"id,omitempty"` // global identifier: jobid_taskid_rank (for backwards coompatibility only) WuId string `bson:"wuid,omitempty" json:"wuid,omitempty" mapstructure:"wuid,omitempty"` // deprecated ! Info *Info `bson:"info,omitempty" json:"info,omitempty" mapstructure:"info,omitempty"` Inputs []*IO `bson:"inputs,omitempty" json:"inputs,omitempty" mapstructure:"inputs,omitempty"` Outputs []*IO `bson:"outputs,omitempty" json:"outputs,omitempty" mapstructure:"outputs,omitempty"` Predata []*IO `bson:"predata,omitempty" json:"predata,omitempty" mapstructure:"predata,omitempty"` Cmd *Command `bson:"cmd,omitempty" json:"cmd,omitempty" mapstructure:"cmd,omitempty"` TotalWork int `bson:"totalwork,omitempty" json:"totalwork,omitempty" mapstructure:"totalwork,omitempty"` Partition *PartInfo `bson:"part,omitempty" json:"part,omitempty" mapstructure:"part,omitempty"` State string `bson:"state,omitempty" json:"state,omitempty" mapstructure:"state,omitempty"` Failed int `bson:"failed,omitempty" json:"failed,omitempty" mapstructure:"failed,omitempty"` CheckoutTime time.Time `bson:"checkout_time,omitempty" json:"checkout_time,omitempty" mapstructure:"checkout_time,omitempty"` Client string `bson:"client,omitempty" json:"client,omitempty" mapstructure:"client,omitempty"` ComputeTime int `bson:"computetime,omitempty" json:"computetime,omitempty" mapstructure:"computetime,omitempty"` ExitStatus int `bson:"exitstatus,omitempty" json:"exitstatus,omitempty" mapstructure:"exitstatus,omitempty"` // Linux Exit Status Code (0 is success) Notes []string `bson:"notes,omitempty" json:"notes,omitempty" mapstructure:"notes,omitempty"` UserAttr map[string]interface{} `bson:"userattr,omitempty" json:"userattr,omitempty" mapstructure:"userattr,omitempty"` ShockHost string `bson:"shockhost,omitempty" json:"shockhost,omitempty" mapstructure:"shockhost,omitempty"` // specifies default Shock host for outputs CWL_workunit *CWL_workunit `bson:"cwl,omitempty" json:"cwl,omitempty" mapstructure:"cwl,omitempty"` WorkPath string // this is the working directory. If empty, it will be computed. WorkPerf *WorkPerf }
func NewWorkunit ¶
func (*Workunit) CDworkpath ¶
func (*Workunit) GetId ¶ added in v0.9.62
func (w *Workunit) GetId() (id Workunit_Unique_Identifier)
type WorkunitList ¶ added in v0.9.62
type WorkunitList struct { RWMutex `bson:"-" json:"-"` Data []string `json:"data"` // contains filtered or unexported fields }
func NewWorkunitList ¶ added in v0.9.62
func NewWorkunitList() *WorkunitList
func (*WorkunitList) Add ¶ added in v0.9.62
func (cl *WorkunitList) Add(workid Workunit_Unique_Identifier) (err error)
lock always
func (*WorkunitList) Delete ¶ added in v0.9.62
func (cl *WorkunitList) Delete(workid Workunit_Unique_Identifier, write_lock bool) (err error)
func (*WorkunitList) Delete_all ¶ added in v0.9.62
func (cl *WorkunitList) Delete_all(workid string, write_lock bool) (err error)
func (*WorkunitList) FillMap ¶ added in v0.9.62
func (cl *WorkunitList) FillMap() (err error)
opposite of sync; take Data entries and copy them into map
func (*WorkunitList) Get_list ¶ added in v0.9.62
func (cl *WorkunitList) Get_list(do_read_lock bool) (assigned_work_ids []Workunit_Unique_Identifier, err error)
func (*WorkunitList) Get_string_list ¶ added in v0.9.62
func (cl *WorkunitList) Get_string_list(do_read_lock bool) (work_ids []string, err error)
func (*WorkunitList) Has ¶ added in v0.9.62
func (cl *WorkunitList) Has(workid Workunit_Unique_Identifier) (ok bool, err error)
func (*WorkunitList) Init ¶ added in v0.9.62
func (this *WorkunitList) Init(name string)
type WorkunitMap ¶ added in v0.9.33
type WorkunitMap struct { RWMutex Map map[Workunit_Unique_Identifier]*Workunit }
func NewWorkunitMap ¶ added in v0.9.33
func NewWorkunitMap() *WorkunitMap
func (*WorkunitMap) Delete ¶ added in v0.9.33
func (wm *WorkunitMap) Delete(id Workunit_Unique_Identifier) (err error)
func (*WorkunitMap) Get ¶ added in v0.9.33
func (wm *WorkunitMap) Get(id Workunit_Unique_Identifier) (workunit *Workunit, ok bool, err error)
func (*WorkunitMap) GetWorkunits ¶ added in v0.9.33
func (wm *WorkunitMap) GetWorkunits() (workunits []*Workunit, err error)
func (*WorkunitMap) Len ¶ added in v0.9.33
func (wm *WorkunitMap) Len() (length int, err error)
func (*WorkunitMap) Set ¶ added in v0.9.33
func (wm *WorkunitMap) Set(workunit *Workunit) (err error)
type Workunit_Unique_Identifier ¶ added in v0.9.62
type Workunit_Unique_Identifier struct { Task_Unique_Identifier `bson:",inline" json:",inline" mapstructure:",squash"` // TaskName, Workflow, JobId Rank int `bson:"rank" json:"rank" mapstructure:"rank"` // this is the local identifier }
func New_Workunit_Unique_Identifier ¶ added in v0.9.62
func New_Workunit_Unique_Identifier(task Task_Unique_Identifier, rank int) (wui Workunit_Unique_Identifier)
func New_Workunit_Unique_Identifier_FromString ¶ added in v0.9.62
func New_Workunit_Unique_Identifier_FromString(old_style_id string) (w Workunit_Unique_Identifier, err error)
func New_Workunit_Unique_Identifier_from_interface ¶ added in v0.9.62
func New_Workunit_Unique_Identifier_from_interface(original interface{}) (wui Workunit_Unique_Identifier, err error)
func (Workunit_Unique_Identifier) GetTask ¶ added in v0.9.62
func (w Workunit_Unique_Identifier) GetTask() Task_Unique_Identifier
func (Workunit_Unique_Identifier) String ¶ added in v0.9.62
func (w Workunit_Unique_Identifier) String() (work_str string, err error)
type WorkunitsSortby ¶ added in v0.9.8
func (WorkunitsSortby) Len ¶ added in v0.9.8
func (w WorkunitsSortby) Len() int
func (WorkunitsSortby) Less ¶ added in v0.9.8
func (w WorkunitsSortby) Less(i, j int) bool
func (WorkunitsSortby) Swap ¶ added in v0.9.8
func (w WorkunitsSortby) Swap(i, j int)
Source Files ¶
- awfmgr.go
- client.go
- clientgroup.go
- clientgroups.go
- clientmap.go
- clients.go
- command.go
- core.go
- cqmgr.go
- cwl2awe.go
- cwl_workunit.go
- cwl_workunit_result.go
- db.go
- expire.go
- info.go
- io.go
- job.go
- jobmap.go
- jobs.go
- perf.go
- pipeline.go
- proxymgr.go
- resmgr.go
- rwmutex.go
- servermgr.go
- task.go
- taskUniqueIdentifier.go
- taskmap.go
- utilproxy.go
- workRequestQueue.go
- workflow.go
- workflowInstance.go
- worklog.go
- workqueue.go
- workunit.go
- workunitUniqueIdentifier.go
- workunitlist.go
- workunitmap.go
- workunitsSortby.go