class Miasma::Models::Compute::OpenStack
Constants
- SERVER_STATE_MAP
@return [Smash] map state to valid internal values
Public Instance Methods
server_all()
click to toggle source
# File lib/miasma/contrib/open_stack/compute.rb, line 73 def server_all result = request( :method => :get, :path => '/servers/detail' ) result[:body].fetch(:servers, []).map do |srv| Server.new( self, :id => srv[:id], :name => srv[:name], :image_id => srv.get(:image, :id), :flavor_id => srv.get(:flavor, :id), :state => SERVER_STATE_MAP.fetch(srv[:status], :pending), :addresses_private => srv.fetch(:addresses, :private, []).map{|a| Server::Address.new( :version => a[:version].to_i, :address => a[:addr] ) }, :addresses_public => srv.fetch(:addresses, :public, []).map{|a| Server::Address.new( :version => a[:version].to_i, :address => a[:addr] ) }, :status => srv[:status], :key_name => srv[:key_name] ).valid_state end end
server_change_state(server, state)
click to toggle source
# File lib/miasma/contrib/open_stack/compute.rb, line 55 def server_change_state(server, state) end
server_destroy(server)
click to toggle source
# File lib/miasma/contrib/open_stack/compute.rb, line 42 def server_destroy(server) if(server.persisted?) result = request( :expects => 204, :method => :delete, :path => "/servers/#{server.id}" ) true else false end end
server_reload(server)
click to toggle source
# File lib/miasma/contrib/open_stack/compute.rb, line 58 def server_reload(server) res = servers.reload.all node = res.detect do |s| s.id == server.id end if(node) server.load_data(node.data.dup) server.valid_state else server.data[:state] = :terminated server.dirty.clear server end end
server_save(server)
click to toggle source
# File lib/miasma/contrib/open_stack/compute.rb, line 18 def server_save(server) unless(server.persisted?) server.load_data(server.attributes) result = request( :expects => 202, :method => :post, :path => '/servers', :json => { :server => { :flavorRef => server.flavor_id, :name => server.name, :imageRef => server.image_id, :metadata => server.metadata, :personality => server.personality, :key_pair => server.key_name } } ) server.id = result.get(:body, :server, :id) else raise "WAT DO I DO!?" end end