Class: Pvectl::Services::TaskListing
- Inherits:
-
Object
- Object
- Pvectl::Services::TaskListing
- Defined in:
- lib/pvectl/services/task_listing.rb
Overview
Service for listing tasks across one or all cluster nodes.
Encapsulates multi-node iteration, merge, sort, and limit logic. Used by both Get::Handlers::Tasks and Logs::Handlers::TaskLogs.
Instance Method Summary collapse
-
#initialize(task_list_repository:, node_repository:) ⇒ TaskListing
constructor
Creates a new TaskListing service.
-
#list(node: nil, vmid: nil, limit: 50, since: nil, until_time: nil, type_filter: nil, status_filter: nil) ⇒ Array<Models::TaskEntry>
Lists tasks, optionally filtered.
Constructor Details
#initialize(task_list_repository:, node_repository:) ⇒ TaskListing
Creates a new TaskListing service.
22 23 24 25 |
# File 'lib/pvectl/services/task_listing.rb', line 22 def initialize(task_list_repository:, node_repository:) @task_list_repository = task_list_repository @node_repository = node_repository end |
Instance Method Details
#list(node: nil, vmid: nil, limit: 50, since: nil, until_time: nil, type_filter: nil, status_filter: nil) ⇒ Array<Models::TaskEntry>
Lists tasks, optionally filtered.
When node is nil, iterates all cluster nodes and merges results sorted by starttime descending.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/pvectl/services/task_listing.rb', line 40 def list(node: nil, vmid: nil, limit: 50, since: nil, until_time: nil, type_filter: nil, status_filter: nil) if node @task_list_repository.list( node: node, vmid: vmid, limit: limit, since: since, until_time: until_time, type_filter: type_filter, status_filter: status_filter ) else list_all_nodes( vmid: vmid, limit: limit, since: since, until_time: until_time, type_filter: type_filter, status_filter: status_filter ) end end |