Sha256: 64a9b8f7f45a508bacf1c6e8d2818778aae08cc0ed27f489574e6cd7ff1b52fb

Contents?: true

Size: 1.17 KB

Versions: 18

Compression:

Stored size: 1.17 KB

Contents

module Brightbox
  class ConnectionManager
    def initialize(connection_options)
      @connection_options = connection_options
      @connection = nil
    end

    def fetch_connection(account_flag = false)
      if account_flag
        connection_with_account
      else
        @connection ||= create_connection
      end
    end

    private

    def connection_with_account
      if @connection
        @connection.scoped_account = Brightbox.config.account
        @connection
      else
        selected_account = Brightbox.config.account
        @connection = create_connection(:brightbox_account => selected_account)
      end
    end

    def connection_options
      merged_options = @connection_options.dup
      merged_options.update(:brightbox_support_two_factor => true)

      if @connection&.refresh_token
        merged_options.update(:brightbox_refresh_token => @connection.refresh_token)
      end

      if @connection&.access_token
        merged_options.update(:brightbox_access_token => @connection.access_token)
      end
      merged_options
    end

    def create_connection(options = {})
      Fog::Compute.new(connection_options.merge(options))
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
brightbox-cli-5.0.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-5.0.0.rc2 lib/brightbox-cli/connection_manager.rb
brightbox-cli-5.0.0.rc1 lib/brightbox-cli/connection_manager.rb
brightbox-cli-5.0.0.alpha lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.8.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.7.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.6.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.5.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.5.0.rc1 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.4.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.3.2 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.3.1 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.3.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.2.1 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.2.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.1.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.0.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-4.0.0.rc2 lib/brightbox-cli/connection_manager.rb