(uq *queues)
| 518 | } |
| 519 | |
| 520 | func isConsistent(uq *queues) error { |
| 521 | if len(uq.sortedQueriers) != len(uq.queriers) { |
| 522 | return fmt.Errorf("inconsistent number of sorted queriers and querier connections") |
| 523 | } |
| 524 | |
| 525 | uc := 0 |
| 526 | for ix, u := range uq.users { |
| 527 | q := uq.userQueues[u] |
| 528 | if u != "" && q == nil { |
| 529 | return fmt.Errorf("user %s doesn't have queue", u) |
| 530 | } |
| 531 | if u == "" && q != nil { |
| 532 | return fmt.Errorf("user %s shouldn't have queue", u) |
| 533 | } |
| 534 | if u == "" { |
| 535 | continue |
| 536 | } |
| 537 | |
| 538 | uc++ |
| 539 | |
| 540 | if q.index != ix { |
| 541 | return fmt.Errorf("invalid user's index, expected=%d, got=%d", ix, q.index) |
| 542 | } |
| 543 | |
| 544 | if q.maxQueriers == 0 && q.queriers != nil { |
| 545 | return fmt.Errorf("user %s has queriers, but maxQueriers=0", u) |
| 546 | } |
| 547 | |
| 548 | if q.maxQueriers > 0 && len(uq.sortedQueriers) <= q.maxQueriers && q.queriers != nil { |
| 549 | return fmt.Errorf("user %s has queriers set despite not enough queriers available", u) |
| 550 | } |
| 551 | |
| 552 | if q.maxQueriers > 0 && len(uq.sortedQueriers) > q.maxQueriers && len(q.queriers) != q.maxQueriers { |
| 553 | return fmt.Errorf("user %s has incorrect number of queriers, expected=%d, got=%d", u, len(q.queriers), q.maxQueriers) |
| 554 | } |
| 555 | } |
| 556 | |
| 557 | if uc != len(uq.userQueues) { |
| 558 | return fmt.Errorf("inconsistent number of users list and user queues") |
| 559 | } |
| 560 | |
| 561 | return nil |
| 562 | } |
| 563 | |
| 564 | // getUsersByQuerier returns the list of users handled by the provided querierID. |
| 565 | func getUsersByQuerier(queues *queues, querierID string) []string { |
no outgoing calls
no test coverage detected