Class: Hcloud::ServerResource
- Inherits:
-
AbstractResource
- Object
- AbstractResource
- Hcloud::ServerResource
- Defined in:
- lib/hcloud/server_resource.rb
Instance Attribute Summary
Attributes inherited from AbstractResource
Instance Method Summary collapse
- #[](arg) ⇒ Object
- #all ⇒ Object
- #create(name:, server_type:, datacenter: nil, location: nil, start_after_create: nil, image:, ssh_keys: [], user_data: nil) ⇒ Object
- #find(id) ⇒ Object
- #find_by(name:) ⇒ Object
Methods inherited from AbstractResource
#each, #initialize, #limit, #mj, #order, #page, #per_page
Constructor Details
This class inherits a constructor from Hcloud::AbstractResource
Instance Method Details
#[](arg) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/hcloud/server_resource.rb', line 35 def [](arg) case arg when Integer begin find(arg) rescue Error::NotFound end when String find_by(name: arg) end end |
#all ⇒ Object
23 24 25 26 27 |
# File 'lib/hcloud/server_resource.rb', line 23 def all mj("servers") do |j| j.flat_map{|x| x["servers"].map{ |x| Server.new(x, self, client) } } end end |
#create(name:, server_type:, datacenter: nil, location: nil, start_after_create: nil, image:, ssh_keys: [], user_data: nil) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/hcloud/server_resource.rb', line 3 def create(name:, server_type:, datacenter: nil, location: nil, start_after_create: nil, image:, ssh_keys: [], user_data: nil) query = {} method(:create).parameters.inject(query) do |r,x| (var = eval(x.last.to_s)).nil? ? r : r.merge!(x.last => var) end j = Oj.load(request("servers", j: query, code: 200).run.body) [ Action.new(j["action"], self, client), Server.new(j["server"], self, client), j["root_password"] ] end |