class WrataApi::ServerList
Class for working with several servers at once
Attributes
servers[RW]
@return [Array, Hash] list of servers
Public Class Methods
new(api)
click to toggle source
# File lib/wrata_api/server_list.rb, line 9 def initialize(api) @api = api @servers = [] @concurrent_operation_at_once = 5 end
Public Instance Methods
book()
click to toggle source
Book each server @return [Nothing]
# File lib/wrata_api/server_list.rb, line 68 def book @servers.each do |current| @api.book_server(current['name']) end end
concurrent_action() { |current_server| ... }
click to toggle source
Turn on all servers in list
# File lib/wrata_api/server_list.rb, line 21 def concurrent_action splitted_servers = @servers.each_slice(@concurrent_operation_at_once).to_a splitted_servers.each do |each_slice| threads = [] each_slice.each do |current_server| threads << Thread.new(current_server) do yield(current_server) end end threads.each(&:join) end end
length()
click to toggle source
@return [Integer] count of servers
# File lib/wrata_api/server_list.rb, line 16 def length @servers.length end
power_off()
click to toggle source
Power on all servers @return [Nothing]
# File lib/wrata_api/server_list.rb, line 52 def power_off concurrent_action do |server| @api.power_off_server(server['name']) end end
power_on(size = nil)
click to toggle source
Power on all servers @return [Nothing]
# File lib/wrata_api/server_list.rb, line 36 def power_on(size = nil) concurrent_action do |server| @api.power_on_server(server['name'], size) end end
powered_off?()
click to toggle source
@return [True, False] is all servers powered on?
# File lib/wrata_api/server_list.rb, line 59 def powered_off? @servers.each do |current| return false unless @api.powering_status(current['name']) == :off end true end
powered_on?()
click to toggle source
@return [True, False] is all servers powered on?
# File lib/wrata_api/server_list.rb, line 43 def powered_on? @servers.each do |current| return false unless @api.powering_status(current['name']) == :on end true end
unbook()
click to toggle source
Unbook each server @return [Nothing]
# File lib/wrata_api/server_list.rb, line 76 def unbook @servers.each do |current| @api.unbook_server(current['name']) end end