Merge pull request #20356 from bmscomp
* pr/20356: Polish "Improve details of neo4h health indicator" Improve details of neo4h health indicator Closes gh-20356
This commit is contained in:
commit
41101f7ad4
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2019 the original author or authors.
|
* Copyright 2012-2020 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -40,7 +40,8 @@ public class Neo4jHealthIndicator extends AbstractHealthIndicator {
|
||||||
/**
|
/**
|
||||||
* The Cypher statement used to verify Neo4j is up.
|
* The Cypher statement used to verify Neo4j is up.
|
||||||
*/
|
*/
|
||||||
static final String CYPHER = "match (n) return count(n) as nodes";
|
static final String CYPHER = "CALL dbms.components() YIELD versions, edition"
|
||||||
|
+ " UNWIND versions as version return version, edition";
|
||||||
|
|
||||||
private final SessionFactory sessionFactory;
|
private final SessionFactory sessionFactory;
|
||||||
|
|
||||||
|
@ -69,7 +70,7 @@ public class Neo4jHealthIndicator extends AbstractHealthIndicator {
|
||||||
*/
|
*/
|
||||||
protected void extractResult(Session session, Health.Builder builder) throws Exception {
|
protected void extractResult(Session session, Health.Builder builder) throws Exception {
|
||||||
Result result = session.query(CYPHER, Collections.emptyMap());
|
Result result = session.query(CYPHER, Collections.emptyMap());
|
||||||
builder.up().withDetail("nodes", result.queryResults().iterator().next().get("nodes"));
|
builder.up().withDetails(result.queryResults().iterator().next());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2019 the original author or authors.
|
* Copyright 2012-2020 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -61,17 +61,21 @@ class Neo4jHealthIndicatorTests {
|
||||||
void neo4jUp() {
|
void neo4jUp() {
|
||||||
Result result = mock(Result.class);
|
Result result = mock(Result.class);
|
||||||
given(this.session.query(Neo4jHealthIndicator.CYPHER, Collections.emptyMap())).willReturn(result);
|
given(this.session.query(Neo4jHealthIndicator.CYPHER, Collections.emptyMap())).willReturn(result);
|
||||||
int nodeCount = 500;
|
|
||||||
Map<String, Object> expectedCypherDetails = new HashMap<>();
|
Map<String, Object> expectedCypherDetails = new HashMap<>();
|
||||||
expectedCypherDetails.put("nodes", nodeCount);
|
String edition = "community";
|
||||||
|
String version = "4.0.0";
|
||||||
|
expectedCypherDetails.put("edition", edition);
|
||||||
|
expectedCypherDetails.put("version", version);
|
||||||
List<Map<String, Object>> queryResults = new ArrayList<>();
|
List<Map<String, Object>> queryResults = new ArrayList<>();
|
||||||
queryResults.add(expectedCypherDetails);
|
queryResults.add(expectedCypherDetails);
|
||||||
given(result.queryResults()).willReturn(queryResults);
|
given(result.queryResults()).willReturn(queryResults);
|
||||||
Health health = this.neo4jHealthIndicator.health();
|
Health health = this.neo4jHealthIndicator.health();
|
||||||
assertThat(health.getStatus()).isEqualTo(Status.UP);
|
assertThat(health.getStatus()).isEqualTo(Status.UP);
|
||||||
Map<String, Object> details = health.getDetails();
|
Map<String, Object> details = health.getDetails();
|
||||||
int nodeCountFromDetails = (int) details.get("nodes");
|
String editionFromDetails = details.get("edition").toString();
|
||||||
assertThat(nodeCountFromDetails).isEqualTo(nodeCount);
|
String versionFromDetails = details.get("version").toString();
|
||||||
|
assertThat(editionFromDetails).isEqualTo(edition);
|
||||||
|
assertThat(versionFromDetails).isEqualTo(version);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue