(info *session.Info, activation taskRoleActivation)
| 522 | } |
| 523 | |
| 524 | func taskRoleSessionMatches(info *session.Info, activation taskRoleActivation) bool { |
| 525 | if info == nil { |
| 526 | return false |
| 527 | } |
| 528 | if !taskRoleSessionStateReusable(info.State) { |
| 529 | return false |
| 530 | } |
| 531 | if strings.TrimSpace(info.AgentName) != activation.AgentName { |
| 532 | return false |
| 533 | } |
| 534 | if strings.TrimSpace(info.Channel) != activation.Channel { |
| 535 | return false |
| 536 | } |
| 537 | if strings.TrimSpace(info.Name) != taskRoleSessionName(activation) { |
| 538 | return false |
| 539 | } |
| 540 | switch activation.Scope { |
| 541 | case taskpkg.ScopeWorkspace: |
| 542 | return strings.TrimSpace(info.WorkspaceID) == activation.WorkspaceID |
| 543 | case taskpkg.ScopeGlobal: |
| 544 | return strings.TrimSpace(info.WorkspaceID) == "" && |
| 545 | strings.TrimSpace(info.Workspace) == activation.WorkspacePath |
| 546 | default: |
| 547 | return false |
| 548 | } |
| 549 | } |
| 550 | |
| 551 | func taskRoleSessionStateReusable(state session.State) bool { |
| 552 | switch state { |
no test coverage detected