From: radhika Date: Tue, 16 Aug 2016 21:09:33 +0000 (-0400) Subject: 9684: workflow yaml error logging X-Git-Tag: 1.1.0~789^2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/35806ff1bb3106bcf5874f2b3956fb785acc852a 9684: workflow yaml error logging --- diff --git a/services/api/app/models/workflow.rb b/services/api/app/models/workflow.rb index 97be6dccbc..ea3e985a4e 100644 --- a/services/api/app/models/workflow.rb +++ b/services/api/app/models/workflow.rb @@ -15,26 +15,28 @@ class Workflow < ArvadosModel def validate_workflow begin @workflow_yaml = YAML.load self.workflow if !workflow.nil? - rescue - errors.add :validate_workflow, "#{self.workflow} is not valid yaml" + rescue => e + errors.add :workflow, "is not valid yaml: #{e.message}" end end def set_name_and_description + old_wf = {} begin - old_wf = {} old_wf = YAML.load self.workflow_was if !self.workflow_was.nil? - ['name', 'description'].each do |a| - if !self.changes.include?(a) - v = self.read_attribute(a) - if !v.present? or v == old_wf[a] - val = @workflow_yaml[a] if self.workflow and @workflow_yaml - self[a] = val - end + rescue => e + logger.warn "set_name_and_description error: #{e.message}" + return + end + + ['name', 'description'].each do |a| + if !self.changes.include?(a) + v = self.read_attribute(a) + if !v.present? or v == old_wf[a] + val = @workflow_yaml[a] if self.workflow and @workflow_yaml + self[a] = val end end - rescue ActiveRecord::RecordInvalid - errors.add :set_name_and_description, "#{self.workflow_was} is not valid yaml" end end end