Skip to content

Commit

Permalink
Merge pull request #89 from sul-dlss/janitorial_work
Browse files Browse the repository at this point in the history
Layout and cleanup fixes
  • Loading branch information
jmartin-sul committed Aug 21, 2018
2 parents a76b29d + 318e4cb commit e8c15c6
Show file tree
Hide file tree
Showing 12 changed files with 102 additions and 135 deletions.
2 changes: 1 addition & 1 deletion bin/mods_report
Expand Up @@ -50,5 +50,5 @@ puts "limiting to #{limit}" unless limit.blank?
puts "Saving MODs for sourceID #{identifier} [#{x} of #{@items.size}]"
else
puts "Error: cannot generate desc md xml for #{identifier} [#{x} of #{@items.size}]"
end
end
end
2 changes: 1 addition & 1 deletion bin/mods_report2
Expand Up @@ -44,5 +44,5 @@ puts "Generating #{@items.size} MODs files from #{manifest_file} using MODs temp
puts "Saving MODs for sourceID #{identifier} [#{x} of #{@items.size}]"
else
puts "Error: cannot generate desc md xml for #{identifier} [#{x} of #{@items.size}]"
end
end
end
1 change: 0 additions & 1 deletion config/boot.rb
Expand Up @@ -15,7 +15,6 @@
Dor::Config.dor_services.url ||= Dor::Config.dor.service_root
Dor::Config.workflow.client.configure(Dor::Config.workflow.url, :dor_services_url => Dor::Config.dor_services.url.gsub('/v1', ''))


# Project dir in load path.
$LOAD_PATH.unshift(PRE_ASSEMBLY_ROOT + '/lib')

Expand Down
2 changes: 1 addition & 1 deletion config/environments/production.rb
Expand Up @@ -54,7 +54,7 @@
config.log_level = :debug

# Prepend all log lines with the following tags.
config.log_tags = [ :request_id ]
config.log_tags = [:request_id]

# Use a different cache store in production.
# config.cache_store = :mem_cache_store
Expand Down
6 changes: 1 addition & 5 deletions devel/mjf_transform.rb
Expand Up @@ -164,12 +164,8 @@ def file_cleanup(folder, existing_files_to_remove)
f = File.open(output_dm, 'w') { |fh| fh.puts mods.to_xml.gsub(/^\s*\n/, "") }
FileUtils.chmod(0644, output_dm)
puts "...Writing #{descriptive_xml_filename}"

end # end finding XML file

else

puts "**** ERROR: Could not locate content folder within the '#{folder}/data' folder"

end # end check for content subfolder
end # end check for content subfolder
end # end loop over all input rows in spreadsheet
4 changes: 1 addition & 3 deletions devel/revs_get_druid_from_sourceid.rb
Expand Up @@ -20,18 +20,16 @@

# read input manifest
@items = CsvMapper.import(csv_in) do read_attributes_from_file end

all_pids = []
all_filenames = []

@items.each_with_index do |row, _x|
pids = Dor::SearchService.query_by_id("Revs:#{row.sourceid}")
if pids.size != 1
puts "cannot find single pid for source id #{row.sourceid}"
else
all_filenames << "\"#{row.sourceid}.tif\""
all_pids << "\"#{pids.first}\""
end
end
end

puts
Expand Down
40 changes: 20 additions & 20 deletions devel/revs_update_images.rb
Expand Up @@ -38,25 +38,25 @@
pids = Dor::SearchService.query_by_id("Revs:#{row.sourceid}")
if pids.size != 1
puts "cannot find single pid for source id #{row.sourceid}"
next
end
pid = pids.first
done = completed_druids.include?(pid)
if done
puts "#{pid} : skipping, already completed"
next
end
if row.respond_to?(:filename) && !row.filename.blank?
filename = row.filename
else
pid = pids.first
done = completed_druids.include?(pid)
if done
puts "#{pid} : skipping, already completed"
else
if row.respond_to?(:filename) && !row.filename.blank?
filename = row.filename
else
filename = "#{row.sourceid}.tif"
end
data = { :source_path => source_path, :filename => filename }
item = PreAssembly::Remediation::Item.new(pid, data)
item.description = "Updating image from #{csv_in}" # added to the version description
item.extend(RemediationLogic) # add in our project specific methods
success = item.remediate
item.log_to_progress_file(progress_log_file)
item.log_to_csv(csv_out)
puts "#{pid} : #{success}"
end
end
filename = "#{row.sourceid}.tif"
end
data = { :source_path => source_path, :filename => filename }
item = PreAssembly::Remediation::Item.new(pid, data)
item.description = "Updating image from #{csv_in}" # added to the version description
item.extend(RemediationLogic) # add in our project specific methods
success = item.remediate
item.log_to_progress_file(progress_log_file)
item.log_to_csv(csv_out)
puts "#{pid} : #{success}"
end
2 changes: 1 addition & 1 deletion devel/revs_update_metadata.rb
Expand Up @@ -57,5 +57,5 @@
item.log_to_csv(csv_out)
puts "#{pid} : #{success}"
end
end
end
end
2 changes: 1 addition & 1 deletion lib/pre_assembly/bundle.rb
Expand Up @@ -254,7 +254,7 @@ def validate_usage
validation_errors << "Manifest does not have a column called '#{manifest_cols[:source_id]}'" if !manifest_cols[:source_id].blank? && !manifest_rows.first.keys.include?(manifest_cols[:source_id].to_s)
validation_errors << "Manifest does not have a column called '#{manifest_cols[:label]}'" if !manifest_cols[:label].blank? && !manifest_rows.first.keys.include?(manifest_cols[:label].to_s)
validation_errors << "You must have a column labeled 'druid' in your manifest if you want to use project_style:get_druid_from=manifest" if project_style[:get_druid_from] == :manifest && !manifest_rows.first.keys.include?('druid')
end
end
end
else # if we are not using a manifest, check some stuff
validation_errors << "The glob for object_discovery must be set if object_discovery:use_manifest=false." if object_discovery[:glob].blank? # glob must be set
Expand Down
2 changes: 1 addition & 1 deletion lib/pre_assembly/digital_object.rb
Expand Up @@ -201,7 +201,7 @@ def container_basename
def register
return unless project_style[:should_register]
log " - register(#{pid})"
self.dor_object = register_in_dor(registration_params)
self.dor_object = register_in_dor(registration_params)
self.reg_by_pre_assembly = true
end

Expand Down
123 changes: 55 additions & 68 deletions lib/pre_assembly/remediation/remediate.rb
Expand Up @@ -21,19 +21,16 @@ def self.get_druids(progress_log_file, completed = true)
end

# Ensure the log file exists
# @param
# @param [String] filename
# @return
def ensureLogFile(filename)
begin
File.open(filename, 'a') { |f|
}
rescue => e
raise "Unable to open log file #{filename}: #{e.message}"
end
File.open(filename, 'a') { |_f| }
rescue => e
raise "Unable to open log file #{filename}: #{e.message}"
end

# Log to a CSV file
# @param String csv_out
# @param [String] csv_out
# @return
def log_to_csv(csv_out)
ensureLogFile(csv_out)
Expand All @@ -59,38 +56,32 @@ def get_object
# remediate the object using versioning or not depending on its current state;
# returns true or false depending on if all steps were successful
def remediate
begin
DruidTools::Druid.new(@pid) # this will confirm the druid is valid, if not, we get an exception which is caught below and logged
get_object

if should_remediate? # should_remediate? == true

if updates_allowed?
if versioning_required?
update_object_with_versioning
@message = 'remediated with versioning' if @success
else
update_object
@message = 'remediated directly (versioning not required)' if @success
end
DruidTools::Druid.new(@pid) # this will confirm the druid is valid, if not, we get an exception which is caught below and logged
get_object

if should_remediate? # should_remediate? == true
if updates_allowed?
if versioning_required?
update_object_with_versioning
@message = 'remediated with versioning' if @success
else
@success = false
@message = 'currently in accessioning, cannot remediate'
update_object
@message = 'remediated directly (versioning not required)' if @success
end

else # should_remediate? == false, no remediation required

@success = true
@message = 'remediation not needed'

end
rescue Exception => e
@success = false
@message = "#{e.message}"
Honeybadger.notify(e)
else
@success = false
@message = 'currently in accessioning, cannot remediate'
end
else # should_remediate? == false, no remediation required
@success = true
@message = 'remediation not needed'
end

@success
rescue Exception => e
@success = false
@message = "#{e.message}"
Honeybadger.notify(e)
ensure
return @success
end

# run the update logic but with versioning
Expand All @@ -101,49 +92,45 @@ def update_object_with_versioning
end

def update_object
begin
@success = remediate_logic # this method must be defined for your specific remediation passed in
if @success
@fobj.save
@fobj.publish_metadata unless versioning_required?
end
rescue Exception => e
@success = false
@message = "Updating object failed: #{e.message}"
@success = remediate_logic # this method must be defined for your specific remediation passed in
if @success
@fobj.save
@fobj.publish_metadata unless versioning_required?
end
rescue Exception => e
@success = false
@message = "Updating object failed: #{e.message}"
end

def open_version
begin # try and open the version
@fobj.open_new_version(:assume_accessioned => true) unless @fobj.new_version_open?
@fobj.versionMetadata.update_current_version({ :description => "auto remediation #{@description}", :significance => :admin })
@success = true
rescue Exception => e
if e.message.downcase.include?('already opened')
@success = true # an already opened version is fine, just proceed as normal
else
@success = false
@message = "Opening object failed: #{e.message}"
end
# try and open the version
@fobj.open_new_version(:assume_accessioned => true) unless @fobj.new_version_open?
@fobj.versionMetadata.update_current_version({ :description => "auto remediation #{@description}", :significance => :admin })
@success = true
rescue Exception => e
if e.message.downcase.include?('already opened')
@success = true # an already opened version is fine, just proceed as normal
else
@success = false
@message = "Opening object failed: #{e.message}"
end
end

def close_version
begin # try and close the version
@fobj.close_version(:description => "auto remediation #{@description}", :significance => :admin) if @fobj.new_version_open?
@success = true
rescue Exception => e
@success = false
@message = "Closing object failed: #{e.message}"
end
# try and close the version
@fobj.close_version(:description => "auto remediation #{@description}", :significance => :admin) if @fobj.new_version_open?
@success = true
rescue Exception => e
@success = false
@message = "Closing object failed: #{e.message}"
end

def log_info
{
:pid => @pid,
:remediate_completed => @success,
:message => @message,
:timestamp => Time.now
:pid => @pid,
:remediate_completed => @success,
:message => @message,
:timestamp => Time.now
}
end

Expand Down

0 comments on commit e8c15c6

Please sign in to comment.