From 311eefcb35e2f201836bf91f370cc506ebf73e5e Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Thu, 9 Sep 2010 16:22:57 +0200 Subject: [PATCH] bug #341: catch exceptions creating OpenNebula::Client --- share/hooks/image.rb | 8 +++++++- src/authm_mad/one_auth_mad.rb | 14 ++++++++++++-- src/authm_mad/oneauth | 8 +++++++- src/cloud/ec2/lib/econe-server.rb | 9 +++++++-- src/cloud/occi/lib/occi-server.rb | 7 ++++++- 5 files changed, 39 insertions(+), 7 deletions(-) diff --git a/share/hooks/image.rb b/share/hooks/image.rb index 8709a7d65f..7625810312 100755 --- a/share/hooks/image.rb +++ b/share/hooks/image.rb @@ -36,7 +36,13 @@ if !(vm_id=ARGV[0]) end -client = Client.new() +begin + client = Client.new() +rescue Exception => e + puts "Error: #{e}" + exit(-1) +end + img_repo = ImageRepository.new vm = VirtualMachine.new( diff --git a/src/authm_mad/one_auth_mad.rb b/src/authm_mad/one_auth_mad.rb index 6832e7cafc..0a36f4b1cc 100755 --- a/src/authm_mad/one_auth_mad.rb +++ b/src/authm_mad/one_auth_mad.rb @@ -84,7 +84,12 @@ class AuthorizationManager < OpenNebulaDriver end def action_authorize(request_id, user_id, *tokens) - auth=@permissions.auth(user_id, tokens.flatten) + begin + auth=@permissions.auth(user_id, tokens.flatten) + rescue Exception => e + auth="Error: #{e}" + end + if auth==true send_message('AUTHORIZE', RESULT[:success], request_id, 'success') @@ -95,7 +100,12 @@ class AuthorizationManager < OpenNebulaDriver end end +begin + am=AuthorizationManager.new +rescue Exception => e + puts "Error: #{e}" + exit(-1) +end -am=AuthorizationManager.new am.start_driver diff --git a/src/authm_mad/oneauth b/src/authm_mad/oneauth index 1f3d39c6f3..4aeafb1674 100755 --- a/src/authm_mad/oneauth +++ b/src/authm_mad/oneauth @@ -91,7 +91,13 @@ when "quota" when 'set' check_parameters("quota set", 3) Dir.chdir VAR_LOCATION - add_quota(*ARGV[1..3]) + + begin + add_quota(*ARGV[1..3]) + rescue Exception => e + puts "Error starting server: #{e}" + exit(-1) + end else #default end diff --git a/src/cloud/ec2/lib/econe-server.rb b/src/cloud/ec2/lib/econe-server.rb index dcb8440525..6bcf972bed 100644 --- a/src/cloud/ec2/lib/econe-server.rb +++ b/src/cloud/ec2/lib/econe-server.rb @@ -45,8 +45,13 @@ require 'EC2QueryServer' include OpenNebula -$econe_server = EC2QueryServer.new(CONFIGURATION_FILE, - TEMPLATE_LOCATION, VIEWS_LOCATION) +begin + $econe_server = EC2QueryServer.new(CONFIGURATION_FILE, + TEMPLATE_LOCATION, VIEWS_LOCATION) +rescue Exception => e + puts "Error starting server: #{e}" + exit(-1) +end if CloudServer.is_port_open?($econe_server.config[:server], $econe_server.config[:port]) diff --git a/src/cloud/occi/lib/occi-server.rb b/src/cloud/occi/lib/occi-server.rb index daaf85a439..82624fdf94 100755 --- a/src/cloud/occi/lib/occi-server.rb +++ b/src/cloud/occi/lib/occi-server.rb @@ -49,7 +49,12 @@ require 'OpenNebula' include OpenNebula -$occi_server = OCCIServer.new(CONFIGURATION_FILE, TEMPLATE_LOCATION) +begin + $occi_server = OCCIServer.new(CONFIGURATION_FILE, TEMPLATE_LOCATION) +rescue Exception => e + puts "Error starting server: #{e}" + exit(-1) +end if CloudServer.is_port_open?($occi_server.config[:server], $occi_server.config[:port])