Sha256: 0bb5b46658e2f81ab987933fde14b356ab4e7cee73f7f6187e29794ee65cb8de

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

module BrocadeVRouter
  class Client
    attr_reader :connection, :logger

    def initialize(url: nil, connection_options: nil, basic_auth: nil, logger: nil)
      config = BrocadeVRouter.config
      url ||= config.url
      connection_options ||= config.connection_options
      basic_auth ||= config.basic_auth

      @connection = Faraday.new(url, connection_options) do |f|
        f.adapter config.adapter
        f.basic_auth(*basic_auth) if basic_auth
      end

      @logger = logger || config.logger
    end

    def configuration(raise_on_fail: nil, &blk)
      raise_on_fail = BrocadeVRouter.config.raise_on_fail if raise_on_fail.nil?
      @current_conf ||= Configuration.new connection, logger: logger
      @current_conf.raise_on_fail = raise_on_fail
      block_given? ? @current_conf.perform(&blk) : @current_conf
    end

    alias_method :configure, :configuration

    def url
      connection.url_prefix
    end

    def close(commit: false, save: false)
      close_configuration(commit: commit, save: save) if @current_conf
    end

    def close_configuration(commit:, save:)
      @current_conf.commit if commit
      @current_conf.save if save
      @current_conf.close
      @current_conf = nil
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
brocade_vrouter-0.2.4 lib/brocade_vrouter/client.rb