# classes.
require_relative 'load_config.rb'
+require 'enable_jobs_api'
+
Server::Application.configure do
- # Use exec_query because the Job model isn't loaded yet
- # it returns the string '0', not converted to integer.
- if Rails.configuration.enable_legacy_jobs_api == false ||
- (Rails.configuration.enable_legacy_jobs_api == "auto" &&
- ActiveRecord::Base.connection.exec_query('select count(*) from jobs').first['count'] == '0')
- Rails.configuration.disable_api_methods = ["jobs.create",
- "pipeline_instances.create",
- "pipeline_templates.create",
- "jobs.get",
- "pipeline_instances.get",
- "pipeline_templates.get",
- "jobs.list",
- "pipeline_instances.list",
- "pipeline_templates.list",
- "jobs.index",
- "pipeline_instances.index",
- "pipeline_templates.index",
- "jobs.update",
- "pipeline_instances.update",
- "pipeline_templates.update",
- "jobs.queue",
- "jobs.queue_size",
- "job_tasks.create",
- "job_tasks.get",
- "job_tasks.list",
- "job_tasks.index",
- "job_tasks.update",
- "jobs.show",
- "pipeline_instances.show",
- "pipeline_templates.show",
- "jobs.show",
- "job_tasks.show"]
- end
+ check_enable_legacy_jobs_api
end
--- /dev/null
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+Disable_jobs_api_method_list = ["jobs.create",
+ "pipeline_instances.create",
+ "pipeline_templates.create",
+ "jobs.get",
+ "pipeline_instances.get",
+ "pipeline_templates.get",
+ "jobs.list",
+ "pipeline_instances.list",
+ "pipeline_templates.list",
+ "jobs.index",
+ "pipeline_instances.index",
+ "pipeline_templates.index",
+ "jobs.update",
+ "pipeline_instances.update",
+ "pipeline_templates.update",
+ "jobs.queue",
+ "jobs.queue_size",
+ "job_tasks.create",
+ "job_tasks.get",
+ "job_tasks.list",
+ "job_tasks.index",
+ "job_tasks.update",
+ "jobs.show",
+ "pipeline_instances.show",
+ "pipeline_templates.show",
+ "jobs.show",
+ "job_tasks.show"]
+
+def check_enable_legacy_jobs_api
+ if Rails.configuration.enable_legacy_jobs_api == false ||
+ (Rails.configuration.enable_legacy_jobs_api == "auto" &&
+ ActiveRecord::Base.connection.exec_query("select count(*) from jobs").first["count"] == "0")
+ Rails.configuration.disable_api_methods = Disable_jobs_api_method_list
+ end
+end
child = Job.find_by_uuid job.components.collect{|_, uuid| uuid}[0]
assert_equal Job::Cancelled, child.state
end
+
+ test 'enable legacy api configuration option = true' do
+ Rails.configuration.enable_legacy_jobs_api = true
+ check_enable_legacy_jobs_api
+ assert_equal [], Rails.configuration.disable_api_methods
+ end
+
+ test 'enable legacy api configuration option = false' do
+ Rails.configuration.enable_legacy_jobs_api = false
+ check_enable_legacy_jobs_api
+ assert_equal Disable_jobs_api_method_list, Rails.configuration.disable_api_methods
+ end
+
+ test 'enable legacy api configuration option = auto, has jobs' do
+ Rails.configuration.enable_legacy_jobs_api = "auto"
+ check_enable_legacy_jobs_api
+ assert_equal [], Rails.configuration.disable_api_methods
+ end
+
+ test 'enable legacy api configuration option = auto, no jobs' do
+ Rails.configuration.enable_legacy_jobs_api = "auto"
+ act_as_system_user do
+ Job.destroy_all
+ end
+ puts "ZZZ #{Job.count}"
+ check_enable_legacy_jobs_api
+ assert_equal Disable_jobs_api_method_list, Rails.configuration.disable_api_methods
+ end
end