MCPcopy Create free account
hub / github.com/cloudtty/cloudtty / matchWorkerFor

Method matchWorkerFor

pkg/workerpool/worker_pool.go:401–423  ·  view source on GitHub ↗

matchWorkerRequest returns the worker name.

(req *Request)

Source from the content-addressed store, hash-verified

399
400// matchWorkerRequest returns the worker name.
401func (w *WorkerPool) matchWorkerFor(req *Request) (*corev1.Pod, error) {
402 var workerName string
403 for _, item := range w.workerQueue.All() {
404 ns, name, image, _ := SplitWorkerKey(item.(string))
405
406 if ns == req.Namespace && image == req.Image {
407 workerName = name
408 break
409 }
410 }
411
412 if len(workerName) != 0 {
413 worker, err := w.podLister.Pods(req.Namespace).Get(workerName)
414 // TODO: if err is notfound?
415 if err != nil {
416 return nil, err
417 }
418
419 return worker, nil
420 }
421
422 return nil, ErrNotWorker
423}
424
425func (w *WorkerPool) matchRequestFor(worker *corev1.Pod) *Request {
426 for _, item := range w.requestQueue.All() {

Callers 2

handleRequestQueueMethod · 0.95
BorrowMethod · 0.95

Calls 3

SplitWorkerKeyFunction · 0.85
AllMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected