MCPcopy Index your code
hub / github.com/coder/coder / NewTaggedProvisionerDaemon

Function NewTaggedProvisionerDaemon

coderd/coderdtest/coderdtest.go:761–808  ·  view source on GitHub ↗
(t testing.TB, coderAPI *coderd.API, name string, provisionerTags map[string]string, opts ...coderd.MemoryProvisionerDaemonOption)

Source from the content-addressed store, hash-verified

759}
760
761func NewTaggedProvisionerDaemon(t testing.TB, coderAPI *coderd.API, name string, provisionerTags map[string]string, opts ...coderd.MemoryProvisionerDaemonOption) io.Closer {
762 t.Helper()
763
764 // t.Cleanup runs in last added, first called order. t.TempDir() will delete
765 // the directory on cleanup, so we want to make sure the echoServer is closed
766 // before we go ahead an attempt to delete it's work directory.
767 // seems t.TempDir() is not safe to call from a different goroutine
768 workDir := t.TempDir()
769
770 echoClient, echoServer := drpcsdk.MemTransportPipe()
771 ctx, cancelFunc := context.WithCancel(context.Background())
772 t.Cleanup(func() {
773 _ = echoClient.Close()
774 _ = echoServer.Close()
775 cancelFunc()
776 })
777
778 go func() {
779 err := echo.Serve(ctx, &provisionersdk.ServeOptions{
780 Listener: echoServer,
781 WorkDirectory: workDir,
782 Logger: coderAPI.Logger.Named("echo").Leveled(slog.LevelDebug),
783 })
784 assert.NoError(t, err)
785 }()
786
787 connectedCh := make(chan struct{})
788 daemon := provisionerd.New(func(dialCtx context.Context) (provisionerdproto.DRPCProvisionerDaemonClient, error) {
789 return coderAPI.CreateInMemoryTaggedProvisionerDaemon(dialCtx, name, []codersdk.ProvisionerType{codersdk.ProvisionerTypeEcho}, provisionerTags, opts...)
790 }, &provisionerd.Options{
791 Logger: coderAPI.Logger.Named("provisionerd").Leveled(slog.LevelDebug),
792 UpdateInterval: 250 * time.Millisecond,
793 ForceCancelInterval: 5 * time.Second,
794 Connector: provisionerd.LocalProvisioners{
795 string(database.ProvisionerTypeEcho): sdkproto.NewDRPCProvisionerClient(echoClient),
796 },
797 InitConnectionCh: connectedCh,
798 })
799 // Wait for the provisioner daemon to connect before continuing.
800 // Users of this function tend to assume that the provisioner is connected
801 // and ready to use when that may not strictly be the case.
802 <-connectedCh
803 closer := NewProvisionerDaemonCloser(daemon)
804 t.Cleanup(func() {
805 _ = closer.Close()
806 })
807 return closer
808}
809
810var FirstUserParams = codersdk.CreateFirstUserRequest{
811 Email: "testuser@coder.com",

Callers 8

TestProvisionerDaemonsFunction · 0.92
TestProvisionerJobsFunction · 0.92
TestProvisioners_GoldenFunction · 0.92
TestTemplatePushFunction · 0.92
NewWithAPIFunction · 0.85
NewProvisionerDaemonFunction · 0.85

Calls 10

MemTransportPipeFunction · 0.92
ServeFunction · 0.92
NewFunction · 0.92
NamedMethod · 0.80
HelperMethod · 0.65
TempDirMethod · 0.65
CleanupMethod · 0.65
CloseMethod · 0.65