Skip to content

Commit 961107c

Browse files
committed
JPERF-273: Support Jiras with an HTTP path
1 parent 080f55e commit 961107c

File tree

24 files changed

+79
-57
lines changed

24 files changed

+79
-57
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.atlassian.performance.tools.infrastructure.api.jira.install
2+
3+
import java.net.URI
4+
5+
class HttpHost internal constructor(
6+
val tcp: TcpHost,
7+
private val basePath: String,
8+
private val supportsTls: Boolean
9+
) {
10+
11+
fun addressPublicly(): URI = address(tcp.publicIp)
12+
fun addressPrivately(): URI = address(tcp.privateIp)
13+
fun addressPrivately(userName: String, password: String): URI = address(tcp.privateIp, "$userName:$password@")
14+
15+
private fun address(ip: String, userInfo: String = ""): URI {
16+
val scheme = if (supportsTls) "https" else "http"
17+
return URI("$scheme://$userInfo$ip:${tcp.port}$basePath/")
18+
}
19+
}

src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/jira/install/InstalledJira.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class InstalledJira(
2222
*/
2323
val jdk: JavaDevelopmentKit,
2424
/**
25-
* Hosts Jira. Specifies sockets used by Jira to handle requests.
25+
* Connects to Jira on HTTP level or below.
2626
*/
27-
val host: TcpHost
27+
val http: HttpHost
2828
)

src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/jira/install/JiraInstallation.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ import net.jcip.annotations.ThreadSafe
1010
interface JiraInstallation {
1111

1212
/**
13-
* Installs Jira on [host].
13+
* Installs Jira on [tcp].
1414
*
15-
* @param [host] will host the Jira
15+
* @param [tcp] will host the Jira
1616
* @param [reports] accumulates reports
1717
*/
1818
fun install(
19-
host: TcpHost,
19+
tcp: TcpHost,
2020
reports: Reports
2121
): InstalledJira
2222
}

src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/jira/install/ParallelInstallation.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ class ParallelInstallation(
1616
) : JiraInstallation {
1717

1818
override fun install(
19-
host: TcpHost,
19+
tcp: TcpHost,
2020
reports: Reports
2121
): InstalledJira {
22-
host.ssh.newConnection().use { ssh ->
22+
tcp.ssh.newConnection().use { ssh ->
2323
val pool = Executors.newCachedThreadPool { runnable ->
2424
Thread(runnable, "jira-installation-${runnable.hashCode()}")
2525
}
@@ -32,7 +32,7 @@ class ParallelInstallation(
3232
val java = pool.submitWithLogContext("java") {
3333
jdk.also { it.install(ssh) }
3434
}
35-
val jira = InstalledJira(home.get(), product.get(), java.get(), host)
35+
val jira = InstalledJira(home.get(), product.get(), java.get(), HttpHost(tcp, "", false))
3636
pool.shutdownNow()
3737
return jira
3838
}

src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/jira/install/SequentialInstallation.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ class SequentialInstallation(
1414
) : JiraInstallation {
1515

1616
override fun install(
17-
host: TcpHost,
17+
tcp: TcpHost,
1818
reports: Reports
1919
): InstalledJira {
20-
host.ssh.newConnection().use { ssh ->
20+
tcp.ssh.newConnection().use { ssh ->
2121
val installation = productDistribution.installRemotely(ssh, ".")
2222
val home = jiraHomeSource.downloadRemotely(ssh)
2323
jdk.install(ssh)
24-
return InstalledJira(home, installation, jdk, host)
24+
return InstalledJira(home, installation, jdk, HttpHost(tcp, "", false))
2525
}
2626
}
2727
}

src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/jira/install/hook/AsyncProfilerHook.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class AsyncProfilerHook : PreInstallHook {
1313

1414
override fun call(
1515
ssh: SshConnection,
16-
host: TcpHost,
16+
tcp: TcpHost,
1717
hooks: PreInstallHooks,
1818
reports: Reports
1919
) {
@@ -43,7 +43,7 @@ private class InstalledAsyncProfiler(
4343
) {
4444
ssh.execute("$profilerPath -b 20000000 start ${jira.pid}")
4545
val profiler = StartedAsyncProfiler(jira.pid, profilerPath)
46-
reports.add(profiler, jira.installed.host)
46+
reports.add(profiler, jira)
4747
}
4848
}
4949

src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/jira/install/hook/JiraLogs.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import java.nio.file.Paths
1010
class JiraLogs : PostInstallHook {
1111

1212
override fun call(ssh: SshConnection, jira: InstalledJira, hooks: PostInstallHooks, reports: Reports) {
13-
reports.add(report(jira), jira.host)
13+
reports.add(report(jira), jira)
1414
}
1515

1616
fun report(jira: InstalledJira): Report {

src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/jira/install/hook/JvmConfig.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ class JvmConfig(
2323
connection = ssh,
2424
config = config,
2525
gcLog = gcLog,
26-
jiraIp = jira.host.publicIp
26+
jiraIp = jira.http.tcp.publicIp
2727
)
2828
val report = FileListing(gcLog.path("*"))
29-
reports.add(report, jira.host)
29+
reports.add(report, jira)
3030
}
3131
}

src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/jira/install/hook/LateUbuntuSysstat.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ private class PostStartOsMetric(
3232
) : PostStartHook {
3333
override fun call(ssh: SshConnection, jira: StartedJira, hooks: PostStartHooks, reports: Reports) {
3434
val process = metric.start(ssh)
35-
reports.add(RemoteMonitoringProcessReport(process), jira.installed.host)
35+
reports.add(RemoteMonitoringProcessReport(process), jira)
3636
}
3737
}

src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/jira/install/hook/PreInstallHook.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ import com.atlassian.performance.tools.ssh.api.SshConnection
1010
interface PreInstallHook {
1111

1212
/**
13-
* @param [ssh] connects to the [host]
14-
* @param [host] will install Jira
13+
* @param [ssh] connects to the [tcp]
14+
* @param [tcp] will install Jira
1515
* @param [hooks] inserts future hooks
1616
* @param [reports] accumulates reports
1717
*/
1818
fun call(
1919
ssh: SshConnection,
20-
host: TcpHost,
20+
tcp: TcpHost,
2121
hooks: PreInstallHooks,
2222
reports: Reports
2323
)

0 commit comments

Comments
 (0)