From acc44f8836fc5a762a7c6b685c16cd2892ba1456 Mon Sep 17 00:00:00 2001 From: Andrew Brown Date: Fri, 14 Aug 2015 10:47:46 -0400 Subject: Use new json_response API for /server_api_version We should be using the new API for json_response, since this is a new endpoint. --- lib/chef_zero/endpoints/server_api_version_endpoint.rb | 4 +++- lib/chef_zero/rest_base.rb | 8 ++++---- lib/chef_zero/rest_request.rb | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/chef_zero/endpoints/server_api_version_endpoint.rb b/lib/chef_zero/endpoints/server_api_version_endpoint.rb index a4bb35f..631f105 100644 --- a/lib/chef_zero/endpoints/server_api_version_endpoint.rb +++ b/lib/chef_zero/endpoints/server_api_version_endpoint.rb @@ -4,8 +4,10 @@ module ChefZero module Endpoints # /server_api_version class ServerAPIVersionEndpoint < RestBase + API_VERSION = 1 def get(request) - json_response(200, {"min_api_version"=>MIN_API_VERSION, "max_api_version"=>MAX_API_VERSION}) + json_response(200, {"min_api_version"=>MIN_API_VERSION, "max_api_version"=>MAX_API_VERSION}, + request.api_version, API_VERSION) end end end diff --git a/lib/chef_zero/rest_base.rb b/lib/chef_zero/rest_base.rb index 3036903..715d705 100644 --- a/lib/chef_zero/rest_base.rb +++ b/lib/chef_zero/rest_base.rb @@ -19,7 +19,7 @@ module ChefZero version = request.api_version return nil if version.nil? # Not present in headers - if version.to_i.to_s != version # Version is not an Integer + if version.to_i.to_s != version.to_s # Version is not an Integer return json_response(406, { "username" => request.requestor }, -1, -1) elsif version.to_i > MAX_API_VERSION or version.to_i < MIN_API_VERSION response = { @@ -208,9 +208,9 @@ module ChefZero end def already_json_response(response_code, json_text, request_version=0, response_version=0) - header = { "min_version" => MIN_API_VERSION, "max_version" => MAX_API_VERSION, - "request_version" => request_version, - "response_version" => response_version } + header = { "min_version" => MIN_API_VERSION.to_s, "max_version" => MAX_API_VERSION.to_s, + "request_version" => request_version.to_s, + "response_version" => response_version.to_s } [ response_code, { "Content-Type" => "application/json", "X-Ops-Server-API-Version" => FFI_Yajl::Encoder.encode(header) }, diff --git a/lib/chef_zero/rest_request.rb b/lib/chef_zero/rest_request.rb index ea96110..6b37c18 100644 --- a/lib/chef_zero/rest_request.rb +++ b/lib/chef_zero/rest_request.rb @@ -19,7 +19,7 @@ module ChefZero end def api_version - @env['HTTP_X_OPS_SERVER_API_VERSION'] + @env['HTTP_X_OPS_SERVER_API_VERSION'] || 0 end def requestor -- cgit v1.2.1