Skip to content

Commit

Permalink
Fix serialization logic since you cannot serialize to an Optional.
Browse files Browse the repository at this point in the history
  • Loading branch information
kdorosh committed Jun 27, 2018
1 parent 4623ebd commit 9c011d4
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.google.common.base.Optional;

public enum SingularityExecutorLogrotateFrequency {
NONE("", Optional.absent()), // we have to use "none" in case we do not want to specify an override frequency
HOURLY("daily", Optional.of("0 * * * *")), // we have to use the "daily" frequency because not all versions of logrotate support "hourly"
DAILY("daily", Optional.absent()),
WEEKLY("weekly", Optional.absent()),
Expand All @@ -24,4 +25,3 @@ public Optional<String> getCronSchedule() {
return cronSchedule;
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ public class SingularityExecutorLogrotateAdditionalFile {
private final String filename;
private final Optional<String> extension;
private final Optional<String> dateformat;
private final Optional<SingularityExecutorLogrotateFrequency> frequencyOverride;
private final SingularityExecutorLogrotateFrequency frequencyOverride;

@JsonCreator
public static SingularityExecutorLogrotateAdditionalFile fromString(String value) {
return new SingularityExecutorLogrotateAdditionalFile(value, Optional.absent(), Optional.absent(), Optional.absent());
return new SingularityExecutorLogrotateAdditionalFile(value, Optional.absent(), Optional.absent(), SingularityExecutorLogrotateFrequency.NONE);
}

@JsonCreator
public SingularityExecutorLogrotateAdditionalFile(@JsonProperty("filename") String filename,
@JsonProperty("extension") Optional<String> extension,
@JsonProperty("dateformat") Optional<String> dateformat,
@JsonProperty("logrotateFrequencyOverride") Optional<SingularityExecutorLogrotateFrequency> frequencyOverride) {
@JsonProperty("extension") Optional<String> extension,
@JsonProperty("dateformat") Optional<String> dateformat,
@JsonProperty("logrotateFrequencyOverride") SingularityExecutorLogrotateFrequency frequencyOverride) {
this.filename = filename;
this.extension = extension;
this.dateformat = dateformat;
Expand All @@ -39,7 +39,7 @@ public Optional<String> getDateformat() {
return dateformat;
}

public Optional<SingularityExecutorLogrotateFrequency> getFrequencyOverride() {
public SingularityExecutorLogrotateFrequency getFrequencyOverride() {
return frequencyOverride;
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package com.hubspot.singularity.executor.models;

import com.google.common.base.Optional;
import com.hubspot.singularity.executor.SingularityExecutorLogrotateFrequency;

public class LogrotateAdditionalFile {
private final String filename;
private final String extension;
private final String dateformat;
private final Optional<SingularityExecutorLogrotateFrequency> logrotateFrequencyOverride;
private final SingularityExecutorLogrotateFrequency logrotateFrequencyOverride;

public LogrotateAdditionalFile(String filename, String extension, String dateformat, Optional<SingularityExecutorLogrotateFrequency> logrotateFrequencyOverride) {
public LogrotateAdditionalFile(String filename, String extension, String dateformat, SingularityExecutorLogrotateFrequency logrotateFrequencyOverride) {
this.filename = filename;
this.extension = extension;
this.dateformat = dateformat;
Expand All @@ -29,7 +28,7 @@ public String getDateformat() {
}

public String getLogrotateFrequencyOverride() {
return logrotateFrequencyOverride.isPresent() ? logrotateFrequencyOverride.get().getLogrotateValue() : "";
return logrotateFrequencyOverride.getLogrotateValue();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package com.hubspot.singularity.executor.config;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.*;

import java.io.File;
import java.lang.reflect.Field;
Expand Down Expand Up @@ -44,25 +43,25 @@ public void itLoadsDockerAuthFromConfigFileIfSpecified() {
assertThat(config.getDockerAuthConfig().isPresent()).isTrue();
assertThat(config.getDockerAuthConfig().get().isFromDockerConfig()).isTrue();
}

private SingularityExecutorConfiguration loadConfig(String file) {
try {
ObjectMapper mapper = new SingularityRunnerBaseModule(null).providesYamlMapper();
Validator validator = mock(Validator.class);

Field mapperField = SingularityRunnerConfigurationProvider.class.getDeclaredField("objectMapper");
mapperField.setAccessible(true);

Field validatorField = SingularityRunnerConfigurationProvider.class.getDeclaredField("validator");
validatorField.setAccessible(true);

SingularityRunnerConfigurationProvider<SingularityExecutorConfiguration> configProvider = new SingularityRunnerConfigurationProvider<>(
SingularityExecutorConfiguration.class,
Optional.of(new File(getClass().getClassLoader().getResource(file).toURI()).getAbsolutePath()));
SingularityExecutorConfiguration.class,
Optional.of(new File(getClass().getClassLoader().getResource(file).toURI()).getAbsolutePath()));

mapperField.set(configProvider, mapper);
validatorField.set(configProvider, validator);

return configProvider.get();
}
catch(Exception e) {
Expand All @@ -81,7 +80,7 @@ public void itOverridesGlobalLogrotateFrequency() throws Exception {

List<LogrotateAdditionalFile> testExtraFiles = new ArrayList<>();
testExtraFiles.add(new LogrotateAdditionalFile("/tmp/testfile.txt", "txt", "%Y%m%d",
Optional.of(SingularityExecutorLogrotateFrequency.DAILY)));
SingularityExecutorLogrotateFrequency.DAILY));

doReturn(testExtraFiles).when(context).getExtrasFiles();

Expand Down

0 comments on commit 9c011d4

Please sign in to comment.