Merge branch '8840-lock-job-record' closes #8840
authorPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 31 Mar 2016 15:54:40 +0000 (11:54 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 31 Mar 2016 15:54:40 +0000 (11:54 -0400)
1  2 
services/api/app/models/job.rb

index f49d3453e7eed21b8f1309d024cb47e83fc4f05c,01154077fd5dd96b888912740315f3643d1a2ecb..0ed53535778335d11b2b12d3007058e9ad76adfc
@@@ -2,7 -2,6 +2,7 @@@ class Job < ArvadosMode
    include HasUuid
    include KindAndEtag
    include CommonApiTemplate
 +  serialize :components, Hash
    attr_protected :arvados_sdk_version, :docker_image_locator
    serialize :script_parameters, Hash
    serialize :runtime_constraints, Hash
@@@ -53,7 -52,6 +53,7 @@@
      t.add :queue_position
      t.add :node_uuids
      t.add :description
 +    t.add :components
    end
  
    # Supported states for a job
@@@ -95,8 -93,7 +95,7 @@@
    end
  
    def lock locked_by_uuid
-     transaction do
-       self.reload
+     with_lock do
        unless self.state == Queued and self.is_locked_by_uuid.nil?
          raise AlreadyLockedError
        end
            output_changed? or
            log_changed? or
            tasks_summary_changed? or
 -          state_changed?
 +          state_changed? or
 +          components_changed?
          logger.warn "User #{current_user.uuid if current_user} tried to change protected job attributes on locked #{self.class.to_s} #{uuid_was}"
          return false
        end