Sha256: 54ef20eeafd31c45e961aad510217c8c7bfa539356b38c07ac759fef50dd6745

Contents?: true

Size: 1.28 KB

Versions: 4

Compression:

Stored size: 1.28 KB

Contents

module Brightbox
  module Config
    class ApiClient
      NON_BLANK_KEYS = %w{api_url client_id secret}

      attr_accessor :selected_config, :client_name

      def initialize(incoming_config, client_name)
        @selected_config = incoming_config
        @client_name = client_name
      end

      def to_fog
        check_required_params
        {
          :provider => 'Brightbox',
          :brightbox_api_url => selected_config['api_url'],
          :brightbox_auth_url => selected_config['auth_url'] || selected_config['api_url'],
          :brightbox_client_id => selected_config['client_id'],
          :brightbox_secret => selected_config['secret'],
          :persistent => (selected_config["persistent"] != nil ? selected_config["persistent"] : true)
        }
      end

      def valid?
        NON_BLANK_KEYS.all? do |key|
          selected_config.has_key?(key) && ! selected_config[key].to_s.empty?
        end
      end

    private

      def check_required_params
        unless valid?
          NON_BLANK_KEYS.each do |key|
            unless selected_config.has_key?(key) && ! selected_config[key].to_s.empty?
              raise Brightbox::BBConfigError, "#{key} option missing from config in section #{client_name}"
            end
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
brightbox-cli-1.1.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-1.0.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-1.0.0.rc2 lib/brightbox-cli/config/api_client.rb
brightbox-cli-1.0.0.rc1 lib/brightbox-cli/config/api_client.rb