Skip to content

Commit a57c3a3

Browse files
committed
Update views with info from V2 models
1 parent b8a0329 commit a57c3a3

File tree

6 files changed

+40
-16
lines changed

6 files changed

+40
-16
lines changed

src/main/kotlin/com/coder/gateway/sdk/v1/Tunneler.kt

+3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package com.coder.gateway.sdk
22

33
import com.coder.gateway.sdk.v1.BrokerMessage
4+
import com.coder.gateway.sdk.v1.CoderWebSocket
45
import com.coder.gateway.sdk.v1.Workspace
6+
import com.coder.gateway.sdk.v1.coderWebSocket
7+
import com.coder.gateway.sdk.v1.createCoderOffer
58
import com.google.gson.Gson
69
import com.google.gson.GsonBuilder
710
import com.google.gson.annotations.SerializedName

src/main/kotlin/com/coder/gateway/sdk/v2/CoderV2RestFacade.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import com.coder.gateway.sdk.v2.models.Workspace
88
import retrofit2.Call
99
import retrofit2.http.Body
1010
import retrofit2.http.GET
11-
import retrofit2.http.Header
1211
import retrofit2.http.POST
1312

1413
interface CoderV2RestFacade {
@@ -23,14 +22,14 @@ interface CoderV2RestFacade {
2322
* Retrieves details about the authenticated user.
2423
*/
2524
@GET("api/v2/users/me")
26-
fun me(@Header("Session-Token") sessionToken: String): Call<User>
25+
fun me(): Call<User>
2726

2827
/**
2928
* Retrieves all workspaces the authenticated user has access to.
3029
*/
3130
@GET("api/v2/workspaces")
32-
fun workspaces(@Header("Session-Token") sessionToken: String): Call<List<Workspace>>
31+
fun workspaces(): Call<List<Workspace>>
3332

3433
@GET("api/v2/workspaceagents/me/gitsshkey")
35-
fun sshKeys(@Header("Session-Token") sessionToken: String): Call<AgentGitSSHKeys>
34+
fun sshKeys(): Call<AgentGitSSHKeys>
3635
}

src/main/kotlin/com/coder/gateway/sdk/v2/models/ProvisionerJob.kt

+5-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ data class ProvisionerJob(
1010
@SerializedName("started_at") val startedAt: Instant,
1111
@SerializedName("completed_at") val completedAt: Instant,
1212
@SerializedName("error") val error: String,
13-
@SerializedName("status") val status: String,
13+
@SerializedName("status") val status: ProvisionerJobStatus,
1414
@SerializedName("worker_id") val workerID: UUID,
1515
)
16+
17+
enum class ProvisionerJobStatus {
18+
canceled, canceling, failed, pending, running, succeeded
19+
}

src/main/kotlin/com/coder/gateway/sdk/v2/models/WorkspaceBuild.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@ data class WorkspaceBuild(
1616
@SerializedName("template_version_id") val templateVersionID: UUID,
1717
@SerializedName("build_number") val buildNumber: Int,
1818
@SerializedName("name") val name: String,
19-
@SerializedName("transition") val workspaceTransition: String,
19+
@SerializedName("transition") val workspaceTransition: WorkspaceBuildTransition,
2020
@SerializedName("owner_id") val ownerID: UUID,
2121
@SerializedName("initiator_id") val initiatorID: UUID,
2222
@SerializedName("job") val job: ProvisionerJob,
2323
@SerializedName("deadline") val deadline: Instant,
2424
)
2525

26+
enum class WorkspaceBuildTransition {
27+
start, stop, delete
28+
}

src/main/kotlin/com/coder/gateway/views/steps/CoderWorkspacesStepView.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.coder.gateway.views.steps
33
import com.coder.gateway.CoderGatewayBundle
44
import com.coder.gateway.models.CoderWorkspacesWizardModel
55
import com.coder.gateway.sdk.CoderRestClientService
6-
import com.coder.gateway.sdk.v1.Workspace
6+
import com.coder.gateway.sdk.v2.models.Workspace
77
import com.intellij.ide.IdeBundle
88
import com.intellij.openapi.Disposable
99
import com.intellij.openapi.application.ApplicationManager

src/main/kotlin/com/coder/gateway/views/steps/WorkspaceCellRenderer.kt

+24-9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.coder.gateway.views.steps
22

3-
import com.coder.gateway.sdk.v1.Workspace
3+
import com.coder.gateway.sdk.v2.models.ProvisionerJobStatus
4+
import com.coder.gateway.sdk.v2.models.Workspace
5+
import com.coder.gateway.sdk.v2.models.WorkspaceBuildTransition
46
import com.intellij.ui.IconManager
57
import com.intellij.ui.dsl.builder.panel
68
import com.intellij.ui.dsl.gridLayout.HorizontalAlign
@@ -32,22 +34,35 @@ class WorkspaceCellRenderer : ListCellRenderer<Workspace> {
3234
}
3335
}
3436

35-
private fun iconForImageTag(workspace: Workspace) = when (workspace.imageTag) {
37+
private fun iconForImageTag(workspace: Workspace) = when (workspace.templateName) {
3638
"ubuntu" -> UBUNTU_ICON
3739
"centos" -> CENTOS_ICON
3840
else -> LINUX_ICON
3941
}
4042

41-
private fun iconForStatus(workspace: Workspace) = when (workspace.latestStat.container_status) {
42-
"ON" -> GREEN_CIRCLE_ICON
43-
"OFF" -> GRAY_CIRCLE_ICON
43+
private fun iconForStatus(workspace: Workspace) = when (workspace.latestBuild.job.status) {
44+
ProvisionerJobStatus.succeeded -> if (workspace.latestBuild.workspaceTransition == WorkspaceBuildTransition.start) GREEN_CIRCLE_ICON else RED_CIRCLE_ICON
45+
ProvisionerJobStatus.running -> when (workspace.latestBuild.workspaceTransition) {
46+
WorkspaceBuildTransition.start, WorkspaceBuildTransition.stop, WorkspaceBuildTransition.delete -> GRAY_CIRCLE_ICON
47+
}
4448
else -> RED_CIRCLE_ICON
4549
}
4650

47-
private fun labelForStatus(workspace: Workspace) = when (workspace.latestStat.container_status) {
48-
"ON" -> "Running"
49-
"OFF" -> "Off"
50-
else -> "Unknown status"
51+
private fun labelForStatus(workspace: Workspace) = when (workspace.latestBuild.job.status) {
52+
ProvisionerJobStatus.pending -> "◍ Queued"
53+
ProvisionerJobStatus.running -> when (workspace.latestBuild.workspaceTransition) {
54+
WorkspaceBuildTransition.start -> "⦿ Starting"
55+
WorkspaceBuildTransition.stop -> "◍ Stopping"
56+
WorkspaceBuildTransition.delete -> "⦸ Deleting"
57+
}
58+
ProvisionerJobStatus.succeeded -> when (workspace.latestBuild.workspaceTransition) {
59+
WorkspaceBuildTransition.start -> "⦿ Running"
60+
WorkspaceBuildTransition.stop -> "◍ Stopped"
61+
WorkspaceBuildTransition.delete -> "⦸ Deleted"
62+
}
63+
ProvisionerJobStatus.canceling -> "◍ Canceling action"
64+
ProvisionerJobStatus.canceled -> "◍ Canceled action"
65+
ProvisionerJobStatus.failed -> "ⓧ Failed"
5166
}
5267

5368
companion object {

0 commit comments

Comments
 (0)