summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Javorski <mike.javorski@gmail.com>2013-04-12 16:26:18 -0700
committerMike Javorski <mike.javorski@gmail.com>2013-04-12 16:30:47 -0700
commit99fda9c132e318c851ecfce94690ada8e5434f60 (patch)
tree18f7262cb5a4e5bed52901871ac4e256f74d4e60
parente636075ceaca5c20f706ec33f921172ba04609b1 (diff)
downloadohai-99fda9c132e318c851ecfce94690ada8e5434f60.tar.gz
OHAI-434: Raise error on non-200 response while retrieving EC2 metadata
-rw-r--r--lib/ohai/mixin/ec2_metadata.rb6
-rw-r--r--spec/unit/mixin/ec2_metadata_spec.rb10
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/ohai/mixin/ec2_metadata.rb b/lib/ohai/mixin/ec2_metadata.rb
index 0c66cf31..49b4647e 100644
--- a/lib/ohai/mixin/ec2_metadata.rb
+++ b/lib/ohai/mixin/ec2_metadata.rb
@@ -99,7 +99,11 @@ module Ohai
end
def metadata_get(id, api_version)
- http_client.get("/#{api_version}/meta-data/#{id}")
+ response = http_client.get("/#{api_version}/meta-data/#{id}")
+ unless response.code == '200'
+ raise "Encountered error retrieving EC2 metadata (returned #{response.code} response)"
+ end
+ response
end
def fetch_metadata(id='', api_version=nil)
diff --git a/spec/unit/mixin/ec2_metadata_spec.rb b/spec/unit/mixin/ec2_metadata_spec.rb
index d327fabd..a91da4c1 100644
--- a/spec/unit/mixin/ec2_metadata_spec.rb
+++ b/spec/unit/mixin/ec2_metadata_spec.rb
@@ -69,4 +69,14 @@ describe Ohai::Mixin::Ec2Metadata do
end
end
end
+
+ context "#metadata_get" do
+ context "when the response code is unexpected" do
+ let(:response) { mock("Net::HTTP Response", :body => "", :code => "418") }
+
+ it "raises an error" do
+ lambda { mixin.metadata_get('', '2012-01-12') }.should raise_error(RuntimeError)
+ end
+ end
+ end
end