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.each {|l| puts l[:l] } return end end } end end end