43 lines
1.0 KiB
Ruby
43 lines
1.0 KiB
Ruby
class PVE::Cli
|
|
def cli_task
|
|
cli.sub :task, "Inspect tasks" do |tcli|
|
|
tcli.cmd :list, "List done tasks", &lambda {|node=nil|
|
|
connect
|
|
nodes = Proxmox::Node.all
|
|
nodes = nodes.select {|n| node == n.name } if node
|
|
nodes.flat_map do |n|
|
|
n.tasks.map &:upid
|
|
end.sort.each {|upid| puts upid }
|
|
}
|
|
|
|
tcli.cmd :get, "Inspect a task", &lambda {|upid|
|
|
connect
|
|
Proxmox::Node.all.each do |n|
|
|
n.tasks.each do |t|
|
|
next unless t.upid == upid
|
|
puts t.upid
|
|
t.log( start: 0, limit: 1024).each {|l| puts l[:t] }
|
|
return
|
|
end
|
|
end
|
|
}
|
|
|
|
tcli.cmd :status, "Shows tasks states", &lambda {|upid|
|
|
}
|
|
|
|
tcli.cmd :monitor, "Monitors running tasks", &lambda {|node: nil|
|
|
connect
|
|
nodes = Proxmox::Node.all
|
|
nodes = nodes.select {|n| node == n.name } if node
|
|
tasks = {}
|
|
loop do
|
|
nodes.flat_map do |n|
|
|
n.tasks.map &:upid
|
|
end.sort.each do |upid|
|
|
end
|
|
end
|
|
}
|
|
end
|
|
end
|
|
end
|