Tiny supportability nit: today we emit these log messages when adding a write block to an index:

```
[2022-03-22T19:43:26,897][INFO ][o.e.c.m.MetadataIndexStateService] [node_t1] adding block write to indices [[test-blocks/eLkrYpm_S3WNemfWpXrhPA]]
[2022-03-22T19:43:26,933][INFO ][o.e.c.m.MetadataIndexStateService] [node_t1] completed adding block write to indices [test-blocks]
```

This is kind of confusing, a `block write` sounds like we're writing a block of data. It's not clear that `write` is variable (we also say `block read`) or the name of a block setting. I think we should word this as `adding [index.blocks.write] block to indices` instead.
server/src/main/java/org/elasticsearch/cluster/metadata/MetadataIndexStateService.java
delegate.onResponse(ShardsAcknowledgedResponse.of(true, shardsAcknowledged));
                    },
                    listener::onFailure
                );
            } else {
                delegate.onResponse(ShardsAcknowledgedResponse.NOT_ACKNOWLEDGED);
            }
        }));
    }
    private void onlyOpenIndices(final OpenIndexClusterStateUpdateRequest request, final ActionListener<AcknowledgedResponse> listener) {
        if (request.indices() == null || request.indices().length == 0) {
            throw new IllegalArgumentException("Index name is required");
        }
        clusterService.submitStateUpdateTask(
            "open-indices " + Arrays.toString(request.indices()),
            new OpenIndicesTask(request, listener),
            ClusterStateTaskConfig.build(Priority.URGENT, request.masterNodeTimeout()),
            this.opensExecutor
        );
    }
    /**
     * Finalizes the addition of blocks by turning the temporary UUID-based blocks into full blocks.
     * @param currentState the cluster state to update
     * @param blockedIndices the indices and their temporary UUID-based blocks to convert
     * @param verifyResult the index-level results for adding the block
     * @param block the full block to convert to
     * @return the updated cluster state, as well as the (failed and successful) index-level results for adding the block
     */
    private static Tuple<ClusterState, List<AddBlockResult>> finalizeBlock(
        final ClusterState currentState,