Upsert creates a new KMS and Updates PKI workers (#2187)
This commit is contained in:
25 files changed
+676
-709
No files matched your search
@@ -65,7 +65,9 @@ func (ws *workerServiceServer) Status(ctx context.Context, req *pbs.StatusReques
|
||||
}
|
||||
switch {
|
||||
case wStat.GetName() == "" && wStat.GetKeyId() == "":
|
||||
return &pbs.StatusResponse{}, status.Error(codes.InvalidArgument, "Name and keyId are not set in the request; at least one is required.")
|
||||
return &pbs.StatusResponse{}, status.Error(codes.InvalidArgument, "Name and keyId are not set in the request; one is required.")
|
||||
case wStat.GetName() != "" && wStat.GetKeyId() != "":
|
||||
return &pbs.StatusResponse{}, status.Error(codes.InvalidArgument, "Name and keyId are both set in the request; only one is allowed.")
|
||||
case wStat.GetAddress() == "":
|
||||
return &pbs.StatusResponse{}, status.Error(codes.InvalidArgument, "Address is not set but is required.")
|
||||
}
|
||||
@@ -88,17 +90,17 @@ func (ws *workerServiceServer) Status(ctx context.Context, req *pbs.StatusReques
|
||||
})
|
||||
}
|
||||
|
||||
wKeyId := wStat.GetKeyId()
|
||||
|
||||
wConf := servers.NewWorkerForStatus(scope.Global.String(),
|
||||
wConf := servers.NewWorker(scope.Global.String(),
|
||||
servers.WithName(wStat.GetName()),
|
||||
servers.WithAddress(wStat.GetAddress()),
|
||||
servers.WithWorkerTags(workerTags...),
|
||||
servers.WithKeyId(wKeyId))
|
||||
servers.WithWorkerTags(workerTags...))
|
||||
opts := []servers.Option{servers.WithUpdateTags(req.GetUpdateTags())}
|
||||
if wStat.GetPublicId() != "" {
|
||||
opts = append(opts, servers.WithPublicId(wStat.GetPublicId()))
|
||||
}
|
||||
if wStat.GetKeyId() != "" {
|
||||
opts = append(opts, servers.WithKeyId(wStat.GetKeyId()))
|
||||
}
|
||||
wrk, err := serverRepo.UpsertWorkerStatus(ctx, wConf, opts...)
|
||||
if err != nil {
|
||||
event.WriteError(ctx, op, err, event.WithInfoMsg("error storing worker status"))
|
||||
@@ -229,7 +231,7 @@ func (ws *workerServiceServer) LookupSession(ctx context.Context, req *pbs.Looku
|
||||
}
|
||||
var w *servers.Worker
|
||||
if req.WorkerKeyId != "" {
|
||||
workerId, err := serversRepo.LookupWorkerIdByWorkerReportedKeyId(ctx, req.WorkerKeyId)
|
||||
workerId, err := serversRepo.LookupWorkerIdByKeyId(ctx, req.WorkerKeyId)
|
||||
if err != nil {
|
||||
event.WriteError(ctx, op, err, event.WithInfoMsg("error looking up worker by keyId", "keyId", req.WorkerKeyId))
|
||||
return &pbs.LookupSessionResponse{}, status.Errorf(codes.Internal, "Error looking up tags for server: %v", err)
|
||||
@@ -240,7 +242,7 @@ func (ws *workerServiceServer) LookupSession(ctx context.Context, req *pbs.Looku
|
||||
return &pbs.LookupSessionResponse{}, status.Errorf(codes.Internal, "Error looking up tags for server: %v", err)
|
||||
}
|
||||
} else {
|
||||
w, err = serversRepo.LookupWorkerByWorkerReportedName(ctx, req.GetServerId())
|
||||
w, err = serversRepo.LookupWorkerByName(ctx, req.GetServerId())
|
||||
if err != nil {
|
||||
event.WriteError(ctx, op, err, event.WithInfoMsg("error looking up worker by name", "name", req.ServerId))
|
||||
return &pbs.LookupSessionResponse{}, status.Errorf(codes.Internal, "Error looking up tags for server: %v", err)
|
||||
@@ -255,12 +257,8 @@ func (ws *workerServiceServer) LookupSession(ctx context.Context, req *pbs.Looku
|
||||
event.WriteError(ctx, op, err, event.WithInfoMsg("error creating worker filter evaluator", "server_id", req.ServerId))
|
||||
return &pbs.LookupSessionResponse{}, status.Errorf(codes.Internal, "Error creating worker filter evaluator: %v", err)
|
||||
}
|
||||
name := w.GetName()
|
||||
if name == "" {
|
||||
name = w.GetWorkerReportedName()
|
||||
}
|
||||
filterInput := map[string]interface{}{
|
||||
"name": name,
|
||||
"name": w.GetName(),
|
||||
"tags": tagMap,
|
||||
}
|
||||
ok, err := eval.Evaluate(filterInput)
|
||||
@@ -391,7 +389,7 @@ func (ws *workerServiceServer) AuthorizeConnection(ctx context.Context, req *pbs
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.Internal, "error getting servers repo: %v", err)
|
||||
}
|
||||
w, err := serversRepo.LookupWorkerByWorkerReportedName(ctx, req.GetWorkerId())
|
||||
w, err := serversRepo.LookupWorkerByName(ctx, req.GetWorkerId())
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.Internal, "error looking up worker: %v", err)
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ func TestStatus(t *testing.T) {
|
||||
target.WithSessionConnectionLimit(-1),
|
||||
)
|
||||
|
||||
worker1 := servers.TestWorker(t, conn, wrapper)
|
||||
worker1 := servers.TestKmsWorker(t, conn, wrapper)
|
||||
|
||||
sess := session.TestSession(t, conn, wrapper, session.ComposedOf{
|
||||
UserId: uId,
|
||||
@@ -257,7 +257,7 @@ func TestStatusSessionClosed(t *testing.T) {
|
||||
target.WithSessionConnectionLimit(-1),
|
||||
)
|
||||
|
||||
worker1 := servers.TestWorker(t, conn, wrapper)
|
||||
worker1 := servers.TestKmsWorker(t, conn, wrapper)
|
||||
|
||||
sess := session.TestSession(t, conn, wrapper, session.ComposedOf{
|
||||
UserId: uId,
|
||||
@@ -408,7 +408,7 @@ func TestStatusDeadConnection(t *testing.T) {
|
||||
Address: "127.0.0.1",
|
||||
})
|
||||
|
||||
worker1 := servers.TestWorker(t, conn, wrapper)
|
||||
worker1 := servers.TestKmsWorker(t, conn, wrapper)
|
||||
|
||||
serversRepoFn := func() (*servers.Repository, error) {
|
||||
return serverRepo, nil
|
||||
@@ -578,7 +578,7 @@ func TestStatusWorkerWithKeyId(t *testing.T) {
|
||||
target.WithSessionConnectionLimit(-1),
|
||||
)
|
||||
|
||||
worker1 := servers.TestWorker(t, conn, wrapper)
|
||||
worker1 := servers.TestKmsWorker(t, conn, wrapper)
|
||||
|
||||
rootStorage, err := servers.NewRepositoryStorage(ctx, rw, rw, kms)
|
||||
require.NoError(t, err)
|
||||
|
||||
Reference in new issue
Block a user