This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git
The following commit(s) were added to refs/heads/master by this push: new 61e6e79 Move iclas.txt update to secretary workbench 61e6e79 is described below commit 61e6e7974ee3bcb964cb6477912b4ab29e21ab5f Author: Sebb <s...@apache.org> AuthorDate: Wed Dec 30 15:31:38 2020 +0000 Move iclas.txt update to secretary workbench --- lib/spec/lib/icla_spec.rb | 11 ++++++++--- lib/spec/spec_helper.rb | 13 +++++++++++++ lib/whimsy/asf/documents.rb | 15 ++++++++++++++- repository.yml | 1 - 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/lib/spec/lib/icla_spec.rb b/lib/spec/lib/icla_spec.rb index 4543e9d..43f1c53 100644 --- a/lib/spec/lib/icla_spec.rb +++ b/lib/spec/lib/icla_spec.rb @@ -4,14 +4,19 @@ require 'spec_helper' require 'whimsy/asf' -set_svnroot # need access to listing file - # Test data: # ab/ abc.pdf abcd/ abcde/ # N.B. does not make sense for top-level directory to contain more than 1 entry with same stem; # in such cases the files are moved to a subdirectory describe ASF::ICLAFiles do + original = nil + before(:all) do + original = set_cache # need access to listing file + end + after(:all) do + set_cache(original) + end describe "ASF::ICLAFiles.listnames" do it "should return 4 files" do res = ASF::ICLAFiles.listnames @@ -76,4 +81,4 @@ describe ASF::ICLAFiles do end end -end \ No newline at end of file +end diff --git a/lib/spec/spec_helper.rb b/lib/spec/spec_helper.rb index 12535c7..689d4d1 100644 --- a/lib/spec/spec_helper.rb +++ b/lib/spec/spec_helper.rb @@ -21,6 +21,19 @@ def set_svnroot # ensure can access svn directory listing files ASF::Config.setsvnroot File.expand_path("../test/svn/*", __dir__) end +def set_cache(restore=nil) # ensure can access test version of iclas.txt + config = ASF::Config.instance_variable_get(:@config) + original = config[:cache] + if restore + config[:cache] = restore + else + source = File.expand_path("../test/svn/", __dir__) + FileUtils.touch File.join(source,'iclas.txt') # ensure it is marked as up-to-date + config[:cache] = source + end + return original +end + def set_svn(name) ASF::SVN[name] = File.expand_path("../test/svn/#{name}", __dir__) end diff --git a/lib/whimsy/asf/documents.rb b/lib/whimsy/asf/documents.rb index 532d08d..71e1a16 100644 --- a/lib/whimsy/asf/documents.rb +++ b/lib/whimsy/asf/documents.rb @@ -39,6 +39,7 @@ module ASF end # Common class for access to documents/iclas/ directory + # Only intended for use by secretary team class ICLAFiles @@tag = nil # probably worth caching iclas @@list = nil # this list includes trailing '/' so can detect directories correctly @@ -90,7 +91,19 @@ module ASF # This returns the list of names in the top-level directory # directory names are terminated by '/' def self.listnames - @@tag, list = ASF::SVN.getlisting('iclas', @@tag, false) + iclas = 'iclas' + cache_dir = ASF::Config.get(:cache) + # iclas.txt no longer updated by cronjob + file, _ = ASF::SVN.listingNames(iclas, cache_dir) + age = (Time.now - begin File.mtime(file) rescue 0 end).to_i + if age > 600 # 5 minutes + Wunderbar.warn "Updating listing #{file} #{age}" + filerev, svnrev = ASF::SVN.updatelisting(iclas, nil, nil, false, cache_dir) + if filerev && svnrev # it worked + FileUtils.touch file # last time it was checked + end + end + @@tag, list = ASF::SVN.getlisting(iclas, @@tag, false, false, cache_dir) if list # we have a new list # update the list cache @@list = list diff --git a/repository.yml b/repository.yml index fcd2c6b..4cd06c6 100644 --- a/repository.yml +++ b/repository.yml @@ -136,7 +136,6 @@ iclas: url: private/documents/iclas depth: delete - list: true incubator-content: url: asf/incubator/public/trunk/content