16811: Add a test that system users/groups can't be deleted.
[arvados.git] / services / api / lib / enable_jobs_api.rb
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 Disable_update_jobs_api_method_list = {"jobs.create"=>{},
6                                 "pipeline_instances.create"=>{},
7                                 "pipeline_templates.create"=>{},
8                                 "jobs.update"=>{},
9                                 "pipeline_instances.update"=>{},
10                                 "pipeline_templates.update"=>{},
11                                 "job_tasks.create"=>{},
12                                 "job_tasks.update"=>{}}
13
14 Disable_jobs_api_method_list = {"jobs.create"=>{},
15                                 "pipeline_instances.create"=>{},
16                                 "pipeline_templates.create"=>{},
17                                 "jobs.get"=>{},
18                                 "pipeline_instances.get"=>{},
19                                 "pipeline_templates.get"=>{},
20                                 "jobs.list"=>{},
21                                 "pipeline_instances.list"=>{},
22                                 "pipeline_templates.list"=>{},
23                                 "jobs.index"=>{},
24                                 "pipeline_instances.index"=>{},
25                                 "pipeline_templates.index"=>{},
26                                 "jobs.update"=>{},
27                                 "pipeline_instances.update"=>{},
28                                 "pipeline_templates.update"=>{},
29                                 "jobs.queue"=>{},
30                                 "jobs.queue_size"=>{},
31                                 "job_tasks.create"=>{},
32                                 "job_tasks.get"=>{},
33                                 "job_tasks.list"=>{},
34                                 "job_tasks.index"=>{},
35                                 "job_tasks.update"=>{},
36                                 "jobs.show"=>{},
37                                 "pipeline_instances.show"=>{},
38                                 "pipeline_templates.show"=>{},
39                                 "job_tasks.show"=>{}}
40
41 def check_enable_legacy_jobs_api
42   # Create/update is permanently disabled (legacy functionality has been removed)
43   Rails.configuration.API.DisabledAPIs.merge! Disable_update_jobs_api_method_list
44
45   if Rails.configuration.Containers.JobsAPI.Enable == "false" ||
46      (Rails.configuration.Containers.JobsAPI.Enable == "auto" &&
47       Job.count == 0)
48     Rails.configuration.API.DisabledAPIs.merge! Disable_jobs_api_method_list
49   end
50 end