Skip to content

Commit

Permalink
Add feature flag for the feature
Browse files Browse the repository at this point in the history
  • Loading branch information
IvanBorislavovDimitrov committed Jan 16, 2025
1 parent e7ddd44 commit 0aaf113
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ public final class Messages {
public static final String THREADS_FOR_FILE_UPLOAD_TO_CONTROLLER_0 = "Threads for file upload to controller: {0}";
public static final String THREADS_FOR_FILE_STORAGE_UPLOAD_0 = "Threads for file storage upload: {0}";
public static final String DELETED_ORPHANED_MTA_DESCRIPTORS_COUNT = "Deleted orphaned mta descriptors count: {0}";
public static final String IS_HEALTH_CHECK_ENABLED = "Is health check enabled: {0}";

// Debug messages
public static final String DEPLOYMENT_DESCRIPTOR = "Deployment descriptor: {0}";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,12 @@ private void executeFuture(Future<Boolean> future, Consumer<Boolean> consumer, b
}

public ResponseEntity<ApplicationHealthResult> calculateApplicationHealth() {
if (!applicationConfiguration.isHealthCheckEnabled()) {
return ResponseEntity.ok(ImmutableApplicationHealthResult.builder()
.status(ApplicationHealthResult.Status.UP)
.hasIncreasedLocks(false)
.build());
}
boolean isObjectStoreFileStorageHealthy = objectStoreFileStorageHealthCache.getOrRefresh(() -> false);
boolean isDbHealthy = dbHealthServiceCache.getOrRefresh(() -> false);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

import jakarta.inject.Inject;
import jakarta.inject.Named;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.cloudfoundry.multiapps.common.ParsingException;
Expand All @@ -31,6 +28,9 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.support.CronExpression;

import jakarta.inject.Inject;
import jakarta.inject.Named;

@Named
@Lazy(false)
public class ApplicationConfiguration {
Expand Down Expand Up @@ -94,6 +94,7 @@ public class ApplicationConfiguration {
static final String CFG_ENABLE_ON_START_FILES_WITHOUT_CONTENT_CLEANER = "ENABLE_ON_START_FILES_WITHOUT_CONTENT_CLEANER";
static final String CFG_THREADS_FOR_FILE_UPLOAD_TO_CONTROLLER = "THREADS_FOR_FILE_UPLOAD_TO_CONTROLLER";
static final String CFG_THREADS_FOR_FILE_STORAGE_UPLOAD = "THREADS_FOR_FILE_STORAGE_UPLOAD";
static final String CFG_IS_HEALTH_CHECK_ENABLED = "IS_HEALTH_CHECK_ENABLED";

private static final List<String> VCAP_APPLICATION_URIS_KEYS = List.of("full_application_uris", "application_uris", "uris");

Expand Down Expand Up @@ -151,6 +152,7 @@ public class ApplicationConfiguration {
public static final boolean DEFAULT_ENABLE_ON_START_FILES_WITHOUT_CONTENT_CLEANER = false;
public static final int DEFAULT_THREADS_FOR_FILE_UPLOAD_TO_CONTROLLER = 6;
public static final int DEFAULT_THREADS_FOR_FILE_STORAGE_UPLOAD = 7;
public static final boolean DEFAULT_IS_HEALTH_CHECK_ENABLED = false;

protected final Environment environment;

Expand Down Expand Up @@ -210,6 +212,7 @@ public class ApplicationConfiguration {
private Boolean isOnStartFilesWithoutContentCleanerEnabledThroughEnvironment;
private Integer threadsForFileUploadToController;
private Integer threadsForFileStorageUpload;
private Boolean isHealthCheckEnabled;

public ApplicationConfiguration() {
this(new Environment());
Expand Down Expand Up @@ -653,6 +656,13 @@ public int getThreadsForFileStorageUpload() {
return threadsForFileStorageUpload;
}

public boolean isHealthCheckEnabled() {
if (isHealthCheckEnabled == null) {
isHealthCheckEnabled = isHealthCheckEnabledFromEnvironment();
}
return isHealthCheckEnabled;
}

private URL getControllerUrlFromEnvironment() {
String controllerUrlString = environment.getString("CF_API");
if (StringUtils.isEmpty(controllerUrlString)) {
Expand Down Expand Up @@ -1073,6 +1083,12 @@ private int getThreadsForFileStorageUploadFromEnvironment() {
return value;
}

public boolean isHealthCheckEnabledFromEnvironment() {
boolean value = environment.getBoolean(CFG_IS_HEALTH_CHECK_ENABLED, DEFAULT_IS_HEALTH_CHECK_ENABLED);
LOGGER.info(format(Messages.IS_HEALTH_CHECK_ENABLED, value));
return value;
}

public Boolean isInternalEnvironment() {
return environment.getBoolean(SAP_INTERNAL_DELIVERY, DEFAULT_SAP_INTERNAL_DELIVERY);
}
Expand Down

0 comments on commit 0aaf113

Please sign in to comment.