Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ import java.io.BufferedWriter
* @since 4.13.0
*/
class LicenseOverridingMysql private constructor(
private val database: Database,
private val database: SshDatabase,
private val licenseCollection: LicenseCollection
) : Database {
) : SshDatabase {
private val logger: Logger = LogManager.getLogger(this::class.java)

@Deprecated(message = "Use the Builder and pass licenses as Files to reduce accidental leakage of the license")
constructor(
database: Database,
database: SshDatabase,
licenses: List<String>) : this(database, LicenseCollection(licenses.map<String, File> {
createTempLicenseFile(it)
}))
Expand Down Expand Up @@ -61,7 +61,7 @@ class LicenseOverridingMysql private constructor(
val licenses: List<File>
)

class Builder(private val database: Database) {
class Builder(private val database: SshDatabase) {
private var licenseFiles: List<File> = emptyList()

@Deprecated(message = "Pass licenses as Files to reduce accidental leakage of the license")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import java.time.Instant
class MySqlDatabase(
private val source: DatasetPackage,
private val maxConnections: Int
) : Database {
) : SshDatabase {
private val logger: Logger = LogManager.getLogger(this::class.java)

private val image: DockerImage = DockerImage(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.atlassian.performance.tools.infrastructure.api.database

/**
* AWS RDS based database.
*/
interface RdsDatabase {

/**
* @return Database data location if exists
*/
fun start(): String

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.atlassian.performance.tools.infrastructure.api.database

import org.apache.logging.log4j.LogManager
import org.apache.logging.log4j.Logger

class RdsPostgreslDatabase(
) : RdsDatabase {
private val logger: Logger = LogManager.getLogger(this::class.java)


override fun start(): String {
// TODO: call aws-resource?
return "OK"
}

private fun isReady() {
// TODO: call aws-resource in a sleep loop
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import java.net.URI
/**
* SSH-based database.
*/
interface Database {
interface SshDatabase {

/**
* @return Database data location if exists
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.atlassian.performance.tools.infrastructure.api.dataset

import com.atlassian.performance.tools.infrastructure.api.database.RdsDatabase
import com.atlassian.performance.tools.infrastructure.api.jira.JiraHomeSource

/**
* AWS RDS based dataset.
*/
class RdsDataset(
val database: RdsDatabase,
val jiraHomeSource: JiraHomeSource,
val label: String
) {

override fun toString(): String {
return "Dataset(database=$database, jiraHomeSource=$jiraHomeSource, label='$label')"
}

/**
* @since 4.13.0
*/
class Builder(
original: RdsDataset
) {
private var database: RdsDatabase = original.database
private var jiraHomeSource: JiraHomeSource = original.jiraHomeSource
private var label: String = original.label

fun database(database: RdsDatabase) = apply { this.database = database }
fun jiraHomeSource(jiraHomeSource: JiraHomeSource) = apply { this.jiraHomeSource = jiraHomeSource }
fun label(label: String) = apply { this.label = label }

fun build(): RdsDataset = RdsDataset(
database = database,
jiraHomeSource = jiraHomeSource,
label = label
)
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.atlassian.performance.tools.infrastructure.api.dataset

import com.atlassian.performance.tools.infrastructure.api.database.Database
import com.atlassian.performance.tools.infrastructure.api.database.SshDatabase
import com.atlassian.performance.tools.infrastructure.api.jira.JiraHomeSource

/**
* SSH-based dataset.
*/
class Dataset(
val database: Database,
class SshDataset(
val database: SshDatabase,
val jiraHomeSource: JiraHomeSource,
val label: String
) {
Expand All @@ -20,17 +20,17 @@ class Dataset(
* @since 4.13.0
*/
class Builder(
original: Dataset
original: SshDataset
) {
private var database: Database = original.database
private var database: SshDatabase = original.database
private var jiraHomeSource: JiraHomeSource = original.jiraHomeSource
private var label: String = original.label

fun database(database: Database) = apply { this.database = database }
fun database(database: SshDatabase) = apply { this.database = database }
fun jiraHomeSource(jiraHomeSource: JiraHomeSource) = apply { this.jiraHomeSource = jiraHomeSource }
fun label(label: String) = apply { this.label = label }

fun build(): Dataset = Dataset(
fun build(): SshDataset = SshDataset(
database = database,
jiraHomeSource = jiraHomeSource,
label = label
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ class LicenseOverridingMysqlTest {
val ssh: RememberingSshConnection
)

private class RememberingDatabase : Database {
private class RememberingDatabase : SshDatabase {

var setup = false
var started = false
Expand Down