X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/248c7167e95d970b770c43102ee68cf1319973f7..b5dfc8fb22ef85e09e7034b7899f54dfe5adb6cd:/services/api/test/functional/arvados/v1/container_requests_controller_test.rb diff --git a/services/api/test/functional/arvados/v1/container_requests_controller_test.rb b/services/api/test/functional/arvados/v1/container_requests_controller_test.rb index e77e2ed3c6..e99af39c9c 100644 --- a/services/api/test/functional/arvados/v1/container_requests_controller_test.rb +++ b/services/api/test/functional/arvados/v1/container_requests_controller_test.rb @@ -24,7 +24,8 @@ class Arvados::V1::ContainerRequestsControllerTest < ActionController::TestCase cr = JSON.parse(@response.body) assert_not_nil cr, 'Expected container request' - assert_equal sp, cr['scheduling_parameters'] + assert_equal sp['partitions'], cr['scheduling_parameters']['partitions'] + assert_equal false, cr['scheduling_parameters']['preemptible'] end test "secret_mounts not in #create responses" do @@ -62,6 +63,28 @@ class Arvados::V1::ContainerRequestsControllerTest < ActionController::TestCase assert_equal 'bar', req.secret_mounts['/foo']['content'] end + test "cancel with runtime_constraints and scheduling_params with default values" do + authorize_with :active + req = container_requests(:queued) + + patch :update, params: { + id: req.uuid, + container_request: { + state: 'Final', + priority: 0, + runtime_constraints: { + 'vcpus' => 1, + 'ram' => 123, + 'keep_cache_ram' => 0, + }, + scheduling_parameters: { + "preemptible"=>false + } + }, + } + assert_response :success + end + test "update without deleting secret_mounts" do authorize_with :active req = container_requests(:uncommitted) @@ -98,4 +121,48 @@ class Arvados::V1::ContainerRequestsControllerTest < ActionController::TestCase assert_equal api_client_authorizations(:spectator).token, req.runtime_token end + %w(Running Complete).each do |state| + test "filter on container.state = #{state}" do + authorize_with :active + get :index, params: { + filters: [['container.state', '=', state]], + } + assert_response :success + assert_operator json_response['items'].length, :>, 0 + json_response['items'].each do |cr| + assert_equal state, Container.find_by_uuid(cr['container_uuid']).state + end + end + end + + test "filter on container success" do + authorize_with :active + get :index, params: { + filters: [ + ['container.state', '=', 'Complete'], + ['container.exit_code', '=', '0'], + ], + } + assert_response :success + assert_operator json_response['items'].length, :>, 0 + json_response['items'].each do |cr| + assert_equal 'Complete', Container.find_by_uuid(cr['container_uuid']).state + assert_equal 0, Container.find_by_uuid(cr['container_uuid']).exit_code + end + end + + test "filter on container subproperty runtime_status[foo] = bar" do + ctr = containers(:running) + act_as_system_user do + ctr.update_attributes!(runtime_status: {foo: 'bar'}) + end + authorize_with :active + get :index, params: { + filters: [ + ['container.runtime_status.foo', '=', 'bar'], + ], + } + assert_response :success + assert_equal [ctr.uuid], json_response['items'].collect { |cr| cr['container_uuid'] }.uniq + end end