Sha256: c2b098cf9b8243aa1e919c8d4ca9ca73294d12a8b4574f6485fe62c8193225de

Contents?: true

Size: 1.11 KB

Versions: 15

Compression:

Stored size: 1.11 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 = $config.account
        @connection
      else
        selected_account = $config.account
        @connection = create_connection(:brightbox_account => selected_account)
      end
    end

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

      if @connection && @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

15 entries across 15 versions & 1 rubygems

Version Path
brightbox-cli-2.2.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-2.1.2 lib/brightbox-cli/connection_manager.rb
brightbox-cli-2.1.1 lib/brightbox-cli/connection_manager.rb
brightbox-cli-2.1.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-2.0.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-1.6.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-1.5.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-1.4.3 lib/brightbox-cli/connection_manager.rb
brightbox-cli-1.4.2 lib/brightbox-cli/connection_manager.rb
brightbox-cli-1.4.1 lib/brightbox-cli/connection_manager.rb
brightbox-cli-1.4.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-1.3.0 lib/brightbox-cli/connection_manager.rb
brightbox-cli-1.2.2 lib/brightbox-cli/connection_manager.rb
brightbox-cli-1.2.1 lib/brightbox-cli/connection_manager.rb
brightbox-cli-1.2.0 lib/brightbox-cli/connection_manager.rb