Class: OctaSpace::Resources::Nodes

Inherits:
Base
  • Object
show all
Defined in:
lib/octaspace/resources/nodes.rb

Overview

Node-related API endpoints

Examples:

client.nodes.list
client.nodes.find(123)
client.nodes.reboot(123)
client.nodes.update_prices(123, gpu_hour: 0.5, cpu_hour: 0.1)

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from OctaSpace::Resources::Base

Instance Method Details

#download_ident(id) ⇒ OctaSpace::Response

Download node identity file (binary response) GET /nodes/:id/ident

Parameters:

  • id (Integer, String)

Returns:



33
34
35
# File 'lib/octaspace/resources/nodes.rb', line 33

def download_ident(id)
  get("/nodes/#{encode(id)}/ident")
end

#download_logs(id) ⇒ OctaSpace::Response

Download node logs (binary response) GET /nodes/:id/logs

Parameters:

  • id (Integer, String)

Returns:



41
42
43
# File 'lib/octaspace/resources/nodes.rb', line 41

def download_logs(id)
  get("/nodes/#{encode(id)}/logs")
end

#find(id) ⇒ OctaSpace::Response

Fetch a single node by ID GET /nodes/:id

Parameters:

  • id (Integer, String)

Returns:



25
26
27
# File 'lib/octaspace/resources/nodes.rb', line 25

def find(id)
  get("/nodes/#{encode(id)}")
end

#list(**params) ⇒ OctaSpace::Response

List all nodes GET /nodes

Parameters:

  • params (Hash)

    optional filter/pagination params

Returns:



17
18
19
# File 'lib/octaspace/resources/nodes.rb', line 17

def list(**params)
  get("/nodes", params:)
end

#reboot(id) ⇒ OctaSpace::Response

Reboot a node GET /nodes/:id/reboot

Parameters:

  • id (Integer, String)

Returns:



58
59
60
# File 'lib/octaspace/resources/nodes.rb', line 58

def reboot(id)
  get("/nodes/#{encode(id)}/reboot")
end

#update_prices(id, **prices) ⇒ OctaSpace::Response

Update node pricing PATCH /nodes/:id/prices

Parameters:

  • id (Integer, String)
  • prices (Hash)

    e.g. { gpu_hour: 0.5, cpu_hour: 0.1 }

Returns:



50
51
52
# File 'lib/octaspace/resources/nodes.rb', line 50

def update_prices(id, **prices)
  patch("/nodes/#{encode(id)}/prices", body: prices)
end