Merge branch 'config-file-check' into 'master'
Check for config file existence See merge request domaindrivenarchitecture/provs!2
This commit is contained in:
commit
805fe029dc
6 changed files with 74 additions and 8 deletions
|
@ -1,6 +1,11 @@
|
||||||
package org.domaindrivenarchitecture.provs.configuration.domain
|
package org.domaindrivenarchitecture.provs.configuration.domain
|
||||||
|
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
class ConfigFileName(fileName: String)
|
class ConfigFileName(fileName: String)
|
||||||
{
|
{
|
||||||
val fileName = fileName.trim()
|
val fileName = fileName.trim()
|
||||||
|
fun fullqualified() : String {
|
||||||
|
return File(fileName).absoluteFile.absolutePath
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package org.domaindrivenarchitecture.provs.configuration.domain
|
||||||
|
|
||||||
|
interface ConfigFileRepository {
|
||||||
|
fun assertExists(configFileName: ConfigFileName?)
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package org.domaindrivenarchitecture.provs.configuration.infrastructure
|
||||||
|
|
||||||
|
import org.domaindrivenarchitecture.provs.framework.ubuntu.filesystem.base.checkLocalFile
|
||||||
|
import org.domaindrivenarchitecture.provs.configuration.domain.ConfigFileName
|
||||||
|
import org.domaindrivenarchitecture.provs.configuration.domain.ConfigFileRepository
|
||||||
|
|
||||||
|
class DefaultConfigFileRepository : ConfigFileRepository {
|
||||||
|
override fun assertExists(configFileName: ConfigFileName?) {
|
||||||
|
if (configFileName != null && !checkLocalFile(configFileName.fullqualified())) {
|
||||||
|
throw RuntimeException("Config file ${configFileName.fileName} not found. Please check if path is correct.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package org.domaindrivenarchitecture.provs.server.domain.k3s
|
package org.domaindrivenarchitecture.provs.server.domain.k3s
|
||||||
|
|
||||||
|
import org.domaindrivenarchitecture.provs.configuration.infrastructure.DefaultConfigFileRepository
|
||||||
import org.domaindrivenarchitecture.provs.framework.core.Prov
|
import org.domaindrivenarchitecture.provs.framework.core.Prov
|
||||||
import org.domaindrivenarchitecture.provs.server.domain.k8s_grafana_agent.GrafanaAgentConfigResolved
|
import org.domaindrivenarchitecture.provs.server.domain.k8s_grafana_agent.GrafanaAgentConfigResolved
|
||||||
import org.domaindrivenarchitecture.provs.server.domain.k8s_grafana_agent.provisionGrafanaAgent
|
import org.domaindrivenarchitecture.provs.server.domain.k8s_grafana_agent.provisionGrafanaAgent
|
||||||
|
@ -14,6 +15,7 @@ fun Prov.provisionK3sCommand(cli: K3sCliCommand) = task {
|
||||||
if (cli.onlyModules == null ) {
|
if (cli.onlyModules == null ) {
|
||||||
val k3sConfig: K3sConfig = getK3sConfig(cli.configFileName)
|
val k3sConfig: K3sConfig = getK3sConfig(cli.configFileName)
|
||||||
DefaultApplicationFileRepository().assertExists(cli.applicationFileName)
|
DefaultApplicationFileRepository().assertExists(cli.applicationFileName)
|
||||||
|
DefaultConfigFileRepository().assertExists(cli.configFileName)
|
||||||
|
|
||||||
val k3sConfigReprovision = k3sConfig.copy(reprovision = cli.reprovision || k3sConfig.reprovision)
|
val k3sConfigReprovision = k3sConfig.copy(reprovision = cli.reprovision || k3sConfig.reprovision)
|
||||||
provisionK3s(k3sConfigReprovision, grafanaConfigResolved, cli.applicationFileName)
|
provisionK3s(k3sConfigReprovision, grafanaConfigResolved, cli.applicationFileName)
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
package org.domaindrivenarchitecture.provs.configuration.infrastructure
|
||||||
|
|
||||||
|
import org.domaindrivenarchitecture.provs.server.domain.k3s.ApplicationFileName
|
||||||
|
import org.domaindrivenarchitecture.provs.server.domain.k3s.ApplicationFileRepository
|
||||||
|
import org.domaindrivenarchitecture.provs.server.infrastructure.DefaultApplicationFileRepository
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
import org.junit.jupiter.api.assertThrows
|
||||||
|
import org.junit.jupiter.api.Assertions.assertEquals
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
internal class DefaultConfigFileRepositoryKtTest {
|
||||||
|
@Test
|
||||||
|
fun assertExistsThrowsRuntimeException() {
|
||||||
|
// when
|
||||||
|
val invalidFileName = ApplicationFileName("iDontExist")
|
||||||
|
val repo: ApplicationFileRepository = DefaultApplicationFileRepository()
|
||||||
|
|
||||||
|
// then
|
||||||
|
val exception = assertThrows<RuntimeException>(
|
||||||
|
"Should not find the file."
|
||||||
|
) { repo.assertExists(invalidFileName) }
|
||||||
|
|
||||||
|
assertEquals(
|
||||||
|
"Application file iDontExist not found. Please check if path is correct.",
|
||||||
|
exception.message)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun assertExistsPasses() {
|
||||||
|
// given
|
||||||
|
val validFileName = "src/test/resources/existing_file"
|
||||||
|
|
||||||
|
// when
|
||||||
|
val validFile = ApplicationFileName(File(validFileName).path)
|
||||||
|
val repo: ApplicationFileRepository = DefaultApplicationFileRepository()
|
||||||
|
repo.assertExists(validFile)
|
||||||
|
|
||||||
|
// then
|
||||||
|
// no exception is thrown
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,10 +1,10 @@
|
||||||
package org.domaindrivenarchitecture.provs.server.infrastructure
|
package org.domaindrivenarchitecture.provs.server.infrastructure
|
||||||
|
|
||||||
import org.domaindrivenarchitecture.provs.server.domain.k3s.ApplicationFileName
|
import org.domaindrivenarchitecture.provs.configuration.domain.ConfigFileName
|
||||||
import org.domaindrivenarchitecture.provs.server.domain.k3s.ApplicationFileRepository
|
import org.domaindrivenarchitecture.provs.configuration.infrastructure.DefaultConfigFileRepository
|
||||||
|
import org.junit.jupiter.api.Assertions.assertEquals
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.junit.jupiter.api.assertThrows
|
import org.junit.jupiter.api.assertThrows
|
||||||
import org.junit.jupiter.api.Assertions.assertEquals
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
internal class DefaultApplicationFileRepositoryKtTest {
|
internal class DefaultApplicationFileRepositoryKtTest {
|
||||||
|
@ -12,8 +12,8 @@ internal class DefaultApplicationFileRepositoryKtTest {
|
||||||
@Test
|
@Test
|
||||||
fun assertExistsThrowsRuntimeException() {
|
fun assertExistsThrowsRuntimeException() {
|
||||||
// when
|
// when
|
||||||
val invalidFileName = ApplicationFileName("iDontExist")
|
val invalidFileName = ConfigFileName("iDontExist")
|
||||||
val repo: ApplicationFileRepository = DefaultApplicationFileRepository()
|
val repo = DefaultConfigFileRepository()
|
||||||
|
|
||||||
// then
|
// then
|
||||||
val exception = assertThrows<RuntimeException>(
|
val exception = assertThrows<RuntimeException>(
|
||||||
|
@ -21,7 +21,7 @@ internal class DefaultApplicationFileRepositoryKtTest {
|
||||||
) { repo.assertExists(invalidFileName) }
|
) { repo.assertExists(invalidFileName) }
|
||||||
|
|
||||||
assertEquals(
|
assertEquals(
|
||||||
"Application file iDontExist not found. Please check if path is correct.",
|
"Config file iDontExist not found. Please check if path is correct.",
|
||||||
exception.message)
|
exception.message)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,8 +31,8 @@ internal class DefaultApplicationFileRepositoryKtTest {
|
||||||
val validFileName = "src/test/resources/existing_file"
|
val validFileName = "src/test/resources/existing_file"
|
||||||
|
|
||||||
// when
|
// when
|
||||||
val validFile = ApplicationFileName(File(validFileName).path)
|
val validFile = ConfigFileName(File(validFileName).path)
|
||||||
val repo: ApplicationFileRepository = DefaultApplicationFileRepository()
|
val repo = DefaultConfigFileRepository()
|
||||||
repo.assertExists(validFile)
|
repo.assertExists(validFile)
|
||||||
|
|
||||||
// then
|
// then
|
||||||
|
|
Loading…
Reference in a new issue