class Ey::Core::Client::Server
Attributes
force[RW]
iops[RW]
mnt_volume_size[RW]
snapshot_id[RW]
volume_size[RW]
Public Instance Methods
apply(type="main")
click to toggle source
# File lib/ey-core/models/server.rb, line 44 def apply(type="main") requires :identity connection.requests.new(self.connection.apply_server_updates("id" => self.identity, "type" => type).body["request"]) end
destroy!(skip_snapshot="false")
click to toggle source
# File lib/ey-core/models/server.rb, line 136 def destroy!(skip_snapshot="false") if environment.servers.count == 1 raise Ey::Core::Client::NotPermitted, "Terminating the last server in an environment is not allowed. You must deprovision or destroy the environment instead." end requires :identity params = { :skip_snapshot => skip_snapshot } connection.requests.new( self.connection.destroy_server(self.identity, params).body["request"] ) end
latest_custom_log()
click to toggle source
# File lib/ey-core/models/server.rb, line 54 def latest_custom_log logs.select{|l| l.filename.match(/custom/)}.sort_by(&:created_at).last end
latest_main_log()
click to toggle source
# File lib/ey-core/models/server.rb, line 50 def latest_main_log logs.select{|l| l.filename.match(/main/)}.sort_by(&:created_at).last end
reboot()
click to toggle source
# File lib/ey-core/models/server.rb, line 58 def reboot requires :identity connection.requests.new( self.connection.reboot_server("id" => self.identity).body["request"] ) end
reconcile()
click to toggle source
# File lib/ey-core/models/server.rb, line 82 def reconcile requires :identity connection.requests.new( self.connection.reconcile_server("id" => self.identity).body["request"] ) end
reset_state(state)
click to toggle source
# File lib/ey-core/models/server.rb, line 90 def reset_state(state) params = { "url" => self.collection.url, "id" => self.id, "state" => state } unless new_record? merge_attributes(self.connection.reset_server_state(params).body["server"]) end end
save!()
click to toggle source
# File lib/ey-core/models/server.rb, line 102 def save! if new_record? requires :flavor_id, :role, :environment server_attributes = { "environment" => environment.id, "wait_for_chef" => self.wait_for_chef, "snapshot" => self.snapshot_id, "force" => self.force, "server" => { "dedicated" => self.dedicated, "flavor" => self.flavor_id, "iops" => self.iops, "location" => self.location || environment.region, "mnt_volume_size" => self.mnt_volume_size, "name" => self.name, "release_label" => self.release_label, "role" => self.role, "volume_size" => self.volume_size, "ip_id" => self.ip_id } } connection.requests.new(connection.create_server(server_attributes).body["request"]) else requires :identity server_attributes = Cistern::Hash.slice(Cistern::Hash.stringify_keys(self.attributes), "provisioned_at", "deprovisioned_at", "disappeared_at") server_attributes.merge!("status" => self.state) if self.state connection.update_server( "id" => self.identity, "server" => server_attributes, ) end end
start()
click to toggle source
# File lib/ey-core/models/server.rb, line 74 def start requires :identity connection.requests.new( self.connection.start_server("id" => self.identity).body["request"] ) end
stop()
click to toggle source
# File lib/ey-core/models/server.rb, line 66 def stop requires :identity connection.requests.new( self.connection.stop_server("id" => self.identity).body["request"] ) end