public List<NodeResponse> nodes() {
        final Request request = request("GET", "nodes");
        request.addParameter("h", "id,name,role,host,ip,fileDescriptorMax,diskUsed,diskTotal,diskUsedPercent");
        request.addParameter("full_id", "true");
        return perform(request, new TypeReference<>() {}, "Unable to retrieve nodes list");
    }
@Test
    void testNodesMethodParsesAndReturnsEvenNodesThatMissDiskUsageInfo() throws Exception {
        final ObjectMapper objectMapper = new ObjectMapperProvider().get();
        final OpenSearchClient client = mock(OpenSearchClient.class);
        final CatApi toTest = new CatApi(objectMapper, client);

        when(client.execute(any(), anyString()))
                .thenReturn(objectMapper.readValue(SAMPLE_CAT_NODES_RESPONSE, new TypeReference<List<NodeResponse>>() {}));

        final List<NodeResponse> nodes = toTest.nodes();

        assertThat(nodes)
                .hasSize(2)
                .contains(NodeResponse.create("nodeWithCorrectInfo",
                        "nodeWithCorrectInfo",
                        "dimr",
                        null,
                        "182.88.0.2",
                        "45gb",
                        "411.5gb",
                        10.95d,
                        1048576L))
                .contains(NodeResponse.create("nodeWithMissingDiskStatistics",
                        "nodeWithMissingDiskStatistics",
                        "dimr",
                        null,
                        "182.88.0.1",
                        null,
                        null,
                        null,
                        null));
    }