Skip to content

Commit

Permalink
~ preserve DiagnosticsContext in DefaultNodeManagementServiceSet serv…
Browse files Browse the repository at this point in the history
…ices
  • Loading branch information
kevinherron committed Apr 3, 2024
1 parent 68de01c commit 0f3962a
Showing 1 changed file with 28 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -140,23 +140,28 @@ private AddNodesResponse addNodes(
throw new UaException(StatusCodes.Bad_TooManyOperations);
}

var diagnosticsContext = new DiagnosticsContext<AddNodesItem>();

var addNodesContext = new AddNodesContext(
server,
session,
new DiagnosticsContext<>(),
diagnosticsContext,
request.getRequestHeader().getAuditEntryId(),
request.getRequestHeader().getTimeoutHint(),
request.getRequestHeader().getAdditionalHeader()
);

List<AddNodesResult> results = server.getAddressSpaceManager().addNodes(addNodesContext, nodesToAdd);

DiagnosticInfo[] diagnosticInfos =
diagnosticsContext.getDiagnosticInfos(nodesToAdd);

ResponseHeader header = createResponseHeader(request);

return new AddNodesResponse(
header,
results.toArray(AddNodesResult[]::new),
new DiagnosticInfo[0]
diagnosticInfos
);
}

Expand All @@ -173,6 +178,8 @@ private DeleteNodesResponse deleteNodes(
throw new UaException(StatusCodes.Bad_TooManyOperations);
}

var diagnosticsContext = new DiagnosticsContext<DeleteNodesItem>();

Map<DeleteNodesItem, AccessResult> accessResults =
server.getAccessController().checkDeleteNodesAccess(session, nodesToDelete);

Expand All @@ -184,7 +191,7 @@ private DeleteNodesResponse deleteNodes(
var deleteNodesContext = new DeleteNodesContext(
server,
session,
new DiagnosticsContext<>(),
diagnosticsContext,
request.getRequestHeader().getAuditEntryId(),
request.getRequestHeader().getTimeoutHint(),
request.getRequestHeader().getAdditionalHeader()
Expand All @@ -197,12 +204,15 @@ private DeleteNodesResponse deleteNodes(
}
);

DiagnosticInfo[] diagnosticInfos =
diagnosticsContext.getDiagnosticInfos(nodesToDelete);

ResponseHeader header = createResponseHeader(request);

return new DeleteNodesResponse(
header,
results.toArray(StatusCode[]::new),
new DiagnosticInfo[0]
diagnosticInfos
);
}

Expand All @@ -219,6 +229,8 @@ private AddReferencesResponse addReferences(
throw new UaException(StatusCodes.Bad_TooManyOperations);
}

var diagnosticsContext = new DiagnosticsContext<AddReferencesItem>();

Map<AddReferencesItem, AccessResult> accessResults =
server.getAccessController().checkAddReferencesAccess(session, referencesToAdd);

Expand All @@ -230,7 +242,7 @@ private AddReferencesResponse addReferences(
var addReferencesContext = new AddReferencesContext(
server,
session,
new DiagnosticsContext<>(),
diagnosticsContext,
request.getRequestHeader().getAuditEntryId(),
request.getRequestHeader().getTimeoutHint(),
request.getRequestHeader().getAdditionalHeader()
Expand All @@ -243,12 +255,15 @@ private AddReferencesResponse addReferences(
}
);

DiagnosticInfo[] diagnosticInfos =
diagnosticsContext.getDiagnosticInfos(referencesToAdd);

ResponseHeader header = createResponseHeader(request);

return new AddReferencesResponse(
header,
results.toArray(new StatusCode[0]),
new DiagnosticInfo[0]
diagnosticInfos
);
}

Expand All @@ -265,6 +280,8 @@ private DeleteReferencesResponse deleteReferences(
throw new UaException(StatusCodes.Bad_TooManyOperations);
}

var diagnosticsContext = new DiagnosticsContext<DeleteReferencesItem>();

Map<DeleteReferencesItem, AccessResult> accessResults =
server.getAccessController().checkDeleteReferencesAccess(session, referencesToDelete);

Expand All @@ -276,7 +293,7 @@ private DeleteReferencesResponse deleteReferences(
var deleteReferencesContext = new DeleteReferencesContext(
server,
session,
new DiagnosticsContext<>(),
diagnosticsContext,
request.getRequestHeader().getAuditEntryId(),
request.getRequestHeader().getTimeoutHint(),
request.getRequestHeader().getAdditionalHeader()
Expand All @@ -289,12 +306,15 @@ private DeleteReferencesResponse deleteReferences(
}
);

DiagnosticInfo[] diagnosticInfos =
diagnosticsContext.getDiagnosticInfos(referencesToDelete);

ResponseHeader header = createResponseHeader(request);

return new DeleteReferencesResponse(
header,
results.toArray(StatusCode[]::new),
new DiagnosticInfo[0]
diagnosticInfos
);
}

Expand Down

0 comments on commit 0f3962a

Please sign in to comment.