Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7eb2c2f

Browse files
authored
Revert "chore: Implement joins with golang templates (#6429)" (#6560)
This reverts commit8b125d6.
1 parenta8433b1 commit7eb2c2f

36 files changed

+660
-894
lines changed

‎coderd/audit/diff.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ type Auditable interface {
1414
database.User|
1515
database.Workspace|
1616
database.GitSSHKey|
17-
database.WorkspaceBuildRBAC|
17+
database.WorkspaceBuild|
1818
database.AuditableGroup|
1919
database.License
2020
}

‎coderd/audit/request.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func ResourceTarget[T Auditable](tgt T) string {
6262
returntyped.Username
6363
case database.Workspace:
6464
returntyped.Name
65-
case database.WorkspaceBuildRBAC:
65+
case database.WorkspaceBuild:
6666
// this isn't used
6767
return""
6868
case database.GitSSHKey:
@@ -89,7 +89,7 @@ func ResourceID[T Auditable](tgt T) uuid.UUID {
8989
returntyped.ID
9090
case database.Workspace:
9191
returntyped.ID
92-
case database.WorkspaceBuildRBAC:
92+
case database.WorkspaceBuild:
9393
returntyped.ID
9494
case database.GitSSHKey:
9595
returntyped.UserID
@@ -114,7 +114,7 @@ func ResourceType[T Auditable](tgt T) database.ResourceType {
114114
returndatabase.ResourceTypeUser
115115
case database.Workspace:
116116
returndatabase.ResourceTypeWorkspace
117-
case database.WorkspaceBuildRBAC:
117+
case database.WorkspaceBuild:
118118
returndatabase.ResourceTypeWorkspaceBuild
119119
case database.GitSSHKey:
120120
returndatabase.ResourceTypeGitSshKey

‎coderd/autobuild/executor/lifecycle_executor.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ func isEligibleForAutoStartStop(ws database.Workspace) bool {
204204

205205
funcgetNextTransition(
206206
ws database.Workspace,
207-
priorHistory database.WorkspaceBuildRBAC,
207+
priorHistory database.WorkspaceBuild,
208208
priorJob database.ProvisionerJob,
209209
) (
210210
validTransition database.WorkspaceTransition,
@@ -239,7 +239,7 @@ func getNextTransition(
239239

240240
// TODO(cian): this function duplicates most of api.postWorkspaceBuilds. Refactor.
241241
// See: https://github.com/coder/coder/issues/1401
242-
funcbuild(ctx context.Context,store database.Store,workspace database.Workspace,trans database.WorkspaceTransition,priorHistory database.WorkspaceBuildRBAC,priorJob database.ProvisionerJob)error {
242+
funcbuild(ctx context.Context,store database.Store,workspace database.Workspace,trans database.WorkspaceTransition,priorHistory database.WorkspaceBuild,priorJob database.ProvisionerJob)error {
243243
template,err:=store.GetTemplateByID(ctx,workspace.TemplateID)
244244
iferr!=nil {
245245
returnxerrors.Errorf("get workspace template: %w",err)

‎coderd/autobuild/executor/lifecycle_executor_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@ package executor_test
22

33
import (
44
"context"
5+
"os"
56
"testing"
67
"time"
78

8-
"github.com/google/uuid"
99
"go.uber.org/goleak"
1010

11+
"github.com/google/uuid"
12+
1113
"github.com/coder/coder/coderd/autobuild/executor"
1214
"github.com/coder/coder/coderd/coderdtest"
1315
"github.com/coder/coder/coderd/database"
14-
"github.com/coder/coder/coderd/database/dbtestutil"
1516
"github.com/coder/coder/coderd/schedule"
1617
"github.com/coder/coder/coderd/util/ptr"
1718
"github.com/coder/coder/codersdk"
@@ -492,7 +493,7 @@ func TestExecutorWorkspaceAutostopNoWaitChangedMyMind(t *testing.T) {
492493
}
493494

494495
funcTestExecutorAutostartMultipleOK(t*testing.T) {
495-
if!dbtestutil.UsingRealDatabase() {
496+
ifos.Getenv("DB")=="" {
496497
t.Skip(`This test only really works when using a "real" database, similar to a HA setup`)
497498
}
498499

‎coderd/database/db.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ import (
1616

1717
"github.com/jmoiron/sqlx"
1818
"golang.org/x/xerrors"
19-
20-
"github.com/coder/coder/coderd/database/sqlxqueries"
2119
)
2220

2321
// Store contains all queryable database functions.
@@ -39,21 +37,11 @@ type DBTX interface {
3937
QueryRowContext(context.Context,string,...interface{})*sql.Row
4038
SelectContext(ctx context.Context,destinterface{},querystring,args...interface{})error
4139
GetContext(ctx context.Context,destinterface{},querystring,args...interface{})error
42-
43-
// Extends the sqlx interface
44-
sqlx.QueryerContext
4540
}
4641

4742
// New creates a new database store using a SQL database connection.
4843
funcNew(sdb*sql.DB)Store {
4944
dbx:=sqlx.NewDb(sdb,"postgres")
50-
// Load the embedded queries. If this fails, some of our queries
51-
// will never work. This is a fatal developer error that should never
52-
// happen.
53-
_,err:=sqlxqueries.LoadQueries()
54-
iferr!=nil {
55-
panic(xerrors.Errorf("load queries: %w",err))
56-
}
5745
return&sqlQuerier{
5846
db:dbx,
5947
sdb:dbx,

‎coderd/database/dbauthz/querier.go

Lines changed: 61 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,12 +1167,25 @@ func (q *querier) GetWorkspaces(ctx context.Context, arg database.GetWorkspacesP
11671167
returnq.db.GetAuthorizedWorkspaces(ctx,arg,prep)
11681168
}
11691169

1170-
func (q*querier)GetLatestWorkspaceBuildByWorkspaceID(ctx context.Context,workspaceID uuid.UUID) (database.WorkspaceBuildRBAC,error) {
1171-
returnfetch(q.log,q.auth,q.db.GetLatestWorkspaceBuildByWorkspaceID)(ctx,workspaceID)
1170+
func (q*querier)GetLatestWorkspaceBuildByWorkspaceID(ctx context.Context,workspaceID uuid.UUID) (database.WorkspaceBuild,error) {
1171+
if_,err:=q.GetWorkspaceByID(ctx,workspaceID);err!=nil {
1172+
return database.WorkspaceBuild{},err
1173+
}
1174+
returnq.db.GetLatestWorkspaceBuildByWorkspaceID(ctx,workspaceID)
11721175
}
11731176

1174-
func (q*querier)GetLatestWorkspaceBuildsByWorkspaceIDs(ctx context.Context,ids []uuid.UUID) ([]database.WorkspaceBuildRBAC,error) {
1175-
returnfetchWithPostFilter(q.auth,q.db.GetLatestWorkspaceBuildsByWorkspaceIDs)(ctx,ids)
1177+
func (q*querier)GetLatestWorkspaceBuildsByWorkspaceIDs(ctx context.Context,ids []uuid.UUID) ([]database.WorkspaceBuild,error) {
1178+
// This is not ideal as not all builds will be returned if the workspace cannot be read.
1179+
// This should probably be handled differently? Maybe join workspace builds with workspace
1180+
// ownership properties and filter on that.
1181+
for_,id:=rangeids {
1182+
_,err:=q.GetWorkspaceByID(ctx,id)
1183+
iferr!=nil {
1184+
returnnil,err
1185+
}
1186+
}
1187+
1188+
returnq.db.GetLatestWorkspaceBuildsByWorkspaceIDs(ctx,ids)
11761189
}
11771190

11781191
func (q*querier)GetWorkspaceAgentByID(ctx context.Context,id uuid.UUID) (database.WorkspaceAgent,error) {
@@ -1250,16 +1263,35 @@ func (q *querier) GetWorkspaceAppsByAgentID(ctx context.Context, agentID uuid.UU
12501263
returnq.db.GetWorkspaceAppsByAgentID(ctx,agentID)
12511264
}
12521265

1253-
func (q*querier)GetWorkspaceBuildByID(ctx context.Context,buildID uuid.UUID) (database.WorkspaceBuildRBAC,error) {
1254-
returnfetch(q.log,q.auth,q.db.GetWorkspaceBuildByID)(ctx,buildID)
1266+
func (q*querier)GetWorkspaceBuildByID(ctx context.Context,buildID uuid.UUID) (database.WorkspaceBuild,error) {
1267+
build,err:=q.db.GetWorkspaceBuildByID(ctx,buildID)
1268+
iferr!=nil {
1269+
return database.WorkspaceBuild{},err
1270+
}
1271+
if_,err:=q.GetWorkspaceByID(ctx,build.WorkspaceID);err!=nil {
1272+
return database.WorkspaceBuild{},err
1273+
}
1274+
returnbuild,nil
12551275
}
12561276

1257-
func (q*querier)GetWorkspaceBuildByJobID(ctx context.Context,jobID uuid.UUID) (database.WorkspaceBuildRBAC,error) {
1258-
returnfetch(q.log,q.auth,q.db.GetWorkspaceBuildByJobID)(ctx,jobID)
1277+
func (q*querier)GetWorkspaceBuildByJobID(ctx context.Context,jobID uuid.UUID) (database.WorkspaceBuild,error) {
1278+
build,err:=q.db.GetWorkspaceBuildByJobID(ctx,jobID)
1279+
iferr!=nil {
1280+
return database.WorkspaceBuild{},err
1281+
}
1282+
// Authorized fetch
1283+
_,err=q.GetWorkspaceByID(ctx,build.WorkspaceID)
1284+
iferr!=nil {
1285+
return database.WorkspaceBuild{},err
1286+
}
1287+
returnbuild,nil
12591288
}
12601289

1261-
func (q*querier)GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx context.Context,arg database.GetWorkspaceBuildByWorkspaceIDAndBuildNumberParams) (database.WorkspaceBuildRBAC,error) {
1262-
returnfetch(q.log,q.auth,q.db.GetWorkspaceBuildByWorkspaceIDAndBuildNumber)(ctx,arg)
1290+
func (q*querier)GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx context.Context,arg database.GetWorkspaceBuildByWorkspaceIDAndBuildNumberParams) (database.WorkspaceBuild,error) {
1291+
if_,err:=q.GetWorkspaceByID(ctx,arg.WorkspaceID);err!=nil {
1292+
return database.WorkspaceBuild{},err
1293+
}
1294+
returnq.db.GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx,arg)
12631295
}
12641296

12651297
func (q*querier)GetWorkspaceBuildParameters(ctx context.Context,workspaceBuildID uuid.UUID) ([]database.WorkspaceBuildParameter,error) {
@@ -1273,20 +1305,11 @@ func (q *querier) GetWorkspaceBuildParameters(ctx context.Context, workspaceBuil
12731305
returnq.db.GetWorkspaceBuildParameters(ctx,workspaceBuildID)
12741306
}
12751307

1276-
func (q*querier)GetWorkspaceBuildsByWorkspaceID(ctx context.Context,arg database.GetWorkspaceBuildsByWorkspaceIDParams) ([]database.WorkspaceBuildRBAC,error) {
1277-
builds,err:=q.db.GetWorkspaceBuildsByWorkspaceID(ctx,arg)
1278-
iferr!=nil {
1279-
returnnil,err
1280-
}
1281-
iflen(builds)==0 {
1282-
return []database.WorkspaceBuildRBAC{},nil
1283-
}
1284-
// All builds come from the same workspace, so we only need to check the first one.
1285-
err=q.authorizeContext(ctx,rbac.ActionRead,builds[0])
1286-
iferr!=nil {
1308+
func (q*querier)GetWorkspaceBuildsByWorkspaceID(ctx context.Context,arg database.GetWorkspaceBuildsByWorkspaceIDParams) ([]database.WorkspaceBuild,error) {
1309+
if_,err:=q.GetWorkspaceByID(ctx,arg.WorkspaceID);err!=nil {
12871310
returnnil,err
12881311
}
1289-
returnbuilds,nil
1312+
returnq.db.GetWorkspaceBuildsByWorkspaceID(ctx,arg)
12901313
}
12911314

12921315
func (q*querier)GetWorkspaceByAgentID(ctx context.Context,agentID uuid.UUID) (database.Workspace,error) {
@@ -1346,7 +1369,11 @@ func (q *querier) GetWorkspaceResourcesByJobID(ctx context.Context, jobID uuid.U
13461369
iferr!=nil {
13471370
returnnil,err
13481371
}
1349-
obj=build
1372+
workspace,err:=q.db.GetWorkspaceByID(ctx,build.WorkspaceID)
1373+
iferr!=nil {
1374+
returnnil,err
1375+
}
1376+
obj=workspace
13501377
default:
13511378
returnnil,xerrors.Errorf("unknown job type: %s",job.Type)
13521379
}
@@ -1387,7 +1414,12 @@ func (q *querier) InsertWorkspaceBuildParameters(ctx context.Context, arg databa
13871414
returnerr
13881415
}
13891416

1390-
err=q.authorizeContext(ctx,rbac.ActionUpdate,build)
1417+
workspace,err:=q.db.GetWorkspaceByID(ctx,build.WorkspaceID)
1418+
iferr!=nil {
1419+
returnerr
1420+
}
1421+
1422+
err=q.authorizeContext(ctx,rbac.ActionUpdate,workspace)
13911423
iferr!=nil {
13921424
returnerr
13931425
}
@@ -1451,7 +1483,11 @@ func (q *querier) UpdateWorkspaceBuildByID(ctx context.Context, arg database.Upd
14511483
return database.WorkspaceBuild{},err
14521484
}
14531485

1454-
err=q.authorizeContext(ctx,rbac.ActionUpdate,build)
1486+
workspace,err:=q.db.GetWorkspaceByID(ctx,build.WorkspaceID)
1487+
iferr!=nil {
1488+
return database.WorkspaceBuild{},err
1489+
}
1490+
err=q.authorizeContext(ctx,rbac.ActionUpdate,workspace.RBACObject())
14551491
iferr!=nil {
14561492
return database.WorkspaceBuild{},err
14571493
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp