diff options
author | Thom May <thom@chef.io> | 2017-06-07 16:09:01 +0100 |
---|---|---|
committer | Thom May <thom@chef.io> | 2017-07-05 12:20:35 +0100 |
commit | 35e24b6125089cd6bc71c7092e431562707ee8cd (patch) | |
tree | bf8384c3ae80a28f2f57012d67fd541ea92c1ffd /lib/chef/server_api_versions.rb | |
parent | e419d7f0eb0c494a0a2f5d5963eac6fb35153bac (diff) | |
download | chef-35e24b6125089cd6bc71c7092e431562707ee8cd.tar.gz |
Have a sensible default for old chef serverstm/no_api_version
If we don't see a version header, we should default to only supporting
API version 0, and if we can't support that, then we should die as usual
Signed-off-by: Thom May <thom@chef.io>
Diffstat (limited to 'lib/chef/server_api_versions.rb')
-rw-r--r-- | lib/chef/server_api_versions.rb | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/lib/chef/server_api_versions.rb b/lib/chef/server_api_versions.rb index 2a4d0e6a5b..40fb6385e1 100644 --- a/lib/chef/server_api_versions.rb +++ b/lib/chef/server_api_versions.rb @@ -26,15 +26,34 @@ class Chef end def min_server_version - !@versions.nil? ? Integer(@versions["min_version"]) : nil + # If we're working with a pre-api-versioning server, always claim to be zero + if @versions.nil? + unversioned? ? 0 : nil + else + Integer(@versions["min_version"]) + end end def max_server_version - !@versions.nil? ? Integer(@versions["max_version"]) : nil + # If we're working with a pre-api-versioning server, always claim to be zero + if @versions.nil? + unversioned? ? 0 : nil + else + Integer(@versions["max_version"]) + end + end + + def unversioned! + @unversioned = true + end + + def unversioned? + @unversioned end def reset! @versions = nil + @unversioned = false end end end |