Sha256: e6751540d896be57ede369a7de949a6a80be886f1f1676a975eb70a282f20795

Contents?: true

Size: 1.35 KB

Versions: 40

Compression:

Stored size: 1.35 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 => persistent?
        }
      end

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

      private

      def persistent?
        if selected_config["persistent"] == "false"
          false
        else
          true
        end
      end

      def check_required_params
        unless valid?
          NON_BLANK_KEYS.each do |key|
            unless selected_config.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

40 entries across 40 versions & 1 rubygems

Version Path
brightbox-cli-3.3.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-3.2.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-3.1.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-3.0.1 lib/brightbox-cli/config/api_client.rb
brightbox-cli-3.0.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.12.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.11.2 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.11.1 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.11.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.10.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.9.3 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.9.2 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.9.1 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.9.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.8.2 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.8.1 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.8.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.7.1 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.7.0 lib/brightbox-cli/config/api_client.rb
brightbox-cli-2.6.0 lib/brightbox-cli/config/api_client.rb