Sha256: 74d1cefcffd4b14af766c10c24a1f1d506217ea857f037968ed703263b34cd84

Contents?: true

Size: 705 Bytes

Versions: 8

Compression:

Stored size: 705 Bytes

Contents

require "berkshelf/ridley_compat"

module Berkshelf::APIClient
  require_relative "errors"

  class ChefServerConnection
    attr_reader :client

    def initialize(*args)
      @client = Berkshelf::RidleyCompat.new(*args)
      @url = args[0][:server_url]
    end

    def universe
      response = client.get("universe")

      [].tap do |cookbooks|
        response.each do |name, versions|
          versions.each do |version, attributes|
            attributes[:location_path] = @url
            cookbooks << RemoteCookbook.new(name, version, attributes) end
        end
      end
    rescue Ridley::Errors::HTTPNotFound
      raise ServiceNotFound, "service not found at: #{@url}"
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
berkshelf-6.3.4 lib/berkshelf/api_client/chef_server_connection.rb
berkshelf-6.3.3 lib/berkshelf/api_client/chef_server_connection.rb
berkshelf-7.0.0 lib/berkshelf/api_client/chef_server_connection.rb
berkshelf-6.3.2 lib/berkshelf/api_client/chef_server_connection.rb
berkshelf-6.3.1 lib/berkshelf/api_client/chef_server_connection.rb
berkshelf-6.3.0 lib/berkshelf/api_client/chef_server_connection.rb
berkshelf-6.2.2 lib/berkshelf/api_client/chef_server_connection.rb
berkshelf-6.2.1 lib/berkshelf/api_client/chef_server_connection.rb