class Batali::Origin::ChefServer
Fetch unit information from chef server
Public Class Methods
new(*_)
click to toggle source
Calls superclass method
Batali::Origin::new
# File lib/batali/origin/chef_server.rb, line 17 def initialize(*_) super init_chef! self.identifier = Digest::SHA256.hexdigest(endpoint) unless name? self.name = identifier end end
Public Instance Methods
units()
click to toggle source
@return [Array<Unit>] all units
# File lib/batali/origin/chef_server.rb, line 27 def units memoize(:units) do debug "Fetching units from chef server: #{endpoint}" units = api_service.get_rest("cookbooks?num_versions=all").map do |c_name, meta| meta["versions"].map do |info| "#{c_name}/#{info["version"]}" end end.flatten.map do |ckbk| debug "Unit information from #{endpoint}: #{ckbk.inspect}" c_name, c_version = ckbk.split("/", 2) c_deps = api_service.get_rest( "cookbooks/#{c_name}/#{c_version}" ).metadata.dependencies.to_a Unit.new( :name => c_name, :version => c_version, :dependencies => c_deps, :source => Smash.new( :type => :chef_server, :version => c_version, :dependencies => c_deps, :endpoint => endpoint, :client_key => client_key, :client_name => client_name, :cache_path => cache_path, ), ) end.flatten end end