Upsert creates a new KMS and Updates PKI workers (#2187)

This commit is contained in:
Todd authored and GitHub committed 2022-06-15 08:27:08 -07:00
1 parent 06d0f99536
commit beecbbb8a2
25 files changed
+676 -709

No files matched your search

+13 -14
View File
@@ -45,8 +45,8 @@ func TestSessionConnectionCleanupJob(t *testing.T) {
// Create two "workers". One will remain untouched while the other "goes
// away and comes back" (worker 2).
worker1 := servers.TestWorker(t, conn, wrapper)
worker2 := servers.TestWorker(t, conn, wrapper)
worker1 := servers.TestKmsWorker(t, conn, wrapper)
worker2 := servers.TestKmsWorker(t, conn, wrapper)
// Create a few sessions on each, activate, and authorize a connection
var connIds []string
@@ -110,8 +110,9 @@ func TestSessionConnectionCleanupJob(t *testing.T) {
// Push an upsert to the first worker so that its status has been
// updated.
_, err = serversRepo.UpsertWorkerStatus(ctx, servers.NewWorkerForStatus(scope.Global.String(),
servers.WithName(worker1.GetWorkerReportedName()),
servers.WithAddress(worker1.GetWorkerReportedAddress())))
servers.WithName(worker1.GetName()),
servers.WithAddress(worker1.GetAddress())),
servers.WithPublicId(worker1.GetPublicId()))
require.NoError(err)
// Run the job.
@@ -198,10 +199,10 @@ func TestCloseConnectionsForDeadWorkers(t *testing.T) {
// firstly, the last worker will have no connections at all, and we will be
// closing the others in stages to test multiple servers being closed at
// once.
worker1 := servers.TestWorker(t, conn, wrapper)
worker2 := servers.TestWorker(t, conn, wrapper)
worker3 := servers.TestWorker(t, conn, wrapper)
worker4 := servers.TestWorker(t, conn, wrapper)
worker1 := servers.TestKmsWorker(t, conn, wrapper)
worker2 := servers.TestKmsWorker(t, conn, wrapper)
worker3 := servers.TestKmsWorker(t, conn, wrapper)
worker4 := servers.TestKmsWorker(t, conn, wrapper)
// Create sessions on the first three, activate, and authorize connections
var worker1ConnIds, worker2ConnIds, worker3ConnIds []string
@@ -292,11 +293,9 @@ func TestCloseConnectionsForDeadWorkers(t *testing.T) {
// the most up-to-date fields.
updateServer := func(t *testing.T, w *servers.Worker) *servers.Worker {
t.Helper()
// The worker provided name will derive the WorkerId every time
// UpsertWorkerStatus is called. Setting the Worker Id on the caller
// side is an error.
pubId := w.GetPublicId()
w.PublicId = ""
wkr, err := serversRepo.UpsertWorkerStatus(ctx, w)
wkr, err := serversRepo.UpsertWorkerStatus(ctx, w, servers.WithPublicId(pubId))
require.NoError(err)
return wkr
}
@@ -465,7 +464,7 @@ func TestCloseWorkerlessConnections(t *testing.T) {
}
// Setup deleted worker connections
deletedWorker := servers.TestWorker(t, conn, wrapper)
deletedWorker := servers.TestKmsWorker(t, conn, wrapper)
dActiveConn := createConnection(deletedWorker.GetPublicId())
dClosedConn := createConnection(deletedWorker.GetPublicId())
connRepo.closeConnections(ctx, []CloseWith{{
@@ -478,7 +477,7 @@ func TestCloseWorkerlessConnections(t *testing.T) {
require.NoError(err)
// Non deleted worker case
activeWorker := servers.TestWorker(t, conn, wrapper)
activeWorker := servers.TestKmsWorker(t, conn, wrapper)
activeConn := createConnection(activeWorker.GetPublicId())
closedConn := createConnection(activeWorker.GetPublicId())
connRepo.closeConnections(ctx, []CloseWith{{
@@ -359,8 +359,8 @@ func TestRepository_orphanedConnections(t *testing.T) {
// Create two "workers". One will remain untouched while the other "goes
// away and comes back" (worker 2).
worker1 := servers.TestWorker(t, conn, wrapper)
worker2 := servers.TestWorker(t, conn, wrapper)
worker1 := servers.TestKmsWorker(t, conn, wrapper)
worker2 := servers.TestKmsWorker(t, conn, wrapper)
// Create a few sessions on each, activate, and authorize a connection
var connIds []string
@@ -36,7 +36,7 @@ func TestService_AuthorizeConnection(t *testing.T) {
composedOf.ExpirationTime = exp
}
s := TestSession(t, conn, wrapper, composedOf)
srv := servers.TestWorker(t, conn, wrapper)
srv := servers.TestKmsWorker(t, conn, wrapper)
testServer = srv.PublicId
tofu := TestTofu(t)
_, _, err := repo.ActivateSession(context.Background(), s.PublicId, s.Version, tofu)
@@ -66,7 +66,7 @@ func TestWorkerStatusReport(t *testing.T) {
{
name: "No Sessions",
caseFn: func(t *testing.T) testCase {
worker := servers.TestWorker(t, conn, wrapper)
worker := servers.TestKmsWorker(t, conn, wrapper)
return testCase{
worker: worker,
req: []session.StateReport{},
@@ -77,7 +77,7 @@ func TestWorkerStatusReport(t *testing.T) {
{
name: "No Sessions already canceled",
caseFn: func(t *testing.T) testCase {
worker := servers.TestWorker(t, conn, wrapper)
worker := servers.TestKmsWorker(t, conn, wrapper)
sess := session.TestSession(t, conn, wrapper, session.ComposedOf{
UserId: uId,
HostId: h.GetPublicId(),
@@ -109,7 +109,7 @@ func TestWorkerStatusReport(t *testing.T) {
{
name: "Still Active",
caseFn: func(t *testing.T) testCase {
worker := servers.TestWorker(t, conn, wrapper)
worker := servers.TestKmsWorker(t, conn, wrapper)
sess := session.TestSession(t, conn, wrapper, session.ComposedOf{
UserId: uId,
HostId: h.GetPublicId(),
@@ -143,7 +143,7 @@ func TestWorkerStatusReport(t *testing.T) {
{
name: "SessionClosed",
caseFn: func(t *testing.T) testCase {
worker := servers.TestWorker(t, conn, wrapper)
worker := servers.TestKmsWorker(t, conn, wrapper)
sess := session.TestSession(t, conn, wrapper, session.ComposedOf{
UserId: uId,
HostId: h.GetPublicId(),
@@ -183,7 +183,7 @@ func TestWorkerStatusReport(t *testing.T) {
{
name: "MultipleSessionsClosed",
caseFn: func(t *testing.T) testCase {
worker := servers.TestWorker(t, conn, wrapper)
worker := servers.TestKmsWorker(t, conn, wrapper)
sess := session.TestSession(t, conn, wrapper, session.ComposedOf{
UserId: uId,
HostId: h.GetPublicId(),
@@ -250,7 +250,7 @@ func TestWorkerStatusReport(t *testing.T) {
{
name: "OrphanedConnection",
caseFn: func(t *testing.T) testCase {
worker := servers.TestWorker(t, conn, wrapper)
worker := servers.TestKmsWorker(t, conn, wrapper)
sess := session.TestSession(t, conn, wrapper, session.ComposedOf{
UserId: uId,
HostId: h.GetPublicId(),
@@ -301,7 +301,7 @@ func TestWorkerStatusReport(t *testing.T) {
{
name: "MultipleSessionsAndOrphanedConnections",
caseFn: func(t *testing.T) testCase {
worker := servers.TestWorker(t, conn, wrapper)
worker := servers.TestKmsWorker(t, conn, wrapper)
sess := session.TestSession(t, conn, wrapper, session.ComposedOf{
UserId: uId,
HostId: h.GetPublicId(),
+1 -1
View File
@@ -74,7 +74,7 @@ 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)
w := servers.TestKmsWorker(t, conn, wrapper)
require.NotNil(w)
}