[ARVADOS] updated: 8eaed3be04eb6356920b764f8ae370ddf8ace94c

Git user git at public.curoverse.com
Thu Sep 8 16:16:08 EDT 2016


Summary of changes:
 sdk/go/dispatch/dispatch.go                        |  7 -----
 services/api/app/models/arvados_model.rb           |  4 +--
 services/api/app/models/container.rb               | 12 ++++----
 .../arvados/v1/containers_controller_test.rb       | 32 ++++------------------
 .../crunch-dispatch-slurm/crunch-dispatch-slurm.go |  3 +-
 5 files changed, 15 insertions(+), 43 deletions(-)

       via  8eaed3be04eb6356920b764f8ae370ddf8ace94c (commit)
       via  5afa718bbfbe9cded6a852af216788629c3afc72 (commit)
       via  c0650d1d845b08668445fa5245d0e532b38afb95 (commit)
       via  15a9dff29d3e5c16d936650c16b498fba1002860 (commit)
      from  934694fb672f0768ec61701009a4eb2e149d6431 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 8eaed3be04eb6356920b764f8ae370ddf8ace94c
Author: Tom Clegg <tom at curoverse.com>
Date:   Thu Sep 8 16:15:11 2016 -0400

    9898: Code cleanup.

diff --git a/services/api/test/functional/arvados/v1/containers_controller_test.rb b/services/api/test/functional/arvados/v1/containers_controller_test.rb
index 45149b2..3a22de8 100644
--- a/services/api/test/functional/arvados/v1/containers_controller_test.rb
+++ b/services/api/test/functional/arvados/v1/containers_controller_test.rb
@@ -50,8 +50,7 @@ class Arvados::V1::ContainersControllerTest < ActionController::TestCase
     assert_nil json_response['auth']
   end
 
-  test "lock and unlock container" do
-    # lock container
+  test "lock container" do
     authorize_with :dispatch1
     post :lock, {id: containers(:queued).uuid}
     assert_response :success
@@ -59,12 +58,11 @@ class Arvados::V1::ContainersControllerTest < ActionController::TestCase
     assert_equal 'Locked', container.state
     assert_not_nil container.locked_by_uuid
     assert_not_nil container.auth_uuid
+  end
 
-    # unlock container
-    @test_counter = 0  # Reset executed action counter
-    @controller = Arvados::V1::ContainersController.new
+  test "unlock container" do
     authorize_with :dispatch1
-    post :unlock, {id: container.uuid}
+    post :unlock, {id: containers(:locked).uuid}
     assert_response :success
     container = Container.where(uuid: container.uuid).first
     assert_equal 'Queued', container.state
diff --git a/services/crunch-dispatch-slurm/crunch-dispatch-slurm.go b/services/crunch-dispatch-slurm/crunch-dispatch-slurm.go
index ac77644..b33dc64 100644
--- a/services/crunch-dispatch-slurm/crunch-dispatch-slurm.go
+++ b/services/crunch-dispatch-slurm/crunch-dispatch-slurm.go
@@ -260,14 +260,13 @@ func monitorSubmitOrCancel(dispatcher *dispatch.Dispatcher, container arvados.Co
 				log.Printf("Error getting final container state: %v", err)
 			}
 
-			var st arvados.ContainerState
 			switch con.State {
 			case dispatch.Locked:
 				log.Printf("Container %s in state %v but missing from slurm queue, changing to %v.",
 					container.UUID, con.State, dispatch.Queued)
 				dispatcher.Unlock(container.UUID)
 			case dispatch.Running:
-				st = dispatch.Cancelled
+				st := dispatch.Cancelled
 				log.Printf("Container %s in state %v but missing from slurm queue, changing to %v.",
 					container.UUID, con.State, st)
 				dispatcher.UpdateState(container.UUID, st)

commit 5afa718bbfbe9cded6a852af216788629c3afc72
Author: Tom Clegg <tom at curoverse.com>
Date:   Thu Sep 8 16:14:22 2016 -0400

    9898: Check previous state after obtaining row lock.

diff --git a/services/api/app/models/container.rb b/services/api/app/models/container.rb
index ba169cc..11040ff 100644
--- a/services/api/app/models/container.rb
+++ b/services/api/app/models/container.rb
@@ -77,20 +77,20 @@ class Container < ArvadosModel
   end
 
   def lock
-    if self.state == Locked
-      raise AlreadyLockedError
-    end
     with_lock do
+      if self.state == Locked
+        raise AlreadyLockedError
+      end
       self.state = Locked
       self.save!
     end
   end
 
   def unlock
-    if self.state == Queued
-      raise InvalidStateTransitionError
-    end
     with_lock do
+      if self.state == Queued
+        raise InvalidStateTransitionError
+      end
       self.state = Queued
       self.save!
     end

commit c0650d1d845b08668445fa5245d0e532b38afb95
Author: Tom Clegg <tom at curoverse.com>
Date:   Thu Sep 8 16:13:29 2016 -0400

    9898: Change state transition error responses from 403 to 422.

diff --git a/services/api/app/models/arvados_model.rb b/services/api/app/models/arvados_model.rb
index f89e9f4..51673f7 100644
--- a/services/api/app/models/arvados_model.rb
+++ b/services/api/app/models/arvados_model.rb
@@ -42,13 +42,13 @@ class ArvadosModel < ActiveRecord::Base
 
   class AlreadyLockedError < StandardError
     def http_status
-      403
+      422
     end
   end
 
   class InvalidStateTransitionError < StandardError
     def http_status
-      403
+      422
     end
   end
 
diff --git a/services/api/test/functional/arvados/v1/containers_controller_test.rb b/services/api/test/functional/arvados/v1/containers_controller_test.rb
index 04c66a7..45149b2 100644
--- a/services/api/test/functional/arvados/v1/containers_controller_test.rb
+++ b/services/api/test/functional/arvados/v1/containers_controller_test.rb
@@ -74,8 +74,8 @@ class Arvados::V1::ContainersControllerTest < ActionController::TestCase
 
   [
     [:queued, :lock, :success, 'Locked'],
-    [:queued, :unlock, 403, 'Queued'],
-    [:locked, :lock, 403, 'Locked'],
+    [:queued, :unlock, 422, 'Queued'],
+    [:locked, :lock, 422, 'Locked'],
     [:running, :lock, 422, 'Running'],
     [:running, :unlock, 422, 'Running'],
   ].each do |fixture, action, response, state|

commit 15a9dff29d3e5c16d936650c16b498fba1002860
Author: Tom Clegg <tom at curoverse.com>
Date:   Thu Sep 8 16:11:59 2016 -0400

    9898: Remove unused code

diff --git a/sdk/go/dispatch/dispatch.go b/sdk/go/dispatch/dispatch.go
index aa79747..a486132 100644
--- a/sdk/go/dispatch/dispatch.go
+++ b/sdk/go/dispatch/dispatch.go
@@ -193,13 +193,6 @@ func (dispatcher *Dispatcher) handleUpdate(container arvados.Container) {
 
 // UpdateState makes an API call to change the state of a container.
 func (dispatcher *Dispatcher) UpdateState(uuid string, newState arvados.ContainerState) error {
-	if newState == Locked {
-		return dispatcher.Lock(uuid)
-	} else if newState == Queued {
-		return dispatcher.Unlock(uuid)
-	}
-
-	// All other states
 	err := dispatcher.Arv.Update("containers", uuid,
 		arvadosclient.Dict{
 			"container": arvadosclient.Dict{"state": newState}},
diff --git a/services/api/test/functional/arvados/v1/containers_controller_test.rb b/services/api/test/functional/arvados/v1/containers_controller_test.rb
index abaa612..04c66a7 100644
--- a/services/api/test/functional/arvados/v1/containers_controller_test.rb
+++ b/services/api/test/functional/arvados/v1/containers_controller_test.rb
@@ -72,24 +72,6 @@ class Arvados::V1::ContainersControllerTest < ActionController::TestCase
     assert_nil container.auth_uuid
   end
 
-  def create_new_container attrs={}
-    attrs = {
-      command: ['echo', 'foo'],
-      container_image: 'img',
-      output_path: '/tmp',
-      priority: 1,
-      runtime_constraints: {"vcpus" => 1, "ram" => 1},
-    }
-    c = Container.new attrs.merge(attrs)
-    c.save!
-    cr = ContainerRequest.new attrs.merge(attrs)
-    cr.save!
-    assert cr.update_attributes(container_uuid: c.uuid,
-                                state: ContainerRequest::Committed,
-                               ), show_errors(cr)
-    return c
-  end
-
   [
     [:queued, :lock, :success, 'Locked'],
     [:queued, :unlock, 403, 'Queued'],

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list