use of org.apache.hadoop.ozone.protocol.commands.RegisteredCommand in project ozone by apache.
the class SCMDatanodeProtocolServer method register.
@Override
public SCMRegisteredResponseProto register(HddsProtos.ExtendedDatanodeDetailsProto extendedDatanodeDetailsProto, NodeReportProto nodeReport, ContainerReportsProto containerReportsProto, PipelineReportsProto pipelineReportsProto, LayoutVersionProto layoutInfo) throws IOException {
DatanodeDetails datanodeDetails = DatanodeDetails.getFromProtoBuf(extendedDatanodeDetailsProto);
boolean auditSuccess = true;
Map<String, String> auditMap = Maps.newHashMap();
auditMap.put("datanodeDetails", datanodeDetails.toString());
// TODO : Return the list of Nodes that forms the SCM HA.
RegisteredCommand registeredCommand = scm.getScmNodeManager().register(datanodeDetails, nodeReport, pipelineReportsProto, layoutInfo);
if (registeredCommand.getError() == SCMRegisteredResponseProto.ErrorCode.success) {
eventPublisher.fireEvent(CONTAINER_REPORT, new SCMDatanodeHeartbeatDispatcher.ContainerReportFromDatanode(datanodeDetails, containerReportsProto));
eventPublisher.fireEvent(SCMEvents.NODE_REGISTRATION_CONT_REPORT, new NodeRegistrationContainerReport(datanodeDetails, containerReportsProto));
eventPublisher.fireEvent(PIPELINE_REPORT, new PipelineReportFromDatanode(datanodeDetails, pipelineReportsProto));
}
try {
return getRegisteredResponse(registeredCommand);
} catch (Exception ex) {
auditSuccess = false;
AUDIT.logWriteFailure(buildAuditMessageForFailure(SCMAction.REGISTER, auditMap, ex));
throw ex;
} finally {
if (auditSuccess) {
AUDIT.logWriteSuccess(buildAuditMessageForSuccess(SCMAction.REGISTER, auditMap));
}
}
}
use of org.apache.hadoop.ozone.protocol.commands.RegisteredCommand in project ozone by apache.
the class TestSCMNodeManager method registerWithCapacity.
/**
* Create {@link DatanodeDetails} to register with {@code nodeManager}, and
* provide the datanode maximum capacity so that space used does not block
* pipeline creation. Also check that the result of registering matched
* {@code expectedResult}.
* @return The created {@link DatanodeDetails}.
*/
private DatanodeDetails registerWithCapacity(SCMNodeManager nodeManager, LayoutVersionProto layout, ErrorCode expectedResult) {
DatanodeDetails details = MockDatanodeDetails.randomDatanodeDetails();
StorageReportProto storageReport = HddsTestUtils.createStorageReport(details.getUuid(), details.getNetworkFullPath(), Long.MAX_VALUE);
MetadataStorageReportProto metadataStorageReport = HddsTestUtils.createMetadataStorageReport(details.getNetworkFullPath(), Long.MAX_VALUE);
RegisteredCommand cmd = nodeManager.register(MockDatanodeDetails.randomDatanodeDetails(), HddsTestUtils.createNodeReport(Arrays.asList(storageReport), Arrays.asList(metadataStorageReport)), getRandomPipelineReports(), layout);
Assert.assertEquals(expectedResult, cmd.getError());
return cmd.getDatanode();
}
Aggregations