diff options
author | Mike Javorski <mike.javorski@gmail.com> | 2013-04-12 16:26:18 -0700 |
---|---|---|
committer | Mike Javorski <mike.javorski@gmail.com> | 2013-04-12 16:30:47 -0700 |
commit | 99fda9c132e318c851ecfce94690ada8e5434f60 (patch) | |
tree | 18f7262cb5a4e5bed52901871ac4e256f74d4e60 | |
parent | e636075ceaca5c20f706ec33f921172ba04609b1 (diff) | |
download | ohai-99fda9c132e318c851ecfce94690ada8e5434f60.tar.gz |
OHAI-434: Raise error on non-200 response while retrieving EC2 metadata
-rw-r--r-- | lib/ohai/mixin/ec2_metadata.rb | 6 | ||||
-rw-r--r-- | spec/unit/mixin/ec2_metadata_spec.rb | 10 |
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 |