Class: Hcloud::Server
- Inherits:
-
Object
- Object
- Hcloud::Server
- Includes:
- EntryLoader
- Defined in:
- lib/hcloud/server.rb
Constant Summary collapse
- Attributes =
{ id: nil, name: nil, status: nil, created: :time, public_net: nil, server_type: ServerType, datacenter: Datacenter, image: Image, iso: nil, rescue_enabled: nil, locked: nil, backup_window: nil, outgoing_traffic: nil, ingoing_traffic: nil, included_traffic: nil }
Instance Method Summary collapse
- #actions ⇒ Object
- #attach_iso(iso:) ⇒ Object
- #change_type(server_type:, upgrade_disk: nil) ⇒ Object
- #create_image(description: nil, type: nil) ⇒ Object
- #destroy ⇒ Object
- #enable_backup(backup_window:) ⇒ Object
- #enable_rescue(type: "linux64", ssh_keys: []) ⇒ Object
- #rebuild(image:) ⇒ Object
- #reset_password ⇒ Object
- #update(name:) ⇒ Object
Methods included from EntryLoader
Instance Method Details
#actions ⇒ Object
90 91 92 |
# File 'lib/hcloud/server.rb', line 90 def actions ActionResource.new(client: client, parent: self, base_path: base_path) end |
#attach_iso(iso:) ⇒ Object
76 77 78 79 |
# File 'lib/hcloud/server.rb', line 76 def attach_iso(iso:) action(request(base_path("actions/attach_iso"), j: {iso: iso}))[0] end |
#change_type(server_type:, upgrade_disk: nil) ⇒ Object
63 64 65 66 67 68 69 |
# File 'lib/hcloud/server.rb', line 63 def change_type(server_type:, upgrade_disk: nil) query = {} method(:change_type).parameters.inject(query) do |r,x| (var = eval(x.last.to_s)).nil? ? r : r.merge!(x.last => var) end action(request(base_path("actions/change_type"), j: query))[0] end |
#create_image(description: nil, type: nil) ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/hcloud/server.rb', line 49 def create_image(description: nil, type: nil) query = {} method(:create_image).parameters.inject(query) do |r,x| (var = eval(x.last.to_s)).nil? ? r : r.merge!(x.last => var) end a , j = action(request(base_path("actions/create_image"), j: query)) [a, Image.new(j["image"], parent, client)] end |
#destroy ⇒ Object
31 32 33 |
# File 'lib/hcloud/server.rb', line 31 def destroy action(request(base_path, method: :delete))[0] end |
#enable_backup(backup_window:) ⇒ Object
71 72 73 74 |
# File 'lib/hcloud/server.rb', line 71 def enable_backup(backup_window:) action(request(base_path("actions/enable_backup"), j: {backup_window: backup_window}))[0] end |
#enable_rescue(type: "linux64", ssh_keys: []) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/hcloud/server.rb', line 35 def enable_rescue(type: "linux64", ssh_keys: []) query = {} method(:enable_rescue).parameters.inject(query) do |r,x| (var = eval(x.last.to_s)).nil? ? r : r.merge!(x.last => var) end a , j = action(request(base_path("actions/enable_rescue"), j: query)) [a, j["root_password"]] end |
#rebuild(image:) ⇒ Object
58 59 60 61 |
# File 'lib/hcloud/server.rb', line 58 def rebuild(image:) a , j = action(request(base_path("actions/rebuild"), j: {image: image})) [a, j["root_password"]] end |
#reset_password ⇒ Object
44 45 46 47 |
# File 'lib/hcloud/server.rb', line 44 def reset_password a , j = action(request(base_path("actions/reset_password"), method: :post)) [a, j["root_password"]] end |
#update(name:) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/hcloud/server.rb', line 23 def update(name:) Server.new( Oj.load(request(base_path, j: {name: name}, method: :put).run.body)["server"], parent, client ) end |