1111import org .elasticsearch .action .ActionListener ;
1212import org .elasticsearch .action .support .ActionFilters ;
1313import org .elasticsearch .action .support .ChannelActionListener ;
14- import org .elasticsearch .action .support .local .TransportLocalClusterStateAction ;
15- import org .elasticsearch .cluster .ClusterState ;
14+ import org .elasticsearch .action .support .local .TransportLocalProjectMetadataAction ;
15+ import org .elasticsearch .cluster .ProjectState ;
1616import org .elasticsearch .cluster .block .ClusterBlockException ;
1717import org .elasticsearch .cluster .block .ClusterBlockLevel ;
1818import org .elasticsearch .cluster .metadata .IndexMetadata ;
5252import static org .elasticsearch .index .IndexSettings .LIFECYCLE_ORIGINATION_DATE ;
5353import static org .elasticsearch .xpack .core .ilm .WaitForRolloverReadyStep .applyDefaultConditions ;
5454
55- public class TransportExplainLifecycleAction extends TransportLocalClusterStateAction <ExplainLifecycleRequest , ExplainLifecycleResponse > {
55+ public class TransportExplainLifecycleAction extends TransportLocalProjectMetadataAction <
56+ ExplainLifecycleRequest ,
57+ ExplainLifecycleResponse > {
5658
5759 private final NamedXContentRegistry xContentRegistry ;
5860 private final IndexNameExpressionResolver indexNameExpressionResolver ;
59- private final ProjectResolver projectResolver ;
6061
6162 /**
6263 * NB prior to 9.0 this was a TransportMasterNodeReadAction so for BwC it must be registered with the TransportService until
@@ -79,11 +80,11 @@ public TransportExplainLifecycleAction(
7980 actionFilters ,
8081 transportService .getTaskManager (),
8182 clusterService ,
82- threadPool .executor (ThreadPool .Names .MANAGEMENT )
83+ threadPool .executor (ThreadPool .Names .MANAGEMENT ),
84+ projectResolver
8385 );
8486 this .xContentRegistry = xContentRegistry ;
8587 this .indexNameExpressionResolver = indexNameExpressionResolver ;
86- this .projectResolver = projectResolver ;
8788
8889 transportService .registerRequestHandler (
8990 actionName ,
@@ -97,33 +98,33 @@ public TransportExplainLifecycleAction(
9798 }
9899
99100 @ Override
100- protected ClusterBlockException checkBlock (ExplainLifecycleRequest request , ClusterState state ) {
101- return state .blocks ()
101+ protected ClusterBlockException checkBlock (ExplainLifecycleRequest request , ProjectState project ) {
102+ return project .blocks ()
102103 .indicesBlockedException (
103- projectResolver . getProjectId (),
104+ project . projectId (),
104105 ClusterBlockLevel .METADATA_READ ,
105- indexNameExpressionResolver .concreteIndexNames (state , request )
106+ indexNameExpressionResolver .concreteIndexNames (project . metadata () , request )
106107 );
107108 }
108109
109110 @ Override
110111 protected void localClusterStateOperation (
111112 Task task ,
112113 ExplainLifecycleRequest request ,
113- final ClusterState state ,
114+ ProjectState project ,
114115 ActionListener <ExplainLifecycleResponse > listener
115116 ) {
116- String [] concreteIndices = indexNameExpressionResolver .concreteIndexNames (state , request );
117+ String [] concreteIndices = indexNameExpressionResolver .concreteIndexNames (project . metadata () , request );
117118 boolean rolloverOnlyIfHasDocuments = LifecycleSettings .LIFECYCLE_ROLLOVER_ONLY_IF_HAS_DOCUMENTS_SETTING .get (
118- state .metadata ().settings ()
119+ project . cluster () .metadata ().settings ()
119120 );
120121 Map <String , IndexLifecycleExplainResponse > indexResponses = new TreeMap <>();
121122 for (String index : concreteIndices ) {
122123 final IndexLifecycleExplainResponse indexResponse ;
123124 try {
124125 indexResponse = getIndexLifecycleExplainResponse (
125126 index ,
126- projectResolver . getProjectMetadata ( state . metadata () ),
127+ project . metadata (),
127128 request .onlyErrors (),
128129 request .onlyManaged (),
129130 xContentRegistry ,
0 commit comments