From 64832e7e139802a756c2597901cee7a63583c304 Mon Sep 17 00:00:00 2001 From: sdelano Date: Mon, 25 Apr 2011 14:32:01 -0700 Subject: checksums: * don't emit doc on _all_docs view * implement bulk view --- chef/lib/chef/checksum.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/chef/lib/chef/checksum.rb b/chef/lib/chef/checksum.rb index 5a45e76007..c6138ec970 100644 --- a/chef/lib/chef/checksum.rb +++ b/chef/lib/chef/checksum.rb @@ -33,14 +33,14 @@ class Chef attr_reader :original_committed_file_location DESIGN_DOCUMENT = { - "version" => 1, + "version" => 2, "language" => "javascript", "views" => { "all" => { "map" => <<-EOJS function(doc) { if (doc.chef_type == "checksum") { - emit(doc.checksum, doc); + emit(doc.checksum, null); } } EOJS @@ -153,6 +153,11 @@ class Chef rs["rows"].inject({}) { |hash_result, r| hash_result[r['key']] = 1; hash_result } end + def self.cdb_bulk_checksums(keys, couchdb = nil) + rs = (couchdb || Chef::CouchDB.new).bulk_view("checksums", "all", keys) + rs["rows"].inject({}) { |hash_result, r| hash_result[r['key']] = 1; hash_result } + end + def self.cdb_load(checksum, couchdb=nil) # Probably want to look for a view here at some point (couchdb || Chef::CouchDB.new).load("checksum", checksum) -- cgit v1.2.1