@Override public Health check(Set<NodeHealth> appNodes) { int appNodeCount = appNodes.size(); if (appNodeCount == 0) { return newHealthCheckBuilder() .setStatus(Health.Status.RED) .addCause("No application node") .build(); } return Health.GREEN; } },
@Override public Health check(Set<NodeHealth> appNodes) { int appNodeCount = appNodes.size(); if (appNodeCount == 1) { return newHealthCheckBuilder() .setStatus(Health.Status.YELLOW) .addCause("There should be at least two application nodes") .build(); } return Health.GREEN; } },
@Test public void addCause_throws_IAE_if_arg_contains_only_spaces() { Health.Builder builder = newHealthCheckBuilder(); expectCauseCannotBeEmptyIAE(); builder.addCause(Strings.repeat(" ", 1 + random.nextInt(5))); }
return builder .setStatus(Health.Status.RED) .addCause("Status of all application nodes is RED") .build(); } else if (redNodesCount > 0) { builder.addCause("At least one application node is RED"); .addCause("Status of all application nodes is YELLOW") .build(); } else if (yellowNodesCount > 0) { builder.addCause("At least one application node is YELLOW");
@Override public Health check() { Platform.Status platformStatus = platform.status(); if (platformStatus == Platform.Status.UP && VALID_DATABASEMIGRATION_STATUSES.contains(migrationState.getStatus()) && !restartFlagHolder.isRestarting()) { return Health.GREEN; } return newHealthCheckBuilder() .setStatus(Health.Status.RED) .addCause("SonarQube webserver is not up") .build(); } }
@Override public Health check(Set<NodeHealth> appNodes) { int appNodeCount = appNodes.size(); if (appNodeCount == 1) { return newHealthCheckBuilder() .setStatus(Health.Status.YELLOW) .addCause("There should be at least two application nodes") .build(); } return Health.GREEN; } },
@Override public Health check(Set<NodeHealth> appNodes) { int appNodeCount = appNodes.size(); if (appNodeCount == 0) { return newHealthCheckBuilder() .setStatus(Health.Status.RED) .addCause("No application node") .build(); } return Health.GREEN; } },
new ClusterHealth(newHealthCheckBuilder() .setStatus(Health.Status.RED) .addCause("Application node app-1 is RED") .build(), ImmutableSet.of(
return builder .setStatus(Health.Status.RED) .addCause("Status of all application nodes is RED") .build(); } else if (redNodesCount > 0) { builder.addCause("At least one application node is RED"); .addCause("Status of all application nodes is YELLOW") .build(); } else if (yellowNodesCount > 0) { builder.addCause("At least one application node is YELLOW");
@Test public void equals_is_based_on_content() { Health health = randomHealth(); Set<NodeHealth> nodeHealths = randomNodeHealths(); ClusterHealth underTest = new ClusterHealth(health, nodeHealths); assertThat(underTest) .isEqualTo(underTest) .isEqualTo(new ClusterHealth(health, nodeHealths)) .isNotEqualTo(new Object()) .isNotEqualTo(null) .isNotEqualTo(new ClusterHealth( newHealthCheckBuilder() .setStatus(health.getStatus()) .addCause("foo_bar") .build(), randomNodeHealths())) .isNotEqualTo(new ClusterHealth( health, concat(nodeHealths.stream(), Stream.of(randomNodeHealth())).collect(toSet()))); }
@Test public void hashcode_is_based_on_status_and_causes() { Health.Builder builder1 = newHealthCheckBuilder(); Health.Builder builder2 = newHealthCheckBuilder(); builder1.setStatus(anyStatus); builder2.setStatus(anyStatus); randomCauses.forEach(s -> { builder1.addCause(s); builder2.addCause(s); }); assertThat(builder1.build().hashCode()) .isEqualTo(builder1.build().hashCode()) .isEqualTo(builder2.build().hashCode()) .isEqualTo(builder2.build().hashCode()); }
@Test public void equals_is_based_on_status_and_causes() { Health.Builder builder1 = newHealthCheckBuilder(); Health.Builder builder2 = newHealthCheckBuilder(); builder1.setStatus(anyStatus); builder2.setStatus(anyStatus); randomCauses.forEach(s -> { builder1.addCause(s); builder2.addCause(s); }); assertThat(builder1.build()) .isEqualTo(builder1.build()) .isEqualTo(builder2.build()) .isEqualTo(builder2.build()); }
@Override public Health check() { Platform.Status platformStatus = platform.status(); if (platformStatus == Platform.Status.UP && VALID_DATABASEMIGRATION_STATUSES.contains(migrationState.getStatus()) && !restartFlagHolder.isRestarting()) { return Health.GREEN; } return newHealthCheckBuilder() .setStatus(Health.Status.RED) .addCause("SonarQube webserver is not up") .build(); } }
@Test public void verify_response_example() { authenticateWithPasscode(); when(healthChecker.checkNode()) .thenReturn(newHealthCheckBuilder() .setStatus(Health.Status.RED) .addCause("Application node app-1 is RED") .build()); TestResponse response = underTest.newRequest().execute(); assertJson(response.getInput()) .ignoreFields("nodes") .isSimilarTo(underTest.getDef().responseExampleAsString()); }
@Test public void addCause_throws_IAE_if_arg_is_empty() { Health.Builder builder = newHealthCheckBuilder(); expectCauseCannotBeEmptyIAE(); builder.addCause(""); }
@Test public void addCause_throws_NPE_if_arg_is_null() { Health.Builder builder = newHealthCheckBuilder(); expectedException.expect(NullPointerException.class); expectedException.expectMessage("cause can't be null"); builder.addCause(null); }