From 2fa7e1e73677eccb9459257e0d29ce1df9f1bead Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Wed, 25 Feb 2015 17:24:28 -0800 Subject: [PATCH 1/4] move 'content_type :json' to the beginning of endpoint defs --- lib/vmpooler/api.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/vmpooler/api.rb b/lib/vmpooler/api.rb index fbae20c..064d2c8 100644 --- a/lib/vmpooler/api.rb +++ b/lib/vmpooler/api.rb @@ -49,6 +49,8 @@ module Vmpooler end get '/dashboard/stats/vmpooler/pool/?' do + content_type :json + result = Hash.new $config[:pools].each do |pool| @@ -98,11 +100,12 @@ module Vmpooler end end - content_type :json JSON.pretty_generate(result) end get '/dashboard/stats/vmpooler/running/?' do + content_type :json + result = Hash.new $config[:pools].each do |pool| @@ -149,7 +152,6 @@ module Vmpooler end end - content_type :json JSON.pretty_generate(result) end @@ -230,6 +232,8 @@ module Vmpooler end get '/summary/?' do + content_type :json + result = { clone: { duration: { @@ -341,7 +345,6 @@ module Vmpooler result[:clone][:count][:average] = mean(total_clones_per_day) end - content_type :json JSON.pretty_generate(result) end From c66315ce2625c17aebd8237a0e765238a48bc4c7 Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Wed, 25 Feb 2015 17:26:33 -0800 Subject: [PATCH 2/4] deprecate 'Hash.new' for '{}' --- lib/vmpooler/api.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/vmpooler/api.rb b/lib/vmpooler/api.rb index 064d2c8..4d20ae7 100644 --- a/lib/vmpooler/api.rb +++ b/lib/vmpooler/api.rb @@ -51,7 +51,7 @@ module Vmpooler get '/dashboard/stats/vmpooler/pool/?' do content_type :json - result = Hash.new + result = {} $config[:pools].each do |pool| result[pool['name']] ||= Hash.new @@ -106,7 +106,7 @@ module Vmpooler get '/dashboard/stats/vmpooler/running/?' do content_type :json - result = Hash.new + result = {} $config[:pools].each do |pool| running = $redis.scard('vmpooler__running__' + pool['name']) From bfbcde24be19b43df43810f9b7a8868015cced62 Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Wed, 25 Feb 2015 17:36:32 -0800 Subject: [PATCH 3/4] set proper HTTP status codes --- lib/vmpooler/api.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/vmpooler/api.rb b/lib/vmpooler/api.rb index 4d20ae7..142c3bc 100644 --- a/lib/vmpooler/api.rb +++ b/lib/vmpooler/api.rb @@ -207,6 +207,7 @@ module Vmpooler end if result[:status][:empty] + status 503 result[:status][:ok] = false result[:status][:message] = "Found #{result[:status][:empty].length} empty pools." end @@ -403,11 +404,13 @@ module Vmpooler else result[key]['ok'] = false ## + status 503 result['ok'] = false end end end else + status 503 result['ok'] = false end @@ -462,10 +465,12 @@ module Vmpooler else result[template]['ok'] = false ## + status 503 result['ok'] = false end end else + status 503 result['ok'] = false end @@ -481,11 +486,13 @@ module Vmpooler result = {} + status 404 result['ok'] = false params[:hostname] = hostname_shorten(params[:hostname]) if $redis.exists('vmpooler__vm__' + params[:hostname]) + stauts 200 result['ok'] = true result[params[:hostname]] = {} @@ -507,6 +514,7 @@ module Vmpooler result = {} + status 404 result['ok'] = false params[:hostname] = hostname_shorten(params[:hostname]) @@ -515,6 +523,8 @@ module Vmpooler if $redis.sismember('vmpooler__running__' + pool['name'], params[:hostname]) $redis.srem('vmpooler__running__' + pool['name'], params[:hostname]) $redis.sadd('vmpooler__completed__' + pool['name'], params[:hostname]) + + status 200 result['ok'] = true end end @@ -527,6 +537,7 @@ module Vmpooler result = {} + status 404 result['ok'] = false params[:hostname] = hostname_shorten(params[:hostname]) @@ -541,6 +552,8 @@ module Vmpooler if arg > 0 $redis.hset('vmpooler__vm__' + params[:hostname], param, arg) + + status 200 result['ok'] = true end end From 0a9d4e4a3f55299d10281772ae6943a0456aca52 Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Thu, 26 Feb 2015 09:51:14 -0800 Subject: [PATCH 4/4] Don't return 503 for a valid GET /status request --- lib/vmpooler/api.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/vmpooler/api.rb b/lib/vmpooler/api.rb index 142c3bc..0397883 100644 --- a/lib/vmpooler/api.rb +++ b/lib/vmpooler/api.rb @@ -207,7 +207,6 @@ module Vmpooler end if result[:status][:empty] - status 503 result[:status][:ok] = false result[:status][:message] = "Found #{result[:status][:empty].length} empty pools." end