Skip to content

Commit

Permalink
Frrist/tests/migrate to v2 client (#4147)
Browse files Browse the repository at this point in the history
Closes #4146, #4141, #4119, and #4143

---------

Authored-by: frrist <[email protected]>
  • Loading branch information
frrist committed Jul 2, 2024
1 parent 6cd4a5f commit 844b276
Show file tree
Hide file tree
Showing 50 changed files with 355 additions and 2,788 deletions.
1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,6 @@ integration-test:

.PHONY: bash-test
bash-test:
export REQUESTER_ENDPOINT_USE_DEPRECATED_ENV=true
${BINARY_PATH}
cd test && bin/bashtub *.sh

Expand Down
34 changes: 23 additions & 11 deletions cmd/cli/serve/serve_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ import (
"github.com/stretchr/testify/suite"
"golang.org/x/sync/errgroup"

"github.com/bacalhau-project/bacalhau/pkg/publicapi/client"
"github.com/bacalhau-project/bacalhau/pkg/models"
"github.com/bacalhau-project/bacalhau/pkg/publicapi/apimodels"
clientv2 "github.com/bacalhau-project/bacalhau/pkg/publicapi/client/v2"
apitest "github.com/bacalhau-project/bacalhau/pkg/publicapi/test"

Expand All @@ -26,7 +27,6 @@ import (
cmd2 "github.com/bacalhau-project/bacalhau/cmd/cli"
cfgtypes "github.com/bacalhau-project/bacalhau/pkg/config/types"
"github.com/bacalhau-project/bacalhau/pkg/logger"
"github.com/bacalhau-project/bacalhau/pkg/model"
"github.com/bacalhau-project/bacalhau/pkg/setup"
"github.com/bacalhau-project/bacalhau/pkg/system"
"github.com/bacalhau-project/bacalhau/pkg/types"
Expand Down Expand Up @@ -200,16 +200,28 @@ func (s *ServeSuite) TestCanSubmitJob() {
docker.MustHaveDocker(s.T())
port, err := s.serve("--node-type", "requester,compute")
s.Require().NoError(err)
client, err := client.NewAPIClient(client.NoTLS, s.config.User, "localhost", port)
s.Require().NoError(err)

clientV2 := clientv2.New(fmt.Sprintf("http://127.0.0.1:%d", port))
s.Require().NoError(apitest.WaitForAlive(s.ctx, clientV2))

job, err := model.NewJobWithSaneProductionDefaults()
s.Require().NoError(err)

_, err = client.Submit(s.ctx, job)
client := clientv2.New(fmt.Sprintf("http://127.0.0.1:%d", port))
s.Require().NoError(apitest.WaitForAlive(s.ctx, client))

job := &models.Job{
Name: s.T().Name(),
Type: models.JobTypeBatch,
Count: 1,
Tasks: []*models.Task{
{
Name: s.T().Name(),
Engine: &models.SpecConfig{
Type: models.EngineNoop,
Params: make(map[string]interface{}),
},
},
},
}
job.Normalize()
_, err = client.Jobs().Put(s.ctx, &apimodels.PutJobRequest{
Job: job,
})
s.NoError(err)
}

Expand Down
42 changes: 30 additions & 12 deletions cmd/cli/serve/timeout_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import (
"time"

"github.com/bacalhau-project/bacalhau/pkg/docker"
legacy_job "github.com/bacalhau-project/bacalhau/pkg/legacyjob"
"github.com/bacalhau-project/bacalhau/pkg/model"
"github.com/bacalhau-project/bacalhau/pkg/publicapi/client"
"github.com/bacalhau-project/bacalhau/pkg/models"
"github.com/bacalhau-project/bacalhau/pkg/publicapi/apimodels"
clientv2 "github.com/bacalhau-project/bacalhau/pkg/publicapi/client/v2"
apitest "github.com/bacalhau-project/bacalhau/pkg/publicapi/test"
)
Expand Down Expand Up @@ -53,26 +53,44 @@ func (s *ServeSuite) TestNoTimeoutSetOrApplied() {

port, err := s.serve(args...)
s.Require().NoError(err)
client, err := client.NewAPIClient(client.NoTLS, s.config.User, "localhost", port)
s.Require().NoError(err)

clientV2 := clientv2.New(fmt.Sprintf("http://127.0.0.1:%d", port))
s.Require().NoError(apitest.WaitForAlive(s.ctx, clientV2))

testJob := model.NewJob()
specOpts := []legacy_job.SpecOpt{}
testJob := &models.Job{
Name: s.T().Name(),
Type: models.JobTypeBatch,
Count: 1,
Tasks: []*models.Task{
{
Name: s.T().Name(),
Engine: &models.SpecConfig{
Type: models.EngineNoop,
Params: make(map[string]interface{}),
},
Publisher: &models.SpecConfig{
Type: models.PublisherNoop,
Params: make(map[string]interface{}),
},
},
},
}

if tc.timeoutSpecified != nil {
specOpts = append(specOpts, legacy_job.WithTimeout(int64(tc.timeoutSpecified.Seconds())))
testJob.Task().Timeouts = &models.TimeoutConfig{
TotalTimeout: int64(tc.timeoutSpecified.Seconds()),
}
}
testJob.Spec, err = legacy_job.MakeSpec(specOpts...)
s.Require().NoError(err)

returnedJob, err := client.Submit(s.ctx, testJob)
putResp, err := clientV2.Jobs().Put(s.ctx, &apimodels.PutJobRequest{
Job: testJob,
})
s.Require().NoError(err)

s.Eventually(func() bool {
jobState, err := client.GetJobState(s.ctx, returnedJob.ID())
getResp, err := clientV2.Jobs().Get(s.ctx, &apimodels.GetJobRequest{JobID: putResp.JobID})
s.Require().NoError(err)
s.Require().Equal(model.JobStateError.String(), jobState.State.String())
s.Require().Equal(models.JobStateTypeFailed, getResp.Job.State.StateType)
return true
}, 5*time.Second, 50*time.Millisecond)
})
Expand Down
8 changes: 4 additions & 4 deletions cmd/cli/version/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (
"github.com/spf13/cobra"

"github.com/bacalhau-project/bacalhau/pkg/config/types"
"github.com/bacalhau-project/bacalhau/pkg/publicapi/client"
clientv2 "github.com/bacalhau-project/bacalhau/pkg/publicapi/client/v2"
"github.com/bacalhau-project/bacalhau/pkg/version"

"github.com/bacalhau-project/bacalhau/cmd/util"
Expand Down Expand Up @@ -59,7 +59,7 @@ func NewCmd() *cobra.Command {
return fmt.Errorf("failed to setup repo: %w", err)
}
// create an api client
api, err := util.GetAPIClient(cfg)
api, err := util.GetAPIClientV2(cmd, cfg)
if err != nil {
return fmt.Errorf("failed to create api client: %w", err)
}
Expand All @@ -72,7 +72,7 @@ func NewCmd() *cobra.Command {
return versionCmd
}

func runVersion(cmd *cobra.Command, cfg types.BacalhauConfig, api *client.APIClient, oV *VersionOptions) error {
func runVersion(cmd *cobra.Command, cfg types.BacalhauConfig, api clientv2.API, oV *VersionOptions) error {
ctx := cmd.Context()

err := oV.Run(ctx, cmd, cfg, api)
Expand Down Expand Up @@ -103,7 +103,7 @@ var updateMessageColumn = output.TableColumn[util.Versions]{
Value: func(v util.Versions) string { return v.UpdateMessage },
}

func (oV *VersionOptions) Run(ctx context.Context, cmd *cobra.Command, cfg types.BacalhauConfig, api *client.APIClient) error {
func (oV *VersionOptions) Run(ctx context.Context, cmd *cobra.Command, cfg types.BacalhauConfig, api clientv2.API) error {
var (
versions util.Versions
columns []output.TableColumn[util.Versions]
Expand Down
4 changes: 0 additions & 4 deletions cmd/testing/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (
noop_executor "github.com/bacalhau-project/bacalhau/pkg/executor/noop"
"github.com/bacalhau-project/bacalhau/pkg/logger"
"github.com/bacalhau-project/bacalhau/pkg/node"
"github.com/bacalhau-project/bacalhau/pkg/publicapi/client"
clientv2 "github.com/bacalhau-project/bacalhau/pkg/publicapi/client/v2"
"github.com/bacalhau-project/bacalhau/pkg/setup"
"github.com/bacalhau-project/bacalhau/pkg/test/teststack"
Expand All @@ -31,7 +30,6 @@ import (
type BaseSuite struct {
suite.Suite
Node *node.Node
Client *client.APIClient
ClientV2 clientv2.API
Config types.BacalhauConfig
Host string
Expand Down Expand Up @@ -78,8 +76,6 @@ func (s *BaseSuite) SetupTest() {
s.Node = stack.Nodes[0]
s.Host = s.Node.APIServer.Address
s.Port = s.Node.APIServer.Port
s.Client, err = client.NewAPIClient(client.NoTLS, cfg.User, s.Host, s.Port)
s.Require().NoError(err)
s.ClientV2 = clientv2.New(fmt.Sprintf("http://%s:%d", s.Host, s.Port))
}

Expand Down
3 changes: 0 additions & 3 deletions cmd/testing/basetls.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (
noop_executor "github.com/bacalhau-project/bacalhau/pkg/executor/noop"
"github.com/bacalhau-project/bacalhau/pkg/logger"
"github.com/bacalhau-project/bacalhau/pkg/node"
"github.com/bacalhau-project/bacalhau/pkg/publicapi/client"
clientv2 "github.com/bacalhau-project/bacalhau/pkg/publicapi/client/v2"
"github.com/bacalhau-project/bacalhau/pkg/setup"
"github.com/bacalhau-project/bacalhau/pkg/test/teststack"
Expand Down Expand Up @@ -69,8 +68,6 @@ func (s *BaseTLSSuite) SetupTest() {
s.Node = stack.Nodes[0]
s.Host = s.Node.APIServer.Address // NOTE: 0.0.0.0 will not work because we're testing TLS validation
s.Port = s.Node.APIServer.Port
s.Client, err = client.NewAPIClient(client.LegacyTLSSupport{UseTLS: true, Insecure: false}, cfg.User, s.Host, s.Port)
s.Require().NoError(err)
s.ClientV2 = clientv2.New(fmt.Sprintf("http://%s:%d", s.Host, s.Port), clientv2.WithTLS(true), clientv2.WithInsecureTLS(true))
}

Expand Down
34 changes: 0 additions & 34 deletions cmd/util/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,44 +11,10 @@ import (
"github.com/bacalhau-project/bacalhau/cmd/util/auth"
"github.com/bacalhau-project/bacalhau/pkg/config/types"
"github.com/bacalhau-project/bacalhau/pkg/publicapi/apimodels"
"github.com/bacalhau-project/bacalhau/pkg/publicapi/client"
clientv2 "github.com/bacalhau-project/bacalhau/pkg/publicapi/client/v2"
"github.com/bacalhau-project/bacalhau/pkg/version"
)

func GetAPIClient(cfg types.BacalhauConfig) (*client.APIClient, error) {
tlsCfg := cfg.Node.ClientAPI.ClientTLS
apiHost := cfg.Node.ClientAPI.Host
apiPort := cfg.Node.ClientAPI.Port
tokenPath := cfg.Auth.TokensPath

if tlsCfg.CACert != "" {
if _, err := os.Stat(tlsCfg.CACert); os.IsNotExist(err) {
return nil, fmt.Errorf("CA certificate file %q does not exists", tlsCfg.CACert)
} else if err != nil {
return nil, fmt.Errorf("CA certificate file %q cannot be read: %w", tlsCfg.CACert, err)
}
}

apiClient, err := client.NewAPIClient(client.LegacyTLSSupport(tlsCfg), cfg.User, apiHost, uint16(apiPort))
if err != nil {
return nil, err
}

apiSheme := "http"
if tlsCfg.UseTLS {
apiSheme = "https"
}

if token, err := ReadToken(tokenPath, fmt.Sprintf("%s://%s:%d", apiSheme, apiHost, apiPort)); err != nil {
log.Warn().Err(err).Msg("Failed to read access tokens – API calls will be without authorization")
} else if token != nil {
apiClient.DefaultHeaders["Authorization"] = token.String()
}

return apiClient, nil
}

func GetAPIClientV2(cmd *cobra.Command, cfg types.BacalhauConfig) (clientv2.API, error) {
tlsCfg := cfg.Node.ClientAPI.ClientTLS
apiHost := cfg.Node.ClientAPI.Host
Expand Down
22 changes: 0 additions & 22 deletions cmd/util/execute.go

This file was deleted.

Loading

0 comments on commit 844b276

Please sign in to comment.