8
8
import static org .opensearch .action .support .WriteRequest .RefreshPolicy .IMMEDIATE ;
9
9
import static org .opensearch .ml .common .CommonValue .ML_CONTROLLER_INDEX ;
10
10
import static org .opensearch .ml .common .utils .StringUtils .getErrorMessage ;
11
+ import static org .opensearch .ml .utils .MLExceptionUtils .CONTROLLER_DISABLED_ERR_MSG ;
11
12
12
13
import java .util .ArrayList ;
13
14
import java .util .Arrays ;
41
42
import org .opensearch .ml .helper .ModelAccessControlHelper ;
42
43
import org .opensearch .ml .model .MLModelCacheHelper ;
43
44
import org .opensearch .ml .model .MLModelManager ;
45
+ import org .opensearch .ml .settings .MLFeatureEnabledSetting ;
44
46
import org .opensearch .ml .utils .RestActionUtils ;
45
47
import org .opensearch .tasks .Task ;
46
48
import org .opensearch .transport .TransportService ;
@@ -58,6 +60,7 @@ public class DeleteControllerTransportAction extends HandledTransportAction<Acti
58
60
MLModelManager mlModelManager ;
59
61
MLModelCacheHelper mlModelCacheHelper ;
60
62
ModelAccessControlHelper modelAccessControlHelper ;
63
+ private MLFeatureEnabledSetting mlFeatureEnabledSetting ;
61
64
62
65
@ Inject
63
66
public DeleteControllerTransportAction (
@@ -68,7 +71,8 @@ public DeleteControllerTransportAction(
68
71
ClusterService clusterService ,
69
72
MLModelManager mlModelManager ,
70
73
MLModelCacheHelper mlModelCacheHelper ,
71
- ModelAccessControlHelper modelAccessControlHelper
74
+ ModelAccessControlHelper modelAccessControlHelper ,
75
+ MLFeatureEnabledSetting mlFeatureEnabledSetting
72
76
) {
73
77
super (MLControllerDeleteAction .NAME , transportService , actionFilters , MLControllerDeleteRequest ::new );
74
78
this .client = client ;
@@ -77,6 +81,7 @@ public DeleteControllerTransportAction(
77
81
this .mlModelManager = mlModelManager ;
78
82
this .mlModelCacheHelper = mlModelCacheHelper ;
79
83
this .modelAccessControlHelper = modelAccessControlHelper ;
84
+ this .mlFeatureEnabledSetting = mlFeatureEnabledSetting ;
80
85
}
81
86
82
87
@ Override
@@ -86,6 +91,9 @@ protected void doExecute(Task task, ActionRequest request, ActionListener<Delete
86
91
User user = RestActionUtils .getUserContext (client );
87
92
String [] excludes = new String [] { MLModel .MODEL_CONTENT_FIELD , MLModel .OLD_MODEL_CONTENT_FIELD };
88
93
try (ThreadContext .StoredContext context = client .threadPool ().getThreadContext ().stashContext ()) {
94
+ if (!mlFeatureEnabledSetting .isControllerEnabled ()) {
95
+ throw new IllegalStateException (CONTROLLER_DISABLED_ERR_MSG );
96
+ }
89
97
ActionListener <DeleteResponse > wrappedListener = ActionListener .runBefore (actionListener , context ::restore );
90
98
mlModelManager .getModel (modelId , null , excludes , ActionListener .wrap (mlModel -> {
91
99
Boolean isHidden = mlModel .getIsHidden ();
0 commit comments