1
1
package com.coder.gateway
2
2
3
+ import com.coder.gateway.models.WorkspaceAndAgentStatus
3
4
import com.coder.gateway.sdk.CoderRestClient
4
5
import com.coder.gateway.sdk.v2.models.Workspace
5
6
import com.coder.gateway.sdk.v2.models.WorkspaceAgent
6
- import com.coder.gateway.sdk.v2.models.WorkspaceAgentStatus
7
- import com.coder.gateway.sdk.v2.models.WorkspaceStatus
8
7
import com.coder.gateway.views.EnvironmentView
9
8
import com.jetbrains.toolbox.gateway.AbstractRemoteProviderEnvironment
10
9
import com.jetbrains.toolbox.gateway.EnvironmentVisibilityState
11
10
import com.jetbrains.toolbox.gateway.environments.EnvironmentContentsView
12
11
import com.jetbrains.toolbox.gateway.states.EnvironmentStateConsumer
13
- import com.jetbrains.toolbox.gateway.states.StandardRemoteEnvironmentState
14
12
import com.jetbrains.toolbox.gateway.ui.ObservablePropertiesFactory
15
13
import java.util.concurrent.CompletableFuture
16
14
@@ -27,28 +25,11 @@ class CoderRemoteEnvironment(
27
25
) : AbstractRemoteProviderEnvironment(observablePropertiesFactory) {
28
26
override fun getId (): String = " ${workspace.name} .${agent.name} "
29
27
override fun getName (): String = " ${workspace.name} .${agent.name} "
28
+ private val status = WorkspaceAndAgentStatus .from(workspace, agent)
30
29
31
- // Active (and unhealthy) here indicate that the workspace is in a state
32
- // where a connection can be attempted, not that the workspace is up and
33
- // running. Once a connection is actually initiated, the CLI will then
34
- // start the workspace if it is off.
35
- private var state = when (workspace.latestBuild.status) {
36
- WorkspaceStatus .PENDING -> StandardRemoteEnvironmentState .Active
37
- WorkspaceStatus .STARTING -> StandardRemoteEnvironmentState .Active
38
- WorkspaceStatus .RUNNING -> when (agent.status) {
39
- WorkspaceAgentStatus .CONNECTED -> StandardRemoteEnvironmentState .Active
40
- WorkspaceAgentStatus .DISCONNECTED -> StandardRemoteEnvironmentState .Unreachable
41
- WorkspaceAgentStatus .TIMEOUT -> StandardRemoteEnvironmentState .Unhealthy
42
- WorkspaceAgentStatus .CONNECTING -> StandardRemoteEnvironmentState .Active
43
- }
44
- WorkspaceStatus .STOPPING -> StandardRemoteEnvironmentState .Initializing
45
- WorkspaceStatus .STOPPED -> StandardRemoteEnvironmentState .Active
46
- WorkspaceStatus .FAILED -> StandardRemoteEnvironmentState .Unhealthy
47
- WorkspaceStatus .CANCELING -> StandardRemoteEnvironmentState .Initializing
48
- WorkspaceStatus .CANCELED -> StandardRemoteEnvironmentState .Active
49
- WorkspaceStatus .DELETING -> StandardRemoteEnvironmentState .Deleting
50
- WorkspaceStatus .DELETED -> StandardRemoteEnvironmentState .Deleted
51
- }
30
+
31
+ // Map each state to whether a connection can be attempted.
32
+ private var state = status.toRemoteEnvironmentState()
52
33
53
34
/* *
54
35
* The contents are provided by the SSH view provided by Toolbox, all we
0 commit comments