161 lines
4.3 KiB
Go
161 lines
4.3 KiB
Go
package singleprocess
|
|
|
|
// import (
|
|
// "context"
|
|
// "strconv"
|
|
// "testing"
|
|
// "time"
|
|
|
|
// "github.com/stretchr/testify/require"
|
|
|
|
// "github.com/hashicorp/vagrant/internal/server"
|
|
// "github.com/hashicorp/vagrant/internal/server/proto/vagrant_server"
|
|
// serverptypes "github.com/hashicorp/vagrant/internal/server/ptypes"
|
|
// )
|
|
|
|
// func TestServiceGetLogStream(t *testing.T) {
|
|
// ctx := context.Background()
|
|
|
|
// // Create our server
|
|
// impl, err := New(WithDB(testDB(t)))
|
|
// require.NoError(t, err)
|
|
// client := server.TestServer(t, impl)
|
|
|
|
// // Register our instances
|
|
// resp, err := client.UpsertDeployment(ctx, &vagrant_server.UpsertDeploymentRequest{
|
|
// Deployment: serverptypes.TestValidDeployment(t, &vagrant_server.Deployment{
|
|
// Component: &vagrant_server.Component{
|
|
// Name: "testapp",
|
|
// },
|
|
// }),
|
|
// })
|
|
|
|
// require.NoError(t, err)
|
|
|
|
// dep := resp.Deployment
|
|
// configClient, err := client.EntrypointConfig(ctx, &vagrant_server.EntrypointConfigRequest{
|
|
// DeploymentId: dep.Id,
|
|
// InstanceId: "1",
|
|
// })
|
|
// require.NoError(t, err)
|
|
// _, err = configClient.Recv()
|
|
// require.NoError(t, err)
|
|
|
|
// // Simplify writing tests
|
|
// type Req = vagrant_server.UpsertDeploymentRequest
|
|
|
|
// require := require.New(t)
|
|
|
|
// // Create the stream and send some log messages
|
|
// logSendClient, err := client.EntrypointLogStream(ctx)
|
|
// require.NoError(err)
|
|
// for i := 0; i < 5; i++ {
|
|
// var entries []*vagrant_server.LogBatch_Entry
|
|
// for j := 0; j < 5; j++ {
|
|
// entries = append(entries, &vagrant_server.LogBatch_Entry{
|
|
// Line: strconv.Itoa(5*i + j),
|
|
// })
|
|
// }
|
|
|
|
// logSendClient.Send(&vagrant_server.EntrypointLogBatch{
|
|
// InstanceId: "1",
|
|
// Lines: entries,
|
|
// })
|
|
// }
|
|
// time.Sleep(100 * time.Millisecond)
|
|
|
|
// // Connect to the stream and download the logs
|
|
// logRecvClient, err := client.GetLogStream(ctx, &vagrant_server.GetLogStreamRequest{
|
|
// Scope: &vagrant_server.GetLogStreamRequest_DeploymentId{
|
|
// DeploymentId: dep.Id,
|
|
// },
|
|
// })
|
|
// require.NoError(err)
|
|
|
|
// // Get a batch
|
|
// batch, err := logRecvClient.Recv()
|
|
// require.NoError(err)
|
|
// require.NotEmpty(batch.Lines)
|
|
// require.Len(batch.Lines, 25)
|
|
// }
|
|
|
|
// func TestServiceGetLogStream_byApp(t *testing.T) {
|
|
// ctx := context.Background()
|
|
|
|
// // Create our server
|
|
// impl, err := New(WithDB(testDB(t)))
|
|
// require.NoError(t, err)
|
|
// client := server.TestServer(t, impl)
|
|
|
|
// // Setup our references
|
|
// refApp := &vagrant_server.Ref_Application{
|
|
// Project: "test",
|
|
// Application: "app",
|
|
// }
|
|
// refWs := &vagrant_server.Ref_Workspace{
|
|
// Workspace: "ws",
|
|
// }
|
|
|
|
// // Register our instances
|
|
// resp, err := client.UpsertDeployment(ctx, &vagrant_server.UpsertDeploymentRequest{
|
|
// Deployment: serverptypes.TestValidDeployment(t, &vagrant_server.Deployment{
|
|
// Application: refApp,
|
|
// Workspace: refWs,
|
|
// Component: &vagrant_server.Component{
|
|
// Name: "testapp",
|
|
// },
|
|
// }),
|
|
// })
|
|
|
|
// require.NoError(t, err)
|
|
|
|
// dep := resp.Deployment
|
|
// configClient, err := client.EntrypointConfig(ctx, &vagrant_server.EntrypointConfigRequest{
|
|
// DeploymentId: dep.Id,
|
|
// InstanceId: "1",
|
|
// })
|
|
// require.NoError(t, err)
|
|
// _, err = configClient.Recv()
|
|
// require.NoError(t, err)
|
|
|
|
// // Simplify writing tests
|
|
// type Req = vagrant_server.UpsertDeploymentRequest
|
|
|
|
// require := require.New(t)
|
|
|
|
// // Create the stream and send some log messages
|
|
// logSendClient, err := client.EntrypointLogStream(ctx)
|
|
// require.NoError(err)
|
|
// for i := 0; i < 5; i++ {
|
|
// var entries []*vagrant_server.LogBatch_Entry
|
|
// for j := 0; j < 5; j++ {
|
|
// entries = append(entries, &vagrant_server.LogBatch_Entry{
|
|
// Line: strconv.Itoa(5*i + j),
|
|
// })
|
|
// }
|
|
|
|
// logSendClient.Send(&vagrant_server.EntrypointLogBatch{
|
|
// InstanceId: "1",
|
|
// Lines: entries,
|
|
// })
|
|
// }
|
|
// time.Sleep(100 * time.Millisecond)
|
|
|
|
// // Connect to the stream and download the logs
|
|
// logRecvClient, err := client.GetLogStream(ctx, &vagrant_server.GetLogStreamRequest{
|
|
// Scope: &vagrant_server.GetLogStreamRequest_Application_{
|
|
// Application: &vagrant_server.GetLogStreamRequest_Application{
|
|
// Application: refApp,
|
|
// Workspace: refWs,
|
|
// },
|
|
// },
|
|
// })
|
|
// require.NoError(err)
|
|
|
|
// // Get a batch
|
|
// batch, err := logRecvClient.Recv()
|
|
// require.NoError(err)
|
|
// require.NotEmpty(batch.Lines)
|
|
// require.Len(batch.Lines, 25)
|
|
// }
|