Skip to content
This repository was archived by the owner on Apr 10, 2024. It is now read-only.

Commit 1c50356

Browse files
authored
refactor: naming (#19)
1 parent 9406a97 commit 1c50356

18 files changed

+122
-122
lines changed

src/main/java/com/csviri/jenvtest/APIServer.java

-61
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package com.csviri.jenvtest;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
6+
import com.csviri.jenvtest.binary.BinaryManager;
7+
import com.csviri.jenvtest.process.*;
8+
9+
public class KubeAPIServer implements UnexpectedProcessStopHandler {
10+
11+
private static final Logger log = LoggerFactory.getLogger(KubeAPIServer.class);
12+
13+
public static final int STARTUP_TIMEOUT = 10_000;
14+
15+
private final KubeAPIServerConfig config;
16+
private final BinaryManager binaryManager;
17+
private final CertManager certManager;
18+
private final KubeConfig kubeConfig;
19+
private final EtcdProcess etcdProcess;
20+
private final KubeAPIServerProcess kubeApiServerProcess;
21+
22+
public KubeAPIServer() {
23+
this(KubeAPIServerConfigBuilder.anAPIServerConfig().build());
24+
}
25+
26+
public KubeAPIServer(KubeAPIServerConfig config) {
27+
this.config = config;
28+
this.binaryManager = new BinaryManager(config);
29+
this.certManager = new CertManager(config.getJenvtestDir());
30+
this.kubeConfig = new KubeConfig(certManager, binaryManager);
31+
this.etcdProcess = new EtcdProcess(binaryManager, this);
32+
this.kubeApiServerProcess =
33+
new KubeAPIServerProcess(certManager, binaryManager, this, config);
34+
}
35+
36+
public void start() {
37+
log.debug("Stating API Server. Using jenvtest dir: {}", config.getJenvtestDir());
38+
binaryManager.initAndDownloadIfRequired();
39+
certManager.createCertificatesIfNeeded();
40+
etcdProcess.cleanEtcdData();
41+
etcdProcess.startEtcd();
42+
kubeApiServerProcess.startApiServer();
43+
kubeConfig.updateKubeConfig();
44+
kubeApiServerProcess.waitUntilDefaultNamespaceCreated();
45+
log.debug("API Server ready to use");
46+
}
47+
48+
public void stop() {
49+
log.debug("Stopping");
50+
kubeApiServerProcess.stopApiServer();
51+
etcdProcess.stopEtcd();
52+
kubeConfig.cleanupFromKubeConfig();
53+
etcdProcess.cleanEtcdData();
54+
log.debug("Stopped");
55+
}
56+
57+
@Override
58+
public void processStopped(Process process) {
59+
stop();
60+
}
61+
}

src/main/java/com/csviri/jenvtest/APIServerConfig.java renamed to src/main/java/com/csviri/jenvtest/KubeAPIServerConfig.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.util.Optional;
44

5-
public class APIServerConfig {
5+
public class KubeAPIServerConfig {
66

77
/**
88
* Set directory where binaries and other assets are present. Default is ~/.jenvtest.
@@ -20,7 +20,7 @@ public class APIServerConfig {
2020
*/
2121
private final boolean downloadBinaries;
2222

23-
APIServerConfig(String jenvtestDir, String apiServerVersion, boolean downloadBinaries) {
23+
KubeAPIServerConfig(String jenvtestDir, String apiServerVersion, boolean downloadBinaries) {
2424
this.jenvtestDir = jenvtestDir;
2525
this.apiServerVersion = apiServerVersion;
2626
this.downloadBinaries = downloadBinaries;

src/main/java/com/csviri/jenvtest/APIServerConfigBuilder.java renamed to src/main/java/com/csviri/jenvtest/KubeAPIServerConfigBuilder.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.io.File;
44

5-
public final class APIServerConfigBuilder {
5+
public final class KubeAPIServerConfigBuilder {
66

77
public static final String JENVTEST_DOWNLOAD_BINARIES = "JENVTEST_DOWNLOAD_BINARIES";
88
public static final String JENVTEST_DIR_ENV_VAR = "JENVTEST_DIR";
@@ -14,28 +14,28 @@ public final class APIServerConfigBuilder {
1414
private String apiServerVersion;
1515
private Boolean downloadBinaries;
1616

17-
public APIServerConfigBuilder() {}
17+
public KubeAPIServerConfigBuilder() {}
1818

19-
public static APIServerConfigBuilder anAPIServerConfig() {
20-
return new APIServerConfigBuilder();
19+
public static KubeAPIServerConfigBuilder anAPIServerConfig() {
20+
return new KubeAPIServerConfigBuilder();
2121
}
2222

23-
public APIServerConfigBuilder withJenvtestDir(String jenvtestDir) {
23+
public KubeAPIServerConfigBuilder withJenvtestDir(String jenvtestDir) {
2424
this.jenvtestDir = jenvtestDir;
2525
return this;
2626
}
2727

28-
public APIServerConfigBuilder withApiServerVersion(String apiServerVersion) {
28+
public KubeAPIServerConfigBuilder withApiServerVersion(String apiServerVersion) {
2929
this.apiServerVersion = apiServerVersion;
3030
return this;
3131
}
3232

33-
public APIServerConfigBuilder withDownloadBinaries(boolean downloadBinaries) {
33+
public KubeAPIServerConfigBuilder withDownloadBinaries(boolean downloadBinaries) {
3434
this.downloadBinaries = downloadBinaries;
3535
return this;
3636
}
3737

38-
public APIServerConfig build() {
38+
public KubeAPIServerConfig build() {
3939
if (jenvtestDir == null) {
4040
var jenvtestDirFromEnvVar = System.getenv(JENVTEST_DIR_ENV_VAR);
4141
if (jenvtestDirFromEnvVar != null) {
@@ -53,11 +53,11 @@ public APIServerConfig build() {
5353
}
5454
}
5555
if (apiServerVersion == null) {
56-
var apiServerVersionEnvVar = System.getenv(JENVTEST_DIR_ENV_VAR);
56+
var apiServerVersionEnvVar = System.getenv(JENVTEST_API_SERVER_VERSION_ENV_VAR);
5757
if (apiServerVersionEnvVar != null) {
5858
this.apiServerVersion = apiServerVersionEnvVar;
5959
}
6060
}
61-
return new APIServerConfig(jenvtestDir, apiServerVersion, downloadBinaries);
61+
return new KubeAPIServerConfig(jenvtestDir, apiServerVersion, downloadBinaries);
6262
}
6363
}

src/main/java/com/csviri/jenvtest/KubeConfigManager.java renamed to src/main/java/com/csviri/jenvtest/KubeConfig.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99

1010
import com.csviri.jenvtest.binary.BinaryManager;
1111

12-
public class KubeConfigManager {
12+
public class KubeConfig {
1313

14-
private static final Logger log = LoggerFactory.getLogger(KubeConfigManager.class);
14+
private static final Logger log = LoggerFactory.getLogger(KubeConfig.class);
1515
public static final String JENVTEST = "jenvtest";
1616

1717
private CertManager certManager;
1818
private BinaryManager binaryManager;
1919

20-
public KubeConfigManager(CertManager certManager, BinaryManager binaryManager) {
20+
public KubeConfig(CertManager certManager, BinaryManager binaryManager) {
2121
this.certManager = certManager;
2222
this.binaryManager = binaryManager;
2323
}

src/main/java/com/csviri/jenvtest/Utils.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import org.slf4j.Logger;
99

10-
import com.csviri.jenvtest.binary.OSInfoProvider;
10+
import com.csviri.jenvtest.binary.OSInfo;
1111

1212
public class Utils {
1313

@@ -47,8 +47,8 @@ public static void redirectProcessOutputToLogger(InputStream outputStream, Logge
4747
}).start();
4848
}
4949

50-
public static String platformSuffix(OSInfoProvider osInfoProvider) {
51-
return "-" + osInfoProvider.getOSName() + "-" + osInfoProvider.getOSArch();
50+
public static String platformSuffix(OSInfo osInfo) {
51+
return "-" + osInfo.getOSName() + "-" + osInfo.getOSArch();
5252
}
5353

5454
}

src/main/java/com/csviri/jenvtest/binary/BinaryDownloader.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,16 @@ public class BinaryDownloader {
2424

2525
private final String jenvtestDir;
2626
private final BinaryRepo binaryRepo;
27-
private final OSInfoProvider osInfoProvider;
27+
private final OSInfo osInfoProvider;
2828

29-
public BinaryDownloader(String jenvtestDir, OSInfoProvider osInfoProvider) {
29+
public BinaryDownloader(String jenvtestDir, OSInfo osInfoProvider) {
3030
this.jenvtestDir = jenvtestDir;
3131
this.osInfoProvider = osInfoProvider;
3232
this.binaryRepo = new BinaryRepo(osInfoProvider);
3333

3434
}
3535

36-
BinaryDownloader(String jenvtestDir, BinaryRepo binaryRepo, OSInfoProvider osInfoProvider) {
36+
BinaryDownloader(String jenvtestDir, BinaryRepo binaryRepo, OSInfo osInfoProvider) {
3737
this.jenvtestDir = jenvtestDir;
3838
this.binaryRepo = binaryRepo;
3939
this.osInfoProvider = osInfoProvider;

src/main/java/com/csviri/jenvtest/binary/BinaryManager.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import java.util.Optional;
66
import java.util.stream.Collectors;
77

8-
import com.csviri.jenvtest.APIServerConfig;
98
import com.csviri.jenvtest.JenvtestException;
9+
import com.csviri.jenvtest.KubeAPIServerConfig;
1010
import com.csviri.jenvtest.Utils;
1111

1212
import static com.csviri.jenvtest.binary.Binaries.*;
@@ -16,14 +16,14 @@ public class BinaryManager {
1616
public static final String BINARY_LIST_DIR = "k8s";
1717

1818
private Binaries binaries;
19-
private final APIServerConfig config;
19+
private final KubeAPIServerConfig config;
2020
private final BinaryDownloader downloader;
21-
private final OSInfoProvider osInfoProvider;
21+
private final OSInfo osInfo;
2222

23-
public BinaryManager(APIServerConfig config) {
23+
public BinaryManager(KubeAPIServerConfig config) {
2424
this.config = config;
25-
this.osInfoProvider = new OSInfoProvider();
26-
this.downloader = new BinaryDownloader(config.getJenvtestDir(), osInfoProvider);
25+
this.osInfo = new OSInfo();
26+
this.downloader = new BinaryDownloader(config.getJenvtestDir(), osInfo);
2727
}
2828

2929
public void initAndDownloadIfRequired() {
@@ -65,7 +65,7 @@ public Binaries binaries() {
6565
}
6666

6767
private Optional<File> findTargetBinariesIfAvailable() {
68-
var platformSuffix = Utils.platformSuffix(osInfoProvider);
68+
var platformSuffix = Utils.platformSuffix(osInfo);
6969
if (config.getApiServerVersion().isPresent()) {
7070
var targetVersionDir = new File(config.getJenvtestDir(), BINARY_LIST_DIR
7171
+ File.separator + config.getApiServerVersion().get() + platformSuffix);

src/main/java/com/csviri/jenvtest/binary/BinaryRepo.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@ public class BinaryRepo {
2020

2121
private static final String BUCKET_NAME = "kubebuilder-tools";
2222

23-
private final OSInfoProvider osInfoProvider;
23+
private final OSInfo osInfo;
2424

25-
public BinaryRepo(OSInfoProvider osInfoProvider) {
26-
this.osInfoProvider = osInfoProvider;
25+
public BinaryRepo(OSInfo osInfo) {
26+
this.osInfo = osInfo;
2727
}
2828

2929

3030
public File downloadVersionToTempFile(String version) {
3131
try {
3232
String url = "https://storage.googleapis.com/kubebuilder-tools/kubebuilder-tools-" + version +
33-
"-" + osInfoProvider.getOSName() + "-" + osInfoProvider.getOSArch() + ".tar.gz";
33+
"-" + osInfo.getOSName() + "-" + osInfo.getOSArch() + ".tar.gz";
3434

3535
File tempFile = File.createTempFile("kubebuilder-tools-" + version, ".tar.gz");
3636
log.debug("Downloading binary from url: {} to Temp file: {}", url, tempFile.getPath());

src/main/java/com/csviri/jenvtest/binary/OSInfoProvider.java renamed to src/main/java/com/csviri/jenvtest/binary/OSInfo.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.csviri.jenvtest.binary;
22

3-
public class OSInfoProvider {
3+
public class OSInfo {
44

55
public String getOSName() {
66
String os = System.getProperty("os.name").toLowerCase();

src/main/java/com/csviri/jenvtest/junit/APIServerExtension.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@
44
import org.junit.jupiter.api.extension.BeforeAllCallback;
55
import org.junit.jupiter.api.extension.ExtensionContext;
66

7-
import com.csviri.jenvtest.APIServer;
7+
import com.csviri.jenvtest.KubeAPIServer;
88

99
public class APIServerExtension implements BeforeAllCallback, AfterAllCallback {
1010

11-
private APIServer apiServer;
11+
private KubeAPIServer kubeApiServer;
1212

1313
@Override
1414
public void beforeAll(ExtensionContext extensionContext) throws Exception {
15-
apiServer = new APIServer();
16-
apiServer.start();
15+
kubeApiServer = new KubeAPIServer();
16+
kubeApiServer.start();
1717
}
1818

1919
@Override
2020
public void afterAll(ExtensionContext extensionContext) throws Exception {
21-
apiServer.stop();
21+
kubeApiServer.stop();
2222
}
2323
}

src/main/java/com/csviri/jenvtest/junit/EnableAPIServer.java renamed to src/main/java/com/csviri/jenvtest/junit/EnableKubeAPIServer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
@ExtendWith(APIServerExtension.class)
1212
@Target({TYPE, ANNOTATION_TYPE})
1313
@Retention(RUNTIME)
14-
public @interface EnableAPIServer {
14+
public @interface EnableKubeAPIServer {
1515

1616
}

src/main/java/com/csviri/jenvtest/process/EtcdProcessManager.java renamed to src/main/java/com/csviri/jenvtest/process/EtcdProcess.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@
1111
import com.csviri.jenvtest.Utils;
1212
import com.csviri.jenvtest.binary.BinaryManager;
1313

14-
public class EtcdProcessManager {
14+
public class EtcdProcess {
1515

16-
private static final Logger log = LoggerFactory.getLogger(EtcdProcessManager.class);
16+
private static final Logger log = LoggerFactory.getLogger(EtcdProcess.class);
1717
private static final Logger etcdLog =
18-
LoggerFactory.getLogger(EtcdProcessManager.class.getName() + ".etcdProcess");
18+
LoggerFactory.getLogger(EtcdProcess.class.getName() + ".etcdProcess");
1919

2020
private final BinaryManager binaryManager;
2121

2222
private volatile Process etcdProcess;
2323
private volatile boolean stopped = false;
2424
private final UnexpectedProcessStopHandler processStopHandler;
2525

26-
public EtcdProcessManager(BinaryManager binaryManager,
26+
public EtcdProcess(BinaryManager binaryManager,
2727
UnexpectedProcessStopHandler processStopHandler) {
2828
this.binaryManager = binaryManager;
2929
this.processStopHandler = processStopHandler;

0 commit comments

Comments
 (0)