feat: Refactor API routes to use UUIDs instead of friendly names (#401)

* Add client for agent

* Cleanup code

* Fix linting error

* Rename routes to be simpler

* Rename workspace history to workspace build

* Refactor HTTP middlewares to use UUIDs

* Cleanup routes

* Compiles!

* Fix files and organizations

* Fix querying

* Fix agent lock

* Cleanup database abstraction

* Add parameters

* Fix linting errors

* Fix log race

* Lock on close wait

* Fix log cleanup

* Fix e2e tests

* Fix upstream version of opencensus-go

* Update coderdtest.go

* Fix coverpkg

* Fix codecov ignore
This commit is contained in:
Kyle Carberry
2022-03-07 11:40:54 -06:00
committed by GitHub
parent 330686f60a
commit bf0ae8f573
115 changed files with 5853 additions and 4657 deletions

View File

@ -75,7 +75,11 @@ func (*echo) Parse(request *proto.Parse_Request, stream proto.DRPCProvisioner_Pa
// Provision reads requests from the provided directory to stream responses.
func (*echo) Provision(request *proto.Provision_Request, stream proto.DRPCProvisioner_ProvisionStream) error {
for index := 0; ; index++ {
path := filepath.Join(request.Directory, fmt.Sprintf("%d.provision.protobuf", index))
extension := ".protobuf"
if request.DryRun {
extension = ".dry.protobuf"
}
path := filepath.Join(request.Directory, fmt.Sprintf("%d.provision"+extension, index))
_, err := os.Stat(path)
if err != nil {
if index == 0 {
@ -107,14 +111,18 @@ func (*echo) Shutdown(_ context.Context, _ *proto.Empty) (*proto.Empty, error) {
}
type Responses struct {
Parse []*proto.Parse_Response
Provision []*proto.Provision_Response
Parse []*proto.Parse_Response
Provision []*proto.Provision_Response
ProvisionDryRun []*proto.Provision_Response
}
// Tar returns a tar archive of responses to provisioner operations.
func Tar(responses *Responses) ([]byte, error) {
if responses == nil {
responses = &Responses{ParseComplete, ProvisionComplete}
responses = &Responses{ParseComplete, ProvisionComplete, ProvisionComplete}
}
if responses.ProvisionDryRun == nil {
responses.ProvisionDryRun = responses.Provision
}
var buffer bytes.Buffer
@ -153,6 +161,23 @@ func Tar(responses *Responses) ([]byte, error) {
return nil, err
}
}
for index, response := range responses.ProvisionDryRun {
data, err := protobuf.Marshal(response)
if err != nil {
return nil, err
}
err = writer.WriteHeader(&tar.Header{
Name: fmt.Sprintf("%d.provision.dry.protobuf", index),
Size: int64(len(data)),
})
if err != nil {
return nil, err
}
_, err = writer.Write(data)
if err != nil {
return nil, err
}
}
err := writer.Flush()
if err != nil {
return nil, err