summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaire McQuin <mcquin@users.noreply.github.com>2014-10-13 16:17:07 -0700
committerClaire McQuin <mcquin@users.noreply.github.com>2014-10-13 16:17:07 -0700
commit54f474a0545e43d3d9a02d39999da2328bdfddca (patch)
tree1250512ecc03eed1971c9d88ae57610309f9dc1c
parentac082c86f0a086be1f54fd4b788c9b6b1372995f (diff)
parent0a70d539b3c8fe2533db3f9bca4538107b7e37d0 (diff)
downloadohai-54f474a0545e43d3d9a02d39999da2328bdfddca.tar.gz
Merge pull request #368 from opscode/btm/eucalyptus_404
Eucalyptus metadata server, presume 'latest' API version on 404
-rw-r--r--CHANGELOG.md2
-rw-r--r--lib/ohai/mixin/ec2_metadata.rb5
-rw-r--r--spec/unit/mixin/ec2_metadata_spec.rb7
3 files changed, 9 insertions, 5 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 78085e3b..9e962c3c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -68,7 +68,7 @@
* root_group provider not implemented for Windows (OHAI-491)
* `Ohai::Exceptions::AttributeNotFound` errors in Chef's ohai resource
* Be reluctant to call something an LXC host (OHAI-573)
-
+* Assume 'latest' metadata versions on 404
## Release: 7.0.4
diff --git a/lib/ohai/mixin/ec2_metadata.rb b/lib/ohai/mixin/ec2_metadata.rb
index d01d5cc1..8d775719 100644
--- a/lib/ohai/mixin/ec2_metadata.rb
+++ b/lib/ohai/mixin/ec2_metadata.rb
@@ -76,7 +76,10 @@ module Ohai
def best_api_version
response = http_client.get("/")
- unless response.code == '200'
+ if response.code == '404'
+ Ohai::Log.debug("Received HTTP 404 from metadata server while determining API version, assuming 'latest'")
+ return "latest"
+ elsif response.code != '200'
raise "Unable to determine EC2 metadata version (returned #{response.code} response)"
end
# Note: Sorting the list of versions may have unintended consequences in
diff --git a/spec/unit/mixin/ec2_metadata_spec.rb b/spec/unit/mixin/ec2_metadata_spec.rb
index 1f5a65a2..c9543fe3 100644
--- a/spec/unit/mixin/ec2_metadata_spec.rb
+++ b/spec/unit/mixin/ec2_metadata_spec.rb
@@ -53,11 +53,12 @@ describe Ohai::Mixin::Ec2Metadata do
end
end
+ # Presume 'latest' when we get a 404 for Eucalyptus back-compat
context "when the response code is 404" do
- let(:response) { double("Net::HTTP Response", :body => "1.0\n2011-05-01\n2012-01-12\nUnsupported", :code => "404") }
+ let(:response) { double("Net::HTTP Response", :code => "404") }
- it "raises an error" do
- lambda { mixin.best_api_version}.should raise_error
+ it "returns 'latest' as the version" do
+ mixin.best_api_version.should == 'latest'
end
end