From db7326bc0f182c456d8806d1d6cba348962c01eb Mon Sep 17 00:00:00 2001 From: Daniel Molina Date: Mon, 1 Oct 2012 15:36:50 +0200 Subject: [PATCH] feature #1383: Check if item key exists in describe* commands --- src/cloud/ec2/bin/econe-describe-addresses | 8 +++++++- src/cloud/ec2/bin/econe-describe-images | 8 +++++++- src/cloud/ec2/bin/econe-describe-instances | 10 +++++++++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/cloud/ec2/bin/econe-describe-addresses b/src/cloud/ec2/bin/econe-describe-addresses index 0a73cd0118..0dce55e95b 100755 --- a/src/cloud/ec2/bin/econe-describe-addresses +++ b/src/cloud/ec2/bin/econe-describe-addresses @@ -74,7 +74,13 @@ CommandParser::CmdParser.new(ARGV) do if CloudClient::is_error?(rc) exit_with_code -1, "#{cmd_name}: #{rc.message}" else - TABLE.show(rc['addressesSet']['item'] || []) + if rc.empty? || rc['addressesSet'].nil? || rc['addressesSet']['item'].nil? + addrs = [] + else + addrs = rc['addressesSet']['item'] + end + + TABLE.show(addrs) exit_with_code 0 end end diff --git a/src/cloud/ec2/bin/econe-describe-images b/src/cloud/ec2/bin/econe-describe-images index 0aa78d012d..7ada55841e 100755 --- a/src/cloud/ec2/bin/econe-describe-images +++ b/src/cloud/ec2/bin/econe-describe-images @@ -86,7 +86,13 @@ used with an OpenNebula Cloud." if CloudClient::is_error?(rc) exit_with_code -1, "#{cmd_name}: #{rc.message}" else - TABLE.show(rc['imagesSet']['item'] || []) + if rc.empty? || rc['imagesSet'].nil? || rc['imagesSet']['item'].nil? + imgs = [] + else + imgs = rc['imagesSet']['item'] + end + + TABLE.show(imgs) exit_with_code 0 end end diff --git a/src/cloud/ec2/bin/econe-describe-instances b/src/cloud/ec2/bin/econe-describe-instances index 1ef55014ca..89a68f0684 100755 --- a/src/cloud/ec2/bin/econe-describe-instances +++ b/src/cloud/ec2/bin/econe-describe-instances @@ -84,7 +84,15 @@ CommandParser::CmdParser.new(ARGV) do if CloudClient::is_error?(rc) exit_with_code -1, "#{cmd_name}: #{rc.message}" else - TABLE.show(rc['reservationSet']['item'][0]['instancesSet']['item'] || []) + if rc.empty? || + rc['reservationSet']['item'][0]['instancesSet'].nil? || + rc['reservationSet']['item'][0]['instancesSet']['item'].nil? + insts = [] + else + insts = rc['reservationSet']['item'][0]['instancesSet']['item'] + end + + TABLE.show(insts) exit_with_code 0 end end