Files
coder/provisionerd/localprovisioners.go
Spike Curtis 11b6068112 feat: add support for networked provisioners (#9593)
* Refactor provisionerd to use interface to connect to provisioners

Signed-off-by: Spike Curtis <spike@coder.com>

* feat: add support for networked provisioners

Signed-off-by: Spike Curtis <spike@coder.com>

* fix token length and linting

Signed-off-by: Spike Curtis <spike@coder.com>

---------

Signed-off-by: Spike Curtis <spike@coder.com>
2023-09-08 09:53:48 +00:00

29 lines
655 B
Go

package provisionerd
import (
"context"
"golang.org/x/xerrors"
"github.com/coder/coder/v2/provisionerd/proto"
sdkproto "github.com/coder/coder/v2/provisionersdk/proto"
)
// LocalProvisioners is a Connector that stores a static set of in-process
// provisioners.
type LocalProvisioners map[string]sdkproto.DRPCProvisionerClient
func (l LocalProvisioners) Connect(_ context.Context, job *proto.AcquiredJob, respCh chan<- ConnectResponse) {
r := ConnectResponse{Job: job}
p, ok := l[job.Provisioner]
if ok {
r.Client = p
} else {
r.Error = xerrors.Errorf("missing provisioner type %s", job.Provisioner)
}
go func() {
respCh <- r
}()
}