@@ -6,12 +6,7 @@ package io.gitpod.toolbox.gateway
6
6
7
7
import com.jetbrains.toolbox.gateway.AbstractRemoteProviderEnvironment
8
8
import com.jetbrains.toolbox.gateway.EnvironmentVisibilityState
9
- import com.jetbrains.toolbox.gateway.deploy.CommandExecution
10
- import com.jetbrains.toolbox.gateway.deploy.HostAccessInterfaces
11
- import com.jetbrains.toolbox.gateway.deploy.HostCommandExecutor
12
- import com.jetbrains.toolbox.gateway.deploy.HostFileAccessor
13
9
import com.jetbrains.toolbox.gateway.environments.EnvironmentContentsView
14
- import com.jetbrains.toolbox.gateway.environments.HostAccessCapableEnvironmentContentsView
15
10
import com.jetbrains.toolbox.gateway.states.EnvironmentStateConsumer
16
11
import com.jetbrains.toolbox.gateway.states.StandardRemoteEnvironmentState
17
12
import com.jetbrains.toolbox.gateway.ui.ActionDescription
@@ -30,19 +25,15 @@ import kotlinx.coroutines.flow.MutableSharedFlow
30
25
import kotlinx.coroutines.launch
31
26
import java.util.concurrent.CompletableFuture
32
27
33
- class GitpodRemoteProviderEnvironment (
28
+ class GitpodRemoteEnvironment (
34
29
private val authManager : GitpodAuthManager ,
35
30
private val connectParams : ConnectParams ,
36
31
private val publicApi : GitpodPublicApiManager , observablePropertiesFactory : ObservablePropertiesFactory ? ,
37
32
) : AbstractRemoteProviderEnvironment(observablePropertiesFactory), DisposableHandle {
38
33
private val actionList = Utils .observablePropertiesFactory.emptyObservableList<ActionDescription >();
39
- private val contentsViewFuture: CompletableFuture <EnvironmentContentsView > = CompletableFuture .completedFuture(
40
- GitpodSSHEnvironmentContentsView (
41
- authManager,
42
- connectParams,
43
- publicApi,
44
- )
45
- )
34
+ private val envContentsView = GitpodRemoteEnvironmentContentsView (connectParams, publicApi)
35
+ private val contentsViewFuture: CompletableFuture <EnvironmentContentsView > =
36
+ CompletableFuture .completedFuture(envContentsView)
46
37
private var watchWorkspaceJob: Job ? = null
47
38
48
39
private val lastWSEnvState = MutableSharedFlow <WorkspaceEnvState >(1 , 0 , BufferOverflow .DROP_OLDEST )
@@ -65,6 +56,9 @@ class GitpodRemoteProviderEnvironment(
65
56
lastPhase = status.phase
66
57
GitpodLogger .debug(" ${connectParams.workspaceId} status updated: $lastPhase " )
67
58
lastWSEnvState.tryEmit(WorkspaceEnvState (status.phase))
59
+ Utils .coroutineScope.launch {
60
+ envContentsView.updateEnvironmentMeta(status)
61
+ }
68
62
}
69
63
}
70
64
}
@@ -78,19 +72,17 @@ class GitpodRemoteProviderEnvironment(
78
72
}
79
73
80
74
override fun getId (): String = connectParams.uniqueID
81
- override fun getName (): String = connectParams.resolvedWorkspaceId
75
+ override fun getName (): String = connectParams.uniqueID
82
76
83
- override fun getContentsView (): CompletableFuture <EnvironmentContentsView > {
84
- GitpodLogger .info(" =============test.getContentView id: $id " )
85
- return contentsViewFuture
86
- }
77
+ override fun getContentsView (): CompletableFuture <EnvironmentContentsView > = contentsViewFuture
87
78
88
79
override fun setVisible (visibilityState : EnvironmentVisibilityState ) {
89
80
}
90
81
91
82
override fun getActionList (): ObservableList <ActionDescription > = actionList
92
83
93
84
override fun onDelete () {
85
+ // TODO: delete workspace?
94
86
watchWorkspaceJob?.cancel()
95
87
}
96
88
@@ -120,4 +112,5 @@ private class WorkspaceEnvState(val phase: WorkspaceInstanceStatus.Phase) {
120
112
WorkspaceInstanceStatus .Phase .PHASE_STOPPED to StandardRemoteEnvironmentState .Hibernated ,
121
113
)
122
114
}
115
+ // TODO(hw): add customized state
123
116
}
0 commit comments