class Appfront::Command::Ps
Public Class Methods
force_restart(args, opts)
click to toggle source
# File lib/appfront/command/ps.rb, line 17 def self.force_restart(args, opts) find_deploy! opts api.put "/flow/#{@deploy}/force-restart" spinner "Force restarting Deploy..." do loop do sleep 3 info = api.get "/flow/#{@deploy}" break if info['status'] == 'running' end end puts "\n" end
reload(args, opts)
click to toggle source
# File lib/appfront/command/ps.rb, line 3 def self.reload(args, opts) find_deploy! opts api.put "/flow/#{@deploy}/reload" spinner "Reloading Deploy..." do loop do sleep 3 info = api.get "/flow/#{@deploy}" break if info['status'] == 'running' or info['status'] == 'pending_reload' end end puts "\n" end
run(settings, opts)
click to toggle source
# File lib/appfront/command/ps.rb, line 78 def self.run(settings, opts) find_deploy! opts count = 1 unless count puts 'Usage: appfront ps:run' exit 1 end api.put "/flow/#{@deploy}/scale", instances: count spinner "Running deploy instance..." do loop do sleep 3 info = api.get "/flow/#{@deploy}" break if info['status'] == 'running' or info['status'] == 'new' or info['status'] == 'pending_recovery' end end puts "Now running #{count} instances" end
scale(settings, opts)
click to toggle source
# File lib/appfront/command/ps.rb, line 101 def self.scale(settings, opts) find_deploy! opts count, mode = nil settings.each do |s| p, v = s.split('=',2) count = v if p == 'instances' mode = nil end p, v = settings.first.split('=',2) if p == 'instances' unless count puts 'Usage: appfront ps:scale instances=N' exit 1 end api.put "/flow/#{@deploy}/scale", instances: count spinner "Scaling deploy instances..." do loop do sleep 3 info = api.get "/flow/#{@deploy}" break if info['status'] == 'running' or info['status'] == 'new' or info['status'] == 'pending_recovery' end end puts "Now deploying #{count} instances" elsif p == 'memory' count = v api.put "/flow/#{@deploy}/memory", memory: count spinner "Scaling deploy memory..." do loop do sleep 3 info = api.get "/flow/#{@deploy}" break if info['status'] == 'pending_reload' or info['status'] == 'pending_reset' end end puts "Now deploying with #{count} memory" else puts 'Usage: appfront ps:scale instances=N|memory=MB' exit 1 end end
scale_down(opts)
click to toggle source
# File lib/appfront/command/ps.rb, line 68 def self.scale_down(opts) find_deploy! opts spinner "Scaling down deploy instances..." do api.put "/flow/#{@deploy}/scale/down" end puts "\n" end
scale_up(opts)
click to toggle source
# File lib/appfront/command/ps.rb, line 59 def self.scale_up(opts) find_deploy! opts spinner "Scaling up deploy instances..." do api.put "/flow/#{@deploy}/scale/up" end puts "\n" end
start(args, opts)
click to toggle source
# File lib/appfront/command/ps.rb, line 45 def self.start(args, opts) find_deploy! opts api.put "/flow/#{@deploy}/start" spinner "Starting Deploy..." do loop do sleep 3 info = api.get "/flow/#{@deploy}" break if info['status'] == 'available' end end puts "\n" end
stop(args, opts)
click to toggle source
# File lib/appfront/command/ps.rb, line 31 def self.stop(args, opts) find_deploy! opts api.put "/flow/#{@deploy}/stop" spinner "Stopping Deploy..." do loop do sleep 3 info = api.get "/flow/#{@deploy}" break if info['status'] == 'deactivated' or info['status'] == 'stopped' end end puts "\n" end
Private Class Methods
time_ago(since)
click to toggle source
# File lib/appfront/command/ps.rb, line 152 def self.time_ago(since) if since.is_a?(String) since = Time.parse(since) end elapsed = Time.now - since message = since.strftime("%Y/%m/%d %H:%M:%S") if elapsed <= 60 message << " (~ #{elapsed.floor}s ago)" elsif elapsed <= (60 * 60) message << " (~ #{(elapsed / 60).floor}m ago)" elsif elapsed <= (60 * 60 * 25) message << " (~ #{(elapsed / 60 / 60).floor}h ago)" end message end