diff --git a/lib/fog/opennebula/compute.rb b/lib/fog/opennebula/compute.rb index d8ed43a85..35c8aa767 100644 --- a/lib/fog/opennebula/compute.rb +++ b/lib/fog/opennebula/compute.rb @@ -98,7 +98,12 @@ module Fog @opennebula_endpoint = options[:opennebula_endpoint] @opennebula_username = options[:opennebula_username] @opennebula_password = options[:opennebula_password] - require 'opennebula' + + begin + require "opennebula" + rescue LoadError + raise Fog::Errors::LoadError, "To use OpenNebula provider, you must load 'opennebula' gem" + end end def client diff --git a/lib/fog/opennebula/requests/compute/OpenNebulaVNC.rb b/lib/fog/opennebula/requests/compute/OpenNebulaVNC.rb index e099f19b5..1d67920dc 100644 --- a/lib/fog/opennebula/requests/compute/OpenNebulaVNC.rb +++ b/lib/fog/opennebula/requests/compute/OpenNebulaVNC.rb @@ -20,7 +20,11 @@ require 'rubygems' require 'json' -require 'opennebula' +begin + require "opennebula" +rescue LoadError + raise Fog::Errors::LoadError, "To use OpenNebula provider, you must load 'opennebula' gem" +end #if !ONE_LOCATION diff --git a/tests/opennebula/compute_tests.rb b/tests/opennebula/compute_tests.rb index 11ebbef5c..af3e9df82 100644 --- a/tests/opennebula/compute_tests.rb +++ b/tests/opennebula/compute_tests.rb @@ -1,6 +1,9 @@ Shindo.tests('Fog::Compute[:opennebula]', ['opennebula']) do - - compute = Fog::Compute[:opennebula] + begin + compute = Fog::Compute[:opennebula] + rescue Fog::Errors::LoadError + pending + end tests("Compute collections") do %w{networks groups}.each do |collection| diff --git a/tests/opennebula/models/compute/flavor_tests.rb b/tests/opennebula/models/compute/flavor_tests.rb index a415d5026..6ff49397b 100644 --- a/tests/opennebula/models/compute/flavor_tests.rb +++ b/tests/opennebula/models/compute/flavor_tests.rb @@ -1,6 +1,10 @@ Shindo.tests('Fog::Compute[:opennebula] | flavor model', ['opennebula']) do + begin + flavors = Fog::Compute[:opennebula].flavors + rescue Fog::Errors::LoadError + pending + end - flavors = Fog::Compute[:opennebula].flavors flavor = flavors.get_by_name('fogtest').last tests('The flavor model should') do diff --git a/tests/opennebula/models/compute/flavors_tests.rb b/tests/opennebula/models/compute/flavors_tests.rb index 789acc32b..d6d38df46 100644 --- a/tests/opennebula/models/compute/flavors_tests.rb +++ b/tests/opennebula/models/compute/flavors_tests.rb @@ -1,6 +1,9 @@ Shindo.tests('Fog::Compute[:opennebula] | flavors collection', ['opennebula']) do - - flavors = Fog::Compute[:opennebula].flavors + begin + flavors = Fog::Compute[:opennebula].flavors + rescue Fog::Errors::LoadError + pending + end tests('The flavors collection should') do test('should be a kind of Fog::Compute::OpenNebula::Flavors') { flavors.kind_of? Fog::Compute::OpenNebula::Flavors } diff --git a/tests/opennebula/models/compute/group_tests.rb b/tests/opennebula/models/compute/group_tests.rb index 221d93d48..90677a778 100644 --- a/tests/opennebula/models/compute/group_tests.rb +++ b/tests/opennebula/models/compute/group_tests.rb @@ -1,6 +1,9 @@ Shindo.tests('Fog::Compute[:opennebula] | group model', ['opennebula']) do - - groups = Fog::Compute[:opennebula].groups + begin + groups = Fog::Compute[:opennebula].groups + rescue Fog::Errors::LoadError + pending + end group = groups.last tests('The group model should') do diff --git a/tests/opennebula/models/compute/groups_tests.rb b/tests/opennebula/models/compute/groups_tests.rb index da854488d..5659324f0 100644 --- a/tests/opennebula/models/compute/groups_tests.rb +++ b/tests/opennebula/models/compute/groups_tests.rb @@ -1,6 +1,9 @@ Shindo.tests('Fog::Compute[:opennebula] | groups collection', ['opennebula']) do - - groups = Fog::Compute[:opennebula].groups + begin + groups = Fog::Compute[:opennebula].groups + rescue Fog::Errors::LoadError + pending + end tests('The groups collection') do test('should be a kind of Fog::Compute::OpenNebula::Groups') { groups.kind_of? Fog::Compute::OpenNebula::Groups } diff --git a/tests/opennebula/models/compute/network_tests.rb b/tests/opennebula/models/compute/network_tests.rb index a12f0421b..303908e56 100644 --- a/tests/opennebula/models/compute/network_tests.rb +++ b/tests/opennebula/models/compute/network_tests.rb @@ -1,6 +1,10 @@ Shindo.tests('Fog::Compute[:opennebula] | network model', ['opennebula']) do + begin + networks = Fog::Compute[:opennebula].networks + rescue Fog::Errors::LoadError + pending + end - networks = Fog::Compute[:opennebula].networks network = networks.get_by_name('fogtest') tests('The network model should') do diff --git a/tests/opennebula/models/compute/networks_tests.rb b/tests/opennebula/models/compute/networks_tests.rb index b8ba706be..6820b18ba 100644 --- a/tests/opennebula/models/compute/networks_tests.rb +++ b/tests/opennebula/models/compute/networks_tests.rb @@ -1,6 +1,9 @@ Shindo.tests('Fog::Compute[:opennebula] | networks collection', ['opennebula']) do - - networks = Fog::Compute[:opennebula].networks + begin + networks = Fog::Compute[:opennebula].networks + rescue Fog::Errors::LoadError + pending + end tests('The networks collection') do test('should be a kind of Fog::Compute::OpenNebula::Networks') { networks.kind_of? Fog::Compute::OpenNebula::Networks } diff --git a/tests/opennebula/requests/compute/vm_allocate_tests.rb b/tests/opennebula/requests/compute/vm_allocate_tests.rb index e31c6f017..91c502416 100644 --- a/tests/opennebula/requests/compute/vm_allocate_tests.rb +++ b/tests/opennebula/requests/compute/vm_allocate_tests.rb @@ -1,6 +1,10 @@ Shindo.tests("Fog::Compute[:opennebula] | vm_create and vm_destroy request", 'opennebula') do + begin + compute = Fog::Compute[:opennebula] + rescue Fog::Errors::LoadError + pending + end - compute = Fog::Compute[:opennebula] name_base = Time.now.to_i f = compute.flavors.get_by_name("fogtest") diff --git a/tests/opennebula/requests/compute/vm_suspend_resume_tests.rb b/tests/opennebula/requests/compute/vm_suspend_resume_tests.rb index ff345b1c3..fb7ef6708 100644 --- a/tests/opennebula/requests/compute/vm_suspend_resume_tests.rb +++ b/tests/opennebula/requests/compute/vm_suspend_resume_tests.rb @@ -1,6 +1,9 @@ Shindo.tests("Fog::Compute[:opennebula] | vm_suspend and vm_resume request", 'opennebula') do - - compute = Fog::Compute[:opennebula] + begin + compute = Fog::Compute[:opennebula] + rescue Fog::Errors::LoadError + pending + end name_base = Time.now.to_i f = compute.flavors.get_by_name("fogtest")