16826: Fixes config maps assignments, mostly on tests.
[arvados.git] / services / api / lib / enable_jobs_api.rb
index d99edd8018881cbc4406360fe7f460ef6e19490c..cef76f08a5c93342f2ba02bf4ec699d2bf98bdd3 100644 (file)
@@ -2,38 +2,52 @@
 #
 # 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"]
+Disable_update_jobs_api_method_list = ConfigLoader.to_OrderedOptions({
+                                        "jobs.create"=>{},
+                                        "pipeline_instances.create"=>{},
+                                        "pipeline_templates.create"=>{},
+                                        "jobs.update"=>{},
+                                        "pipeline_instances.update"=>{},
+                                        "pipeline_templates.update"=>{},
+                                        "job_tasks.create"=>{},
+                                        "job_tasks.update"=>{}
+                                      })
+
+Disable_jobs_api_method_list = ConfigLoader.to_OrderedOptions({
+                                "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"=>{},
+                                "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
+  # Create/update is permanently disabled (legacy functionality has been removed)
+  Rails.configuration.API.DisabledAPIs.merge! Disable_update_jobs_api_method_list
+
+  if Rails.configuration.Containers.JobsAPI.Enable == "false" ||
+     (Rails.configuration.Containers.JobsAPI.Enable == "auto" &&
+      Job.count == 0)
+    Rails.configuration.API.DisabledAPIs.merge! Disable_jobs_api_method_list
   end
 end