Class: Pvectl::Repositories::TaskLog

Inherits:
Base
  • Object
show all
Defined in:
lib/pvectl/repositories/task_log.rb,
sig/pvectl/repositories/task_log.rbs

Overview

Repository for reading a specific task's log output. Uses GET /nodes/node/tasks/upid/log endpoint.

Instance Attribute Summary

Attributes inherited from Base

#connection

Instance Method Summary collapse

Methods inherited from Base

#build_model, #extract_data, #get, #initialize, #models_from, #unwrap

Constructor Details

This class inherits a constructor from Pvectl::Repositories::Base

Instance Method Details

#extract_node_from_upid(upid) ⇒ String

Parameters:

  • upid (String)

Returns:

  • (String)


26
27
28
# File 'lib/pvectl/repositories/task_log.rb', line 26

def extract_node_from_upid(upid)
  upid.split(":")[1]
end

#list(upid:, start: 0, limit: 512) ⇒ Array<Models::TaskLogLine>

Parameters:

  • upid (String)

    task UPID

  • start (Integer) (defaults to: 0)

    line offset (default 0)

  • limit (Integer) (defaults to: 512)

    max lines (default 512)

  • upid: (String)
  • start: (Integer) (defaults to: 0)
  • limit: (Integer) (defaults to: 512)

Returns:



14
15
16
17
18
19
20
21
22
# File 'lib/pvectl/repositories/task_log.rb', line 14

def list(upid:, start: 0, limit: 512)
  node = extract_node_from_upid(upid)
  escaped = CGI.escape(upid)

  response = connection.client["nodes/#{node}/tasks/#{escaped}/log"].get(
    params: { start: start, limit: limit }
  )
  models_from(response, Models::TaskLogLine)
end