@@ -3,7 +3,6 @@ package com.coder.gateway.views.steps
3
3
import com.coder.gateway.CoderGatewayBundle
4
4
import com.coder.gateway.models.CoderWorkspacesWizardModel
5
5
import com.coder.gateway.models.LoginModel
6
- import com.coder.gateway.models.UriScheme
7
6
import com.coder.gateway.sdk.CoderCLIManager
8
7
import com.coder.gateway.sdk.CoderRestClientService
9
8
import com.coder.gateway.sdk.OS
@@ -22,11 +21,8 @@ import com.intellij.ui.IconManager
22
21
import com.intellij.ui.dsl.builder.BottomGap
23
22
import com.intellij.ui.dsl.builder.RightGap
24
23
import com.intellij.ui.dsl.builder.TopGap
25
- import com.intellij.ui.dsl.builder.bindIntText
26
- import com.intellij.ui.dsl.builder.bindItem
27
24
import com.intellij.ui.dsl.builder.bindText
28
25
import com.intellij.ui.dsl.builder.panel
29
- import com.intellij.ui.dsl.builder.toNullableProperty
30
26
import com.intellij.ui.dsl.gridLayout.HorizontalAlign
31
27
import com.intellij.util.ui.JBFont
32
28
import kotlinx.coroutines.CoroutineScope
@@ -56,12 +52,8 @@ class CoderAuthStepView : CoderWorkspacesWizardStep, Disposable {
56
52
browserLink(CoderGatewayBundle .message(" gateway.connector.view.login.documentation.action" ), " https://coder.com/docs/coder/latest/workspaces" )
57
53
}.bottomGap(BottomGap .MEDIUM )
58
54
row {
59
- label(CoderGatewayBundle .message(" gateway.connector.view.login.scheme.label" ))
60
- comboBox(UriScheme .values().toList()).bindItem(model::uriScheme.toNullableProperty())
61
- label(CoderGatewayBundle .message(" gateway.connector.view.login.host.label" ))
62
- textField().resizableColumn().horizontalAlign(HorizontalAlign .FILL ).gap(RightGap .SMALL ).bindText(model::host)
63
- label(CoderGatewayBundle .message(" gateway.connector.view.login.port.label" ))
64
- intTextField(0 .. 65536 ).bindIntText(model::port)
55
+ label(CoderGatewayBundle .message(" gateway.connector.view.login.url.label" ))
56
+ textField().resizableColumn().horizontalAlign(HorizontalAlign .FILL ).gap(RightGap .SMALL ).bindText(model::url)
65
57
cell()
66
58
}
67
59
@@ -79,9 +71,7 @@ class CoderAuthStepView : CoderWorkspacesWizardStep, Disposable {
79
71
80
72
override fun onInit (wizardModel : CoderWorkspacesWizardModel ) {
81
73
model.apply {
82
- uriScheme = wizardModel.loginModel.uriScheme
83
- host = wizardModel.loginModel.host
84
- port = wizardModel.loginModel.port
74
+ url = wizardModel.loginModel.url
85
75
email = wizardModel.loginModel.email
86
76
password = wizardModel.loginModel.password
87
77
}
@@ -99,25 +89,35 @@ class CoderAuthStepView : CoderWorkspacesWizardStep, Disposable {
99
89
model.password = password
100
90
val authTask = object : Task .Modal (null , " Authenticate and setup coder" , false ) {
101
91
override fun run (pi : ProgressIndicator ) {
102
- pi.text = " Authenticating ${model.email} on ${model.host} ..."
103
- pi.fraction = 0.3
104
- coderClient.initClientSession(model.uriScheme, model.host, model.port, model.email, model.password!! )
92
+
93
+ pi.apply {
94
+ text = " Authenticating ${model.email} on ${model.url} ..."
95
+ fraction = 0.3
96
+ }
97
+
98
+ val url = URL (model.url)
99
+ coderClient.initClientSession(url, model.email, model.password!! )
105
100
wizardModel.apply {
106
101
loginModel = model.copy()
107
102
}
108
103
109
- pi.text = " Downloading coder cli..."
110
- pi.fraction = 0.4
111
- val url = URL (wizardModel.loginModel.uriScheme.toString().toLowerCase(), wizardModel.loginModel.host, wizardModel.loginModel.port, " " )
104
+ pi.apply {
105
+ text = " Downloading coder cli..."
106
+ fraction = 0.4
107
+ }
108
+
112
109
val cliManager = CoderCLIManager (URL (url.protocol, url.host, url.port, " " ))
113
110
val cli = cliManager.download() ? : throw IllegalStateException (" Could not download coder binary" )
114
111
if (getOS() != OS .WINDOWS ) {
115
112
pi.fraction = 0.5
116
113
val chmodOutput = ProcessExecutor ().command(" chmod" , " +x" , cli.toAbsolutePath().toString()).readOutput(true ).execute().outputUTF8()
117
114
logger.info(" chmod +x ${cli.toAbsolutePath()} $chmodOutput " )
118
115
}
119
- pi.text = " Configuring coder cli..."
120
- pi.fraction = 0.5
116
+ pi.apply {
117
+ text = " Configuring coder cli..."
118
+ fraction = 0.5
119
+ }
120
+
121
121
val loginOutput = ProcessExecutor ().command(cli.toAbsolutePath().toString(), " login" , url.toString(), " --token" , coderClient.sessionToken).readOutput(true ).execute().outputUTF8()
122
122
logger.info(" coder-cli login output: $loginOutput " )
123
123
pi.fraction = 0.6
0 commit comments