Skip to content

Commit 6432c49

Browse files
authored
Fix remaining 212 test issues (#2716)
1 parent 3c4e901 commit 6432c49

File tree

18 files changed

+424
-149
lines changed

18 files changed

+424
-149
lines changed

jetbrains-core/it-202-203/software/aws/toolkits/jetbrains/services/ecr/DelegatedRemoteDockerApplicationRuntime.kt

Lines changed: 0 additions & 20 deletions
This file was deleted.

jetbrains-core/it-211+/software/aws/toolkits/jetbrains/services/ecr/DelegatedRemoteDockerApplicationRuntime.kt

Lines changed: 0 additions & 20 deletions
This file was deleted.

jetbrains-core/it/software/aws/toolkits/jetbrains/services/ecr/AbstractRemoteDockerApplicationRuntime.kt

Lines changed: 0 additions & 12 deletions
This file was deleted.

jetbrains-core/it/software/aws/toolkits/jetbrains/services/ecr/EcrPullIntegrationTest.kt

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
package software.aws.toolkits.jetbrains.services.ecr
55

6-
import com.intellij.docker.remote.run.runtime.DockerAgentBuildImageConfig
76
import com.intellij.testFramework.ProjectRule
87
import kotlinx.coroutines.runBlocking
98
import org.assertj.core.api.Assertions.assertThat
@@ -59,12 +58,12 @@ class EcrPullIntegrationTest {
5958
runBlocking {
6059
val serverInstance = EcrUtils.getDockerServerRuntimeInstance().runtimeInstance
6160
val ecrLogin = ecrClient.authorizationToken.authorizationData().first().getDockerLogin()
62-
val runtime = DelegatedRemoteDockerApplicationRuntime(
63-
project,
64-
DockerAgentBuildImageConfig(System.currentTimeMillis().toString(), dockerfile, false)
65-
)
61+
val dockerAdapter = ToolkitDockerAdapter(project, serverInstance)
62+
val imageId = dockerAdapter.buildLocalImage(dockerfile)!!
63+
6664
// gross transform because we only have the short SHA right now
67-
val localImageId = runtime.agent.getImages(null).first { it.imageId.startsWith("sha256:${runtime.agentApplication.imageId}") }.imageId
65+
val localImage = serverInstance.agent.getImages(null).first { it.imageId.startsWith("sha256:$imageId") }
66+
val localImageId = localImage.imageId
6867
val config = EcrUtils.buildDockerRepositoryModel(ecrLogin, remoteRepo, remoteTag)
6968
val pushRequest = ImageEcrPushRequest(
7069
serverInstance,
@@ -74,12 +73,12 @@ class EcrPullIntegrationTest {
7473
)
7574
// push up and image and then delete the local tag
7675
EcrUtils.pushImage(projectRule.project, ecrLogin, pushRequest)
77-
runtime.agentApplication.deleteImage()
78-
assertThat(runtime.agent.getImages(null).firstOrNull { it.imageId == localImageId }).isNull()
76+
localImage.deleteImage()
77+
assertThat(serverInstance.agent.getImages(null).firstOrNull { it.imageId == localImageId }).isNull()
7978

8079
// pull it from the remote
81-
ToolkitDockerAdapter(project, serverInstance).pullImage(config).await()
82-
assertThat(runtime.agent.getImages(null).firstOrNull { it.imageId == localImageId }).isNotNull()
80+
dockerAdapter.pullImage(config).await()
81+
assertThat(serverInstance.agent.getImages(null).firstOrNull { it.imageId == localImageId }).isNotNull()
8382
}
8483
}
8584
}

jetbrains-core/it/software/aws/toolkits/jetbrains/services/ecr/EcrPushIntegrationTest.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package software.aws.toolkits.jetbrains.services.ecr
55

66
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
7-
import com.intellij.docker.remote.run.runtime.DockerAgentBuildImageConfig
87
import com.intellij.testFramework.ProjectRule
98
import kotlinx.coroutines.runBlocking
109
import org.assertj.core.api.Assertions.assertThat
@@ -17,6 +16,7 @@ import software.amazon.awssdk.services.ecr.EcrClient
1716
import software.amazon.awssdk.services.ecr.model.Image
1817
import software.amazon.awssdk.services.ecr.model.ImageIdentifier
1918
import software.aws.toolkits.core.rules.EcrTemporaryRepositoryRule
19+
import software.aws.toolkits.jetbrains.core.docker.ToolkitDockerAdapter
2020
import software.aws.toolkits.jetbrains.services.ecr.resources.Repository
2121
import java.util.UUID
2222

@@ -52,7 +52,7 @@ class EcrPushIntegrationTest {
5252
dockerfile.writeText(
5353
"""
5454
# arbitrary base image with a shell
55-
FROM public.ecr.aws/lambda/provided:latest
55+
FROM public.ecr.aws/amazonlinux/amazonlinux:2
5656
RUN touch $(date +%s)
5757
""".trimIndent()
5858
)
@@ -61,12 +61,12 @@ class EcrPushIntegrationTest {
6161
runBlocking {
6262
val serverInstance = EcrUtils.getDockerServerRuntimeInstance().runtimeInstance
6363
val ecrLogin = ecrClient.authorizationToken.authorizationData().first().getDockerLogin()
64-
val runtime = DelegatedRemoteDockerApplicationRuntime(
65-
project,
66-
DockerAgentBuildImageConfig(System.currentTimeMillis().toString(), dockerfile, false)
67-
)
64+
val dockerAdapter = ToolkitDockerAdapter(project, serverInstance)
65+
val imageId = dockerAdapter.buildLocalImage(dockerfile)!!
66+
6867
// gross transform because we only have the short SHA right now
69-
val localImageId = runtime.agent.getImages(null).first { it.imageId.startsWith("sha256:${runtime.agentApplication.imageId}") }.imageId
68+
val localImage = serverInstance.agent.getImages(null).first { it.imageId.startsWith("sha256:$imageId") }
69+
val localImageId = localImage.imageId
7070
val pushRequest = ImageEcrPushRequest(
7171
serverInstance,
7272
localImageId,

jetbrains-core/it/software/aws/toolkits/jetbrains/services/lambda/upload/CreateFunctionIntegrationTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ package software.aws.toolkits.jetbrains.services.lambda.upload
55

66
import com.intellij.testFramework.DisposableRule
77
import com.intellij.testFramework.RuleChain
8-
import com.intellij.testFramework.RunAll.runAll
8+
import com.intellij.testFramework.RunAll
99
import com.intellij.testFramework.runInEdtAndGet
10-
import com.intellij.util.ThrowableRunnable
1110
import org.assertj.core.api.Assertions.assertThat
1211
import org.junit.After
1312
import org.junit.Before
@@ -108,8 +107,9 @@ class CreateFunctionIntegrationTest {
108107

109108
@After
110109
fun tearDown() {
111-
runAll(
112-
ThrowableRunnable {
110+
// static method import incompatible when jb converted framework to KT: FIX_WHEN_MIN_IS_212
111+
RunAll(
112+
{
113113
try {
114114
lambdaClient.deleteFunction { it.functionName(lambdaName) }
115115
} catch (e: Exception) {
@@ -118,10 +118,10 @@ class CreateFunctionIntegrationTest {
118118
}
119119
}
120120
},
121-
ThrowableRunnable {
121+
{
122122
iamClient.deleteRole { it.roleName(iamRole.roleName()) }
123123
}
124-
)
124+
).run()
125125
}
126126

127127
@Test
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,26 @@
33

44
package software.aws.toolkits.jetbrains.core.docker
55

6+
import com.intellij.docker.DockerAgentPathMapperImpl
67
import com.intellij.docker.DockerServerRuntimeInstance
78
import com.intellij.docker.registry.DockerRepositoryModel
9+
import com.intellij.docker.remote.run.runtime.DockerAgentBuildImageConfig
810
import com.intellij.openapi.project.Project
11+
import com.intellij.remoteServer.util.CloudSilentLoggingHandlerImpl
912
import kotlinx.coroutines.future.await
13+
import java.io.File
1014

1115
class ToolkitDockerAdapter(project: Project, serverRuntime: DockerServerRuntimeInstance) : AbstractToolkitDockerAdapter(project, serverRuntime) {
16+
override fun buildLocalImage(dockerfile: File): String? {
17+
val deployment = serverRuntime.agent.createDeployment(
18+
DockerAgentBuildImageConfig(System.currentTimeMillis().toString(), dockerfile, false),
19+
CloudSilentLoggingHandlerImpl(project),
20+
DockerAgentPathMapperImpl(project)
21+
)
22+
23+
return deployment.deploy("untagged image")?.imageId
24+
}
25+
1226
override suspend fun pushImage(localTag: String, config: DockerRepositoryModel) {
1327
val physicalLocalRuntime = serverRuntime.findRuntimeLater(localTag, false).await()
1428
physicalLocalRuntime.pushImage(project, config)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package software.aws.toolkits.jetbrains.core.docker
5+
6+
import com.intellij.docker.DockerAgentPathMapperImpl
7+
import com.intellij.docker.DockerServerRuntimeInstance
8+
import com.intellij.docker.registry.DockerRepositoryModel
9+
import com.intellij.docker.remote.run.runtime.DockerAgentBuildImageConfig
10+
import com.intellij.openapi.project.Project
11+
import kotlinx.coroutines.future.await
12+
import software.aws.toolkits.jetbrains.services.ecr.DockerfileEcrPushRequest
13+
import java.io.File
14+
15+
class ToolkitDockerAdapter(project: Project, serverRuntime: DockerServerRuntimeInstance) : AbstractToolkitDockerAdapter(project, serverRuntime) {
16+
override fun buildLocalImage(dockerfile: File): String? {
17+
val deployment = serverRuntime.agent.createDeployment(
18+
DockerAgentBuildImageConfig(System.currentTimeMillis().toString(), dockerfile, false),
19+
DockerAgentPathMapperImpl(project)
20+
)
21+
22+
return deployment.deploy("untagged image", null, null)?.imageId
23+
}
24+
25+
override suspend fun hackyBuildDockerfileWithUi(project: Project, pushRequest: DockerfileEcrPushRequest) =
26+
hackyBuildDockerfileUnderIndicator(project, pushRequest)
27+
28+
override suspend fun pushImage(localTag: String, config: DockerRepositoryModel) {
29+
val physicalLocalRuntime = serverRuntime.findRuntimeLater(localTag, false).await()
30+
physicalLocalRuntime.pushImage(project, config)
31+
}
32+
}

jetbrains-core/src-212+/software/aws/toolkits/jetbrains/core/docker/ToolkitDockerAdapter.kt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,47 @@
33

44
package software.aws.toolkits.jetbrains.core.docker
55

6+
import com.intellij.docker.DockerAgentPathMapperImpl
67
import com.intellij.docker.DockerServerRuntimeInstance
8+
import com.intellij.docker.agent.DockerAgentLogProvider
9+
import com.intellij.docker.agent.terminal.pipe.DockerTerminalPipe
710
import com.intellij.docker.registry.DockerRepositoryModel
11+
import com.intellij.docker.remote.run.runtime.DockerAgentBuildImageConfig
812
import com.intellij.docker.runtimes.DockerImageRuntime
913
import com.intellij.openapi.project.Project
1014
import kotlinx.coroutines.future.await
1115
import software.aws.toolkits.core.utils.error
16+
import software.aws.toolkits.core.utils.getLogger
17+
import software.aws.toolkits.jetbrains.services.ecr.DockerfileEcrPushRequest
18+
import java.io.File
1219

1320
class ToolkitDockerAdapter(project: Project, serverRuntime: DockerServerRuntimeInstance) : AbstractToolkitDockerAdapter(project, serverRuntime) {
21+
override fun buildLocalImage(dockerfile: File): String? {
22+
val deployment = serverRuntime.agent.createDeployment(
23+
DockerAgentBuildImageConfig(System.currentTimeMillis().toString(), dockerfile, false),
24+
DockerAgentPathMapperImpl(project)
25+
)
26+
27+
val logger = DockerAgentLogProvider(
28+
infoFunction = LOG::info,
29+
traceFunction = LOG::trace,
30+
warnFunction = LOG::warn,
31+
errorFunction = LOG::error,
32+
isTraceEnabled = false
33+
)
34+
35+
return deployment.deploy("untagged test image", DockerTerminalPipe("AWS Toolkit build for $dockerfile", logger), null)?.imageId
36+
}
37+
38+
override suspend fun hackyBuildDockerfileWithUi(project: Project, pushRequest: DockerfileEcrPushRequest) =
39+
hackyBuildDockerfileUnderIndicator(project, pushRequest)
40+
1441
override suspend fun pushImage(localTag: String, config: DockerRepositoryModel) {
1542
val physicalLocalRuntime = serverRuntime.findRuntimeLater(localTag, false).await()
1643
(physicalLocalRuntime as? DockerImageRuntime)?.pushImage(project, config) ?: LOG.error { "couldn't map tag to appropriate docker runtime" }
1744
}
45+
46+
companion object {
47+
val LOG = getLogger<ToolkitDockerAdapter>()
48+
}
1849
}

0 commit comments

Comments
 (0)