* Remove the server_id from session table, change it to worker_id on session_connection
This is step 1 in updating the worker table. The worker is becoming a public resource so it must have
a public id. We drop the server_id column on the session_connection table and add the worker_id column
so we can use the wt_public_key type. Since db migrations are applied while the controller is offline,
it should be safe to assume all session connections are not in a running state, thus allowing us to null
out all the worker ids in the session_connection table.
For now we don't have very good enforcement of the wt_public_id contraints, since the id is currently
defined in the worker config, but this will soon change and the worker's id will be generated by the
controller.
* Adding worker tag db writing test.
* Move the server table back to the top.
* Update comment for the worker object.
* Update comment for the worker table.
* Add worker tag sources ("config" or "api")
* Revert renaming of UpsertWorker until later.
* Remove no longer needed files.
* Moving the TestWorker into the servers package. Fix the worker tags test.
* Update internal/proto/controller/storage/servers/store/v1/worker.proto
Co-authored-by: Irena Rindos <irenarindos@users.noreply.github.com>
* Place the repos back together so they can be refactored in a different PR.
Co-authored-by: Irena Rindos <irenarindos@users.noreply.github.com>
93 lines
2.6 KiB
Go
93 lines
2.6 KiB
Go
package session
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/boundary/internal/db"
|
|
"github.com/hashicorp/boundary/internal/iam"
|
|
"github.com/hashicorp/boundary/internal/servers"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func Test_TestSession(t *testing.T) {
|
|
assert, require := assert.New(t), require.New(t)
|
|
conn, _ := db.TestSetup(t, "postgres")
|
|
wrapper := db.TestWrapper(t)
|
|
iamRepo := iam.TestRepo(t, conn, wrapper)
|
|
s := TestDefaultSession(t, conn, wrapper, iamRepo)
|
|
require.NotNil(s)
|
|
assert.NotEmpty(s.PublicId)
|
|
}
|
|
|
|
func Test_TestState(t *testing.T) {
|
|
assert, require := assert.New(t), require.New(t)
|
|
conn, _ := db.TestSetup(t, "postgres")
|
|
wrapper := db.TestWrapper(t)
|
|
iamRepo := iam.TestRepo(t, conn, wrapper)
|
|
s := TestDefaultSession(t, conn, wrapper, iamRepo)
|
|
require.NotNil(s)
|
|
assert.NotEmpty(s.PublicId)
|
|
|
|
state := TestState(t, conn, s.PublicId, StatusActive)
|
|
require.NotNil(state)
|
|
}
|
|
|
|
func Test_TestConnection(t *testing.T) {
|
|
assert, require := assert.New(t), require.New(t)
|
|
conn, _ := db.TestSetup(t, "postgres")
|
|
wrapper := db.TestWrapper(t)
|
|
iamRepo := iam.TestRepo(t, conn, wrapper)
|
|
s := TestDefaultSession(t, conn, wrapper, iamRepo)
|
|
require.NotNil(s)
|
|
assert.NotEmpty(s.PublicId)
|
|
|
|
c := TestConnection(t, conn, s.PublicId, "127.0.0.1", 6500, "127.0.0.1", 22, "127.0.0.1")
|
|
require.NotNil(c)
|
|
}
|
|
|
|
func Test_TestConnectionState(t *testing.T) {
|
|
assert, require := assert.New(t), require.New(t)
|
|
conn, _ := db.TestSetup(t, "postgres")
|
|
wrapper := db.TestWrapper(t)
|
|
iamRepo := iam.TestRepo(t, conn, wrapper)
|
|
s := TestDefaultSession(t, conn, wrapper, iamRepo)
|
|
require.NotNil(s)
|
|
assert.NotEmpty(s.PublicId)
|
|
|
|
c := TestConnection(t, conn, s.PublicId, "0.0.0.0", 22, "0.0.0.0", 2222, "127.0.0.1")
|
|
require.NotNil(c)
|
|
assert.NotEmpty(c.PublicId)
|
|
|
|
cs := TestConnectionState(t, conn, c.PublicId, StatusClosed)
|
|
require.NotNil(cs)
|
|
|
|
rw := db.New(conn)
|
|
var initialState ConnectionState
|
|
err := rw.LookupWhere(context.Background(), &initialState, "connection_id = ? and state = ?", []interface{}{cs.ConnectionId, cs.Status})
|
|
require.NoError(err)
|
|
assert.NotEmpty(initialState.StartTime)
|
|
}
|
|
|
|
func Test_TestWorker(t *testing.T) {
|
|
require := require.New(t)
|
|
conn, _ := db.TestSetup(t, "postgres")
|
|
wrapper := db.TestWrapper(t)
|
|
w := servers.TestWorker(t, conn, wrapper)
|
|
require.NotNil(w)
|
|
}
|
|
|
|
func Test_TestCert(t *testing.T) {
|
|
assert, require := assert.New(t), require.New(t)
|
|
wrapper := db.TestWrapper(t)
|
|
userId, err := db.NewPublicId(iam.UserPrefix)
|
|
require.NoError(err)
|
|
sessionId, err := newId()
|
|
require.NoError(err)
|
|
key, cert, err := TestCert(wrapper, userId, sessionId)
|
|
require.NoError(err)
|
|
assert.NotNil(key)
|
|
assert.NotNil(cert)
|
|
}
|