Skip to content

Commit ac61247

Browse files
committed
Add project version resources table
1 parent 4345922 commit ac61247

File tree

10 files changed

+307
-179
lines changed

10 files changed

+307
-179
lines changed

coderd/workspacehistory_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func TestPostWorkspaceHistoryByUser(t *testing.T) {
2626
workspace := coderdtest.CreateWorkspace(t, client, "me", project.ID)
2727
_, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
2828
ProjectVersionID: uuid.New(),
29-
Transition: database.WorkspaceTransitionCreate,
29+
Transition: database.WorkspaceTransitionStart,
3030
})
3131
require.Error(t, err)
3232
var apiErr *codersdk.Error
@@ -47,7 +47,7 @@ func TestPostWorkspaceHistoryByUser(t *testing.T) {
4747
workspace := coderdtest.CreateWorkspace(t, client, "me", project.ID)
4848
_, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
4949
ProjectVersionID: version.ID,
50-
Transition: database.WorkspaceTransitionCreate,
50+
Transition: database.WorkspaceTransitionStart,
5151
})
5252
require.Error(t, err)
5353
var apiErr *codersdk.Error
@@ -66,12 +66,12 @@ func TestPostWorkspaceHistoryByUser(t *testing.T) {
6666
workspace := coderdtest.CreateWorkspace(t, client, "me", project.ID)
6767
_, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
6868
ProjectVersionID: version.ID,
69-
Transition: database.WorkspaceTransitionCreate,
69+
Transition: database.WorkspaceTransitionStart,
7070
})
7171
require.NoError(t, err)
7272
_, err = client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
7373
ProjectVersionID: version.ID,
74-
Transition: database.WorkspaceTransitionCreate,
74+
Transition: database.WorkspaceTransitionStart,
7575
})
7676
require.Error(t, err)
7777
var apiErr *codersdk.Error
@@ -90,13 +90,13 @@ func TestPostWorkspaceHistoryByUser(t *testing.T) {
9090
workspace := coderdtest.CreateWorkspace(t, client, "me", project.ID)
9191
firstHistory, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
9292
ProjectVersionID: version.ID,
93-
Transition: database.WorkspaceTransitionCreate,
93+
Transition: database.WorkspaceTransitionStart,
9494
})
9595
require.NoError(t, err)
9696
coderdtest.AwaitWorkspaceHistoryProvisioned(t, client, "me", workspace.Name, firstHistory.Name)
9797
secondHistory, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
9898
ProjectVersionID: version.ID,
99-
Transition: database.WorkspaceTransitionCreate,
99+
Transition: database.WorkspaceTransitionStart,
100100
})
101101
require.NoError(t, err)
102102
require.Equal(t, firstHistory.ID.String(), secondHistory.BeforeID.String())
@@ -133,7 +133,7 @@ func TestWorkspaceHistoryByUser(t *testing.T) {
133133
workspace := coderdtest.CreateWorkspace(t, client, "me", project.ID)
134134
_, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
135135
ProjectVersionID: version.ID,
136-
Transition: database.WorkspaceTransitionCreate,
136+
Transition: database.WorkspaceTransitionStart,
137137
})
138138
require.NoError(t, err)
139139
history, err := client.ListWorkspaceHistory(context.Background(), "me", workspace.Name)
@@ -154,7 +154,7 @@ func TestWorkspaceHistoryByName(t *testing.T) {
154154
workspace := coderdtest.CreateWorkspace(t, client, "me", project.ID)
155155
history, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
156156
ProjectVersionID: version.ID,
157-
Transition: database.WorkspaceTransitionCreate,
157+
Transition: database.WorkspaceTransitionStart,
158158
})
159159
require.NoError(t, err)
160160
_, err = client.WorkspaceHistory(context.Background(), "me", workspace.Name, history.Name)

coderd/workspacehistorylogs_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func TestWorkspaceHistoryLogsByName(t *testing.T) {
4141
workspace := coderdtest.CreateWorkspace(t, client, "me", project.ID)
4242
history, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
4343
ProjectVersionID: version.ID,
44-
Transition: database.WorkspaceTransitionCreate,
44+
Transition: database.WorkspaceTransitionStart,
4545
})
4646
require.NoError(t, err)
4747

@@ -86,7 +86,7 @@ func TestWorkspaceHistoryLogsByName(t *testing.T) {
8686
before := time.Now().UTC()
8787
history, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
8888
ProjectVersionID: version.ID,
89-
Transition: database.WorkspaceTransitionCreate,
89+
Transition: database.WorkspaceTransitionStart,
9090
})
9191
require.NoError(t, err)
9292
coderdtest.AwaitWorkspaceHistoryProvisioned(t, client, "", workspace.Name, history.Name)
@@ -125,7 +125,7 @@ func TestWorkspaceHistoryLogsByName(t *testing.T) {
125125
workspace := coderdtest.CreateWorkspace(t, client, "me", project.ID)
126126
history, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
127127
ProjectVersionID: version.ID,
128-
Transition: database.WorkspaceTransitionCreate,
128+
Transition: database.WorkspaceTransitionStart,
129129
})
130130
require.NoError(t, err)
131131

codersdk/workspaces_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func TestWorkspaceHistory(t *testing.T) {
111111
workspace := coderdtest.CreateWorkspace(t, client, "", project.ID)
112112
_, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
113113
ProjectVersionID: version.ID,
114-
Transition: database.WorkspaceTransitionCreate,
114+
Transition: database.WorkspaceTransitionStart,
115115
})
116116
require.NoError(t, err)
117117
})
@@ -155,7 +155,7 @@ func TestCreateWorkspaceHistory(t *testing.T) {
155155
workspace := coderdtest.CreateWorkspace(t, client, "", project.ID)
156156
_, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
157157
ProjectVersionID: version.ID,
158-
Transition: database.WorkspaceTransitionCreate,
158+
Transition: database.WorkspaceTransitionStart,
159159
})
160160
require.NoError(t, err)
161161
})
@@ -181,7 +181,7 @@ func TestWorkspaceHistoryLogs(t *testing.T) {
181181
workspace := coderdtest.CreateWorkspace(t, client, "", project.ID)
182182
history, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
183183
ProjectVersionID: version.ID,
184-
Transition: database.WorkspaceTransitionCreate,
184+
Transition: database.WorkspaceTransitionStart,
185185
})
186186
require.NoError(t, err)
187187
_, err = client.WorkspaceHistoryLogs(context.Background(), "", workspace.Name, history.Name)
@@ -222,7 +222,7 @@ func TestFollowWorkspaceHistoryLogsAfter(t *testing.T) {
222222
workspace := coderdtest.CreateWorkspace(t, client, "", project.ID)
223223
history, err := client.CreateWorkspaceHistory(context.Background(), "", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
224224
ProjectVersionID: version.ID,
225-
Transition: database.WorkspaceTransitionCreate,
225+
Transition: database.WorkspaceTransitionStart,
226226
})
227227
require.NoError(t, err)
228228
logs, err := client.FollowWorkspaceHistoryLogsAfter(context.Background(), "", workspace.Name, history.Name, time.Time{})

database/dump.sql

Lines changed: 19 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

database/migrations/000002_projects.up.sql

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,22 @@ CREATE TABLE project_version_log (
111111
source log_source NOT NULL,
112112
level log_level NOT NULL,
113113
output varchar(1024) NOT NULL
114-
);
114+
);
115+
116+
CREATE TYPE workspace_transition AS ENUM (
117+
'start',
118+
'stop',
119+
'delete'
120+
);
121+
122+
-- Stores resources for a specific project version and workspace transition.
123+
-- This is to display resources for the started and stopped transitions.
124+
CREATE TABLE project_version_resource (
125+
id uuid NOT NULL UNIQUE,
126+
project_version_id uuid NOT NULL REFERENCES project_version (id) ON DELETE CASCADE,
127+
created_at timestamptz NOT NULL,
128+
transition workspace_transition NOT NULL,
129+
type varchar(256) NOT NULL,
130+
name varchar(64) NOT NULL,
131+
UNIQUE(project_version_id, transition, type, name)
132+
);

database/migrations/000003_workspaces.up.sql

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,6 @@ CREATE TABLE workspace (
88
UNIQUE(owner_id, name)
99
);
1010

11-
CREATE TYPE workspace_transition AS ENUM (
12-
'create',
13-
'start',
14-
'stop',
15-
'delete'
16-
);
17-
1811
-- Workspace transition represents a change in workspace state.
1912
CREATE TABLE workspace_history (
2013
id uuid NOT NULL UNIQUE,
@@ -34,11 +27,18 @@ CREATE TABLE workspace_history (
3427
UNIQUE(workspace_id, name)
3528
);
3629

30+
CREATE TYPE workspace_resource_state AS ENUM (
31+
'created',
32+
'changed',
33+
'destroyed'
34+
);
35+
3736
-- Cloud resources produced by a provision job.
3837
CREATE TABLE workspace_resource (
3938
id uuid NOT NULL UNIQUE,
4039
created_at timestamptz NOT NULL,
4140
workspace_history_id uuid NOT NULL REFERENCES workspace_history (id) ON DELETE CASCADE,
41+
state workspace_resource_state NOT NULL,
4242
-- Resource type produced by a provisioner.
4343
-- eg. "google_compute_instance"
4444
type varchar(256) NOT NULL,
@@ -50,8 +50,7 @@ CREATE TABLE workspace_resource (
5050
-- If an agent has been conencted for this resource,
5151
-- the agent table is not null.
5252
workspace_agent_id uuid,
53-
54-
UNIQUE(workspace_history_id, name)
53+
UNIQUE(workspace_history_id, type, name)
5554
);
5655

5756
CREATE TABLE workspace_agent (

database/models.go

Lines changed: 9 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisionerd/proto/provisionerd.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ message AcquiredJob {
2020
message ProjectImport {
2121
string project_version_id = 1;
2222
string project_version_name = 2;
23+
repeated provisioner.ParameterValue parameter_values = 3;
2324
}
2425
string job_id = 1;
2526
int64 created_at = 2;

0 commit comments

Comments
 (0)