Skip to content

Commit

Permalink
Merge pull request #2 from xenit-eu/XENOPS-979
Browse files Browse the repository at this point in the history
[XENOPS-979] Handle empty registrator variables as not existing
  • Loading branch information
vierbergenlars authored Dec 21, 2021
2 parents 45012d5 + e3b1166 commit ec1c9c0
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,9 @@ private Optional<String> findValue(ConfigKind configKind, ServiceBinding service
String configKey = "SERVICE"
+serviceBinding.getPort().map(port -> "_"+port).orElse("")
+configKind.getEnvVarSuffix();
if(configuration.getOrDefault(configKey, "").isBlank()) {
return Optional.empty();
}
return Optional.ofNullable(configuration.get(configKey));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,25 @@ public void withHostname() {
.build()
), services);
}

@Test
void emptyServiceName() {
var redis = SimpleContainerMetadata.builder()
.imageName("docker.io/progrium/redis")
.environment("SERVICE_NAME", "")
.internalPortBinding(ServiceBinding.fromPort(8000))
.build();

var services = configurationParser.toServiceConfigurations(redis);

assertEquals(Collections.singleton(
PlatformServiceConfiguration.builder()
.serviceName("redis")
.serviceBinding(ServiceBinding.fromPort(8000))
.build()
), services);

}
}

@Nested
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,10 +137,13 @@ public void registerCheck(RegistryServiceIdentifier serviceIdentifier, CheckType
public void unregisterCheck(RegistryServiceIdentifier serviceIdentifier, CheckType checkType) {
if (serviceIdentifier instanceof ConsulServiceIdentifier) {
registryMetrics.unregisterCheck(() -> {
log.debug("Deregistering check {}:{}", serviceIdentifier, checkType);
consulClient.agentCheckDeregister(createCheckId((ConsulServiceIdentifier) serviceIdentifier, checkType),
consulConfig.getToken());
log.debug("Deregistered check {}:{}", serviceIdentifier, checkType);
if(checkExists((ConsulServiceIdentifier) serviceIdentifier, checkType)) {
log.debug("Deregistering check {}:{}", serviceIdentifier, checkType);
consulClient.agentCheckDeregister(
createCheckId((ConsulServiceIdentifier) serviceIdentifier, checkType),
consulConfig.getToken());
log.debug("Deregistered check {}:{}", serviceIdentifier, checkType);
}

});
}
Expand Down Expand Up @@ -170,4 +173,10 @@ public void updateCheck(RegistryServiceIdentifier serviceIdentifier, CheckType c
});
}
}

private boolean checkExists(ConsulServiceIdentifier serviceIdentifier, CheckType checkType) {
String checkId = createCheckId(serviceIdentifier, checkType);
var agentChecks = consulClient.getAgentChecks().getValue();
return agentChecks.containsKey(checkId);
}
}

0 comments on commit ec1c9c0

Please sign in to comment.