Sha256: c4ec0d1a885ee19d9997dc1cd5141c4b302ebfef0e3414e6ead61c60687773a7

Contents?: true

Size: 1.41 KB

Versions: 40

Compression:

Stored size: 1.41 KB

Contents

class Brightbox
  module Compute
    module TestSupport
      # Find a suitable image for testing with
      # For speed of server building we're using an empty image
      #
      # Unless the tester has credentials this will fail so we rescue
      # any errors and return nil.
      #
      # This is used in the shared file +tests/compute/helper.rb+ so unfortunately
      # makes all tests reliant on hardcoded values and each other
      #
      # @return [String,NilClass] the most suitable test image's identifier or nil
      def self.image_id
        return @image_id unless @image_id.nil?
        image = select_testing_image_from_api
        @image_id = image["id"]
      rescue
        @image_id = nil
      end

      # Prepare a test server, wait for it to be usable but raise if it fails
      def self.get_test_server
        test_server_options = {:image_id => image_id}
        server = Fog::Compute[:brightbox].servers.create(test_server_options)
        server.wait_for {
          raise "Test server failed to build" if state == "failed"
          ready?
        }
        server
      end

    private
      def self.select_testing_image_from_api
        images = Fog::Compute[:brightbox].list_images
        raise "No available images!" if images.empty?
        images.select { |img| img["official"] && img["virtual_size"] != 0 }.sort_by { |img| img["disk_size"] }.first || images.first
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 2 rubygems

Version Path
fog-1.22.0 tests/brightbox/requests/compute/helper.rb
fog-1.21.0 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.20.0.20140305101839 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.20.0.20140305101305 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.19.0.20140212012611 tests/brightbox/requests/compute/helper.rb
fog-1.20.0 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.19.0.20140110004459 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.19.0.20140110003812 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.19.0.20140109202555 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.19.0.20140107192102 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.19.0.20140107142106 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.19.0.20131219203941 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.18.0.20131219193542 tests/brightbox/requests/compute/helper.rb
fog-1.19.0 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.18.0.20131219033443 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.18.0.20131219032002 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.18.0.20131219030716 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.18.0.20131219022322 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.18.0.20131218202447 tests/brightbox/requests/compute/helper.rb
fog-maestrodev-1.18.0.20131209091424 tests/brightbox/requests/compute/helper.rb