@@ -7,13 +7,14 @@ import com.coder.gateway.models.WorkspaceAgentModel
7
7
import com.coder.gateway.sdk.CoderCLIManager
8
8
import com.coder.gateway.sdk.CoderRestClient
9
9
import com.coder.gateway.sdk.DefaultCoderRestClient
10
+ import com.coder.gateway.sdk.ensureCLI
10
11
import com.coder.gateway.sdk.ex.AuthenticationResponseException
11
12
import com.coder.gateway.util.toURL
12
13
import com.coder.gateway.sdk.v2.models.Workspace
13
14
import com.coder.gateway.sdk.v2.models.WorkspaceStatus
14
15
import com.coder.gateway.sdk.v2.models.toAgentModels
16
+ import com.coder.gateway.services.CoderSettingsService
15
17
import com.coder.gateway.util.withPath
16
- import com.coder.gateway.services.CoderSettingsState
17
18
import com.intellij.openapi.components.service
18
19
import com.intellij.openapi.diagnostic.Logger
19
20
import com.jetbrains.gateway.api.ConnectionRequestor
@@ -37,7 +38,7 @@ private const val IDE_PATH_ON_HOST = "ide_path_on_host"
37
38
// CoderGatewayConnectionProvider handles connecting via a Gateway link such as
38
39
// jetbrains-gateway://connect#type=coder.
39
40
class CoderGatewayConnectionProvider : GatewayConnectionProvider {
40
- private val settings: CoderSettingsState = service()
41
+ private val settings: CoderSettingsService = service()
41
42
42
43
override suspend fun connect (parameters : Map <String , String >, requestor : ConnectionRequestor ): GatewayConnectionHandle ? {
43
44
CoderRemoteConnectionHandle ().connect{ indicator ->
@@ -80,7 +81,7 @@ class CoderGatewayConnectionProvider : GatewayConnectionProvider {
80
81
throw IllegalArgumentException (" The agent \" ${agent.name} \" is ${agent.agentStatus.toString().lowercase()} ; unable to connect" )
81
82
}
82
83
83
- val cli = CoderCLIManager . ensureCLI(
84
+ val cli = ensureCLI(
84
85
deploymentURL.toURL(),
85
86
client.buildInfo().version,
86
87
settings,
@@ -91,7 +92,7 @@ class CoderGatewayConnectionProvider : GatewayConnectionProvider {
91
92
cli.login(client.token)
92
93
93
94
indicator.text = " Configuring Coder CLI..."
94
- cli.configSsh(client.agents(workspaces), settings.headerCommand )
95
+ cli.configSsh(client.agents(workspaces).map { it.name } )
95
96
96
97
// TODO: Ask for these if missing. Maybe we can reuse the second
97
98
// step of the wizard? Could also be nice if we automatically used
@@ -114,7 +115,7 @@ class CoderGatewayConnectionProvider : GatewayConnectionProvider {
114
115
val folder = parameters[FOLDER ] ? : throw IllegalArgumentException (" Query parameter \" $FOLDER \" is missing" )
115
116
116
117
parameters
117
- .withWorkspaceHostname(CoderCLIManager .getHostName(deploymentURL.toURL(), agent))
118
+ .withWorkspaceHostname(CoderCLIManager .getHostName(deploymentURL.toURL(), agent.name ))
118
119
.withProjectPath(folder)
119
120
.withWebTerminalLink(client.url.withPath(" /@$username /$workspace .name/terminal" ).toString())
120
121
.withConfigDirectory(cli.coderConfigPath.toString())
@@ -137,6 +138,7 @@ class CoderGatewayConnectionProvider : GatewayConnectionProvider {
137
138
lastToken,
138
139
isRetry,
139
140
useExisting = true ,
141
+ settings,
140
142
)
141
143
if (token == null ) { // User aborted.
142
144
throw IllegalArgumentException (" Unable to connect to $deploymentURL , $TOKEN is missing" )
0 commit comments