9
9
import static org .opensearch .ml .common .FunctionName .REMOTE ;
10
10
import static org .opensearch .ml .common .FunctionName .TEXT_EMBEDDING ;
11
11
import static org .opensearch .ml .common .utils .StringUtils .getErrorMessage ;
12
+ import static org .opensearch .ml .utils .MLExceptionUtils .CONTROLLER_DISABLED_ERR_MSG ;
12
13
13
14
import java .util .ArrayList ;
14
15
import java .util .Arrays ;
51
52
import org .opensearch .ml .helper .ModelAccessControlHelper ;
52
53
import org .opensearch .ml .model .MLModelCacheHelper ;
53
54
import org .opensearch .ml .model .MLModelManager ;
55
+ import org .opensearch .ml .settings .MLFeatureEnabledSetting ;
54
56
import org .opensearch .ml .utils .RestActionUtils ;
55
57
import org .opensearch .tasks .Task ;
56
58
import org .opensearch .transport .TransportService ;
@@ -68,6 +70,7 @@ public class CreateControllerTransportAction extends HandledTransportAction<Acti
68
70
ClusterService clusterService ;
69
71
MLModelCacheHelper mlModelCacheHelper ;
70
72
ModelAccessControlHelper modelAccessControlHelper ;
73
+ private MLFeatureEnabledSetting mlFeatureEnabledSetting ;
71
74
72
75
@ Inject
73
76
public CreateControllerTransportAction (
@@ -78,7 +81,8 @@ public CreateControllerTransportAction(
78
81
ClusterService clusterService ,
79
82
ModelAccessControlHelper modelAccessControlHelper ,
80
83
MLModelCacheHelper mlModelCacheHelper ,
81
- MLModelManager mlModelManager
84
+ MLModelManager mlModelManager ,
85
+ MLFeatureEnabledSetting mlFeatureEnabledSetting
82
86
) {
83
87
super (MLCreateControllerAction .NAME , transportService , actionFilters , MLCreateControllerRequest ::new );
84
88
this .mlIndicesHandler = mlIndicesHandler ;
@@ -87,6 +91,7 @@ public CreateControllerTransportAction(
87
91
this .clusterService = clusterService ;
88
92
this .mlModelCacheHelper = mlModelCacheHelper ;
89
93
this .modelAccessControlHelper = modelAccessControlHelper ;
94
+ this .mlFeatureEnabledSetting = mlFeatureEnabledSetting ;
90
95
}
91
96
92
97
@ Override
@@ -98,6 +103,9 @@ protected void doExecute(Task task, ActionRequest request, ActionListener<MLCrea
98
103
String [] excludes = new String [] { MLModel .MODEL_CONTENT_FIELD , MLModel .OLD_MODEL_CONTENT_FIELD };
99
104
100
105
try (ThreadContext .StoredContext context = client .threadPool ().getThreadContext ().stashContext ()) {
106
+ if (!mlFeatureEnabledSetting .isControllerEnabled ()) {
107
+ throw new IllegalStateException (CONTROLLER_DISABLED_ERR_MSG );
108
+ }
101
109
ActionListener <MLCreateControllerResponse > wrappedListener = ActionListener .runBefore (actionListener , context ::restore );
102
110
// TODO: Add support for multi tenancy
103
111
mlModelManager .getModel (modelId , null , null , excludes , ActionListener .wrap (mlModel -> {
0 commit comments