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

Skip to content

Commit 33ecab0

Browse files
committed
Add provisioner daemon routes
1 parent 7a9f714 commit 33ecab0

File tree

11 files changed

+761
-4
lines changed

11 files changed

+761
-4
lines changed

.vscode/settings.json

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,23 @@
2727
"coderd",
2828
"coderdtest",
2929
"codersdk",
30+
"drpc",
31+
"drpcmux",
32+
"drpcserver",
33+
"goleak",
34+
"hashicorp",
3035
"httpmw",
36+
"moby",
37+
"nhooyr",
38+
"nosec",
3139
"oneof",
40+
"protobuf",
41+
"provisionerd",
42+
"provisionersdk",
43+
"retrier",
44+
"sdkproto",
3245
"stretchr",
33-
"xerrors"
46+
"xerrors",
47+
"yamux"
3448
]
3549
}

coderd/coderd.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ func New(options *Options) http.Handler {
8989
})
9090
})
9191
})
92+
93+
r.Route("/provisioners/daemons", func(r chi.Router) {
94+
r.Get("/", api.provisionerDaemons)
95+
r.Get("/serve", api.provisionerDaemonsServe)
96+
})
9297
})
9398
r.NotFound(site.Handler().ServeHTTP)
9499
return r

coderd/coderdtest/coderdtest.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,27 @@ package coderdtest
33
import (
44
"context"
55
"database/sql"
6+
"io"
67
"net/http/httptest"
78
"net/url"
89
"os"
910
"testing"
11+
"time"
1012

1113
"github.com/stretchr/testify/require"
1214

15+
"cdr.dev/slog"
1316
"cdr.dev/slog/sloggers/slogtest"
1417
"github.com/coder/coder/coderd"
1518
"github.com/coder/coder/codersdk"
1619
"github.com/coder/coder/cryptorand"
1720
"github.com/coder/coder/database"
1821
"github.com/coder/coder/database/databasefake"
1922
"github.com/coder/coder/database/postgres"
23+
"github.com/coder/coder/provisioner/terraform"
24+
"github.com/coder/coder/provisionerd"
25+
"github.com/coder/coder/provisionersdk"
26+
"github.com/coder/coder/provisionersdk/proto"
2027
)
2128

2229
// Server represents a test instance of coderd.
@@ -57,6 +64,38 @@ func (s *Server) RandomInitialUser(t *testing.T) coderd.CreateInitialUserRequest
5764
return req
5865
}
5966

67+
// AddProvisionerd launches a new provisionerd instance!
68+
func (s *Server) AddProvisionerd(t *testing.T) io.Closer {
69+
tfClient, tfServer := provisionersdk.TransportPipe()
70+
ctx, cancelFunc := context.WithCancel(context.Background())
71+
t.Cleanup(func() {
72+
_ = tfClient.Close()
73+
_ = tfServer.Close()
74+
cancelFunc()
75+
})
76+
go func() {
77+
err := terraform.Serve(ctx, &terraform.ServeOptions{
78+
ServeOptions: &provisionersdk.ServeOptions{
79+
Listener: tfServer,
80+
},
81+
})
82+
require.NoError(t, err)
83+
}()
84+
85+
closer := provisionerd.New(s.Client.ProvisionerDaemonClient, &provisionerd.Options{
86+
Logger: slogtest.Make(t, nil).Named("provisionerd").Leveled(slog.LevelInfo),
87+
PollInterval: 50 * time.Millisecond,
88+
Provisioners: provisionerd.Provisioners{
89+
string(database.ProvisionerTypeTerraform): proto.NewDRPCProvisionerClient(provisionersdk.Conn(tfClient)),
90+
},
91+
WorkDirectory: t.TempDir(),
92+
})
93+
t.Cleanup(func() {
94+
_ = closer.Close()
95+
})
96+
return closer
97+
}
98+
6099
// New constructs a new coderd test instance. This returned Server
61100
// should contain no side-effects.
62101
func New(t *testing.T) Server {

coderd/coderdtest/coderdtest_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ func TestNew(t *testing.T) {
1616
t.Parallel()
1717
server := coderdtest.New(t)
1818
_ = server.RandomInitialUser(t)
19+
_ = server.AddProvisionerd(t)
1920
}

coderd/projecthistory.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,3 +116,7 @@ func convertProjectHistory(history database.ProjectHistory) ProjectHistory {
116116
Name: history.Name,
117117
}
118118
}
119+
120+
func projectHistoryLogsChannel(projectHistoryID uuid.UUID) string {
121+
return fmt.Sprintf("project-history-logs:%s", projectHistoryID)
122+
}

0 commit comments

Comments
 (0)