Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ef3f479

Browse files
committed
rebase merge
1 parent 5a0a80b commit ef3f479

20 files changed

+103
-40
lines changed

coderd/apidoc/docs.go

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

coderd/apidoc/swagger.json

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

coderd/database/dbauthz/dbauthz.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,8 @@ func (q *querier) CleanTailnetTunnels(ctx context.Context) error {
726726
}
727727

728728
func (q *querier) CreateWorkspaceAgentPortShare(ctx context.Context, arg database.CreateWorkspaceAgentPortShareParams) error {
729-
panic("not implemented")
729+
// TODO: do authz
730+
return q.db.CreateWorkspaceAgentPortShare(ctx, arg)
730731
}
731732

732733
func (q *querier) DeleteAPIKeyByID(ctx context.Context, id string) error {
@@ -896,7 +897,8 @@ func (q *querier) DeleteTailnetTunnel(ctx context.Context, arg database.DeleteTa
896897
}
897898

898899
func (q *querier) DeleteWorkspaceAgentPortShare(ctx context.Context, arg database.DeleteWorkspaceAgentPortShareParams) error {
899-
panic("not implemented")
900+
// TODO: do authz
901+
return q.db.DeleteWorkspaceAgentPortShare(ctx, arg)
900902
}
901903

902904
func (q *querier) FavoriteWorkspace(ctx context.Context, id uuid.UUID) error {
@@ -1876,8 +1878,9 @@ func (q *querier) GetWorkspaceAgentMetadata(ctx context.Context, arg database.Ge
18761878
return q.db.GetWorkspaceAgentMetadata(ctx, arg)
18771879
}
18781880

1879-
func (q *querier) GetWorkspaceAgentPortShare(ctx context.Context, arg database.GetWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortSharing, error) {
1880-
panic("not implemented")
1881+
func (q *querier) GetWorkspaceAgentPortShare(ctx context.Context, arg database.GetWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortShare, error) {
1882+
// TODO: do authz
1883+
return q.db.GetWorkspaceAgentPortShare(ctx, arg)
18811884
}
18821885

18831886
func (q *querier) GetWorkspaceAgentScriptsByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgentScript, error) {
@@ -3020,7 +3023,8 @@ func (q *querier) UpdateWorkspaceAgentMetadata(ctx context.Context, arg database
30203023
}
30213024

30223025
func (q *querier) UpdateWorkspaceAgentPortShare(ctx context.Context, arg database.UpdateWorkspaceAgentPortShareParams) error {
3023-
panic("not implemented")
3026+
// TODO: do authz
3027+
return q.db.UpdateWorkspaceAgentPortShare(ctx, arg)
30243028
}
30253029

30263030
func (q *querier) UpdateWorkspaceAgentStartupByID(ctx context.Context, arg database.UpdateWorkspaceAgentStartupByIDParams) error {

coderd/database/dbmem/dbmem.go

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ type data struct {
147147
workspaceAgentLogs []database.WorkspaceAgentLog
148148
workspaceAgentLogSources []database.WorkspaceAgentLogSource
149149
workspaceAgentScripts []database.WorkspaceAgentScript
150+
workspaceAgentPortShare []database.WorkspaceAgentPortShare
150151
workspaceApps []database.WorkspaceApp
151152
workspaceAppStatsLastInsertID int64
152153
workspaceAppStats []database.WorkspaceAppStat
@@ -1002,13 +1003,30 @@ func (*FakeQuerier) CleanTailnetTunnels(context.Context) error {
10021003
return ErrUnimplemented
10031004
}
10041005

1005-
func (q *FakeQuerier) CreateWorkspaceAgentPortShare(ctx context.Context, arg database.CreateWorkspaceAgentPortShareParams) error {
1006+
func (q *FakeQuerier) CreateWorkspaceAgentPortShare(_ context.Context, arg database.CreateWorkspaceAgentPortShareParams) error {
10061007
err := validateDatabaseType(arg)
10071008
if err != nil {
10081009
return err
10091010
}
10101011

1011-
panic("not implemented")
1012+
q.mutex.Lock()
1013+
defer q.mutex.Unlock()
1014+
1015+
for _, share := range q.workspaceAgentPortShare {
1016+
if share.WorkspaceID == arg.WorkspaceID && share.AgentName == arg.AgentName && share.Port == arg.Port {
1017+
return xerrors.New("port share already exists")
1018+
}
1019+
}
1020+
1021+
//nolint:gosimple // I disagree
1022+
q.workspaceAgentPortShare = append(q.workspaceAgentPortShare, database.WorkspaceAgentPortShare{
1023+
WorkspaceID: arg.WorkspaceID,
1024+
AgentName: arg.AgentName,
1025+
Port: arg.Port,
1026+
ShareLevel: arg.ShareLevel,
1027+
})
1028+
1029+
return nil
10121030
}
10131031

10141032
func (q *FakeQuerier) DeleteAPIKeyByID(_ context.Context, id string) error {
@@ -1326,13 +1344,23 @@ func (*FakeQuerier) DeleteTailnetTunnel(_ context.Context, arg database.DeleteTa
13261344
return database.DeleteTailnetTunnelRow{}, ErrUnimplemented
13271345
}
13281346

1329-
func (q *FakeQuerier) DeleteWorkspaceAgentPortShare(ctx context.Context, arg database.DeleteWorkspaceAgentPortShareParams) error {
1347+
func (q *FakeQuerier) DeleteWorkspaceAgentPortShare(_ context.Context, arg database.DeleteWorkspaceAgentPortShareParams) error {
13301348
err := validateDatabaseType(arg)
13311349
if err != nil {
13321350
return err
13331351
}
13341352

1335-
panic("not implemented")
1353+
q.mutex.Lock()
1354+
defer q.mutex.Unlock()
1355+
1356+
for i, share := range q.workspaceAgentPortShare {
1357+
if share.WorkspaceID == arg.WorkspaceID && share.AgentName == arg.AgentName && share.Port == arg.Port {
1358+
q.workspaceAgentPortShare = append(q.workspaceAgentPortShare[:i], q.workspaceAgentPortShare[i+1:]...)
1359+
return nil
1360+
}
1361+
}
1362+
1363+
return sql.ErrNoRows
13361364
}
13371365

13381366
func (q *FakeQuerier) FavoriteWorkspace(_ context.Context, arg uuid.UUID) error {
@@ -4172,13 +4200,22 @@ func (q *FakeQuerier) GetWorkspaceAgentMetadata(_ context.Context, arg database.
41724200
return metadata, nil
41734201
}
41744202

4175-
func (q *FakeQuerier) GetWorkspaceAgentPortShare(ctx context.Context, arg database.GetWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortSharing, error) {
4203+
func (q *FakeQuerier) GetWorkspaceAgentPortShare(_ context.Context, arg database.GetWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortShare, error) {
41764204
err := validateDatabaseType(arg)
41774205
if err != nil {
4178-
return database.WorkspaceAgentPortSharing{}, err
4206+
return database.WorkspaceAgentPortShare{}, err
41794207
}
41804208

4181-
panic("not implemented")
4209+
q.mutex.RLock()
4210+
defer q.mutex.RUnlock()
4211+
4212+
for _, share := range q.workspaceAgentPortShare {
4213+
if share.WorkspaceID == arg.WorkspaceID && share.AgentName == arg.AgentName && share.Port == arg.Port {
4214+
return share, nil
4215+
}
4216+
}
4217+
4218+
return database.WorkspaceAgentPortShare{}, sql.ErrNoRows
41824219
}
41834220

41844221
func (q *FakeQuerier) GetWorkspaceAgentScriptsByAgentIDs(_ context.Context, ids []uuid.UUID) ([]database.WorkspaceAgentScript, error) {

coderd/database/dbmetrics/dbmetrics.go

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

coderd/database/dbmock/dbmock.go

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

coderd/database/dump.sql

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

coderd/database/foreign_key_constraint.go

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

coderd/database/migrations/000187_workspace_agent_port_sharing.down.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
DROP TABLE workspace_agent_port_sharing;
1+
DROP TABLE workspace_agent_port_share;
22
DROP VIEW template_with_users;
33
ALTER TABLE templates DROP COLUMN max_port_sharing_level;
44

coderd/database/migrations/000187_workspace_agent_port_sharing.up.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CREATE TABLE workspace_agent_port_sharing (
1+
CREATE TABLE workspace_agent_port_share (
22
workspace_id uuid NOT NULL REFERENCES workspaces (id) ON DELETE CASCADE,
33
agent_name text NOT NULL,
44
port integer NOT NULL,

0 commit comments

Comments
 (0)