func (api *restAPI) fillWorker(namespace coordinate.Namespace, worker coordinate.Worker, result *restdata.Worker) error { err := api.fillWorkerShort(namespace, worker, &result.WorkerShort) if err == nil { err = buildURLs(api.Router, "namespace", namespace.Name(), "worker", worker.Name(), ). URL(&result.RequestAttemptsURL, "workerRequestAttempts"). URL(&result.MakeAttemptURL, "workerMakeAttempt"). URL(&result.ActiveAttemptsURL, "workerActiveAttempts"). URL(&result.AllAttemptsURL, "workerAllAttempts"). URL(&result.ChildAttemptsURL, "workerChildAttempts"). Error } var parent coordinate.Worker if err == nil { parent, err = worker.Parent() } if err == nil && parent != nil { parentName := parent.Name() result.Parent = &parentName err = buildURLs(api.Router, "namespace", namespace.Name(), "worker", parent.Name(), ). URL(&result.ParentURL, "worker"). Error } var children []coordinate.Worker if err == nil { children, err = worker.Children() } if err == nil { result.ChildURLs = make([]string, len(children)) for i, child := range children { err = buildURLs(api.Router, "namespace", namespace.Name(), "worker", child.Name(), ). URL(&result.ChildURLs[i], "worker"). Error if err != nil { break } } } if err == nil { result.Active, err = worker.Active() } if err == nil { result.Mode, err = worker.Mode() } if err == nil { result.Data, err = worker.Data() } if err == nil { result.Expiration, err = worker.Expiration() } if err == nil { result.LastUpdate, err = worker.LastUpdate() } return err }