Search in sources :

Example 1 with RegisteredCommand

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));
        }
    }
}
Also used : PipelineReportFromDatanode(org.apache.hadoop.hdds.scm.server.SCMDatanodeHeartbeatDispatcher.PipelineReportFromDatanode) DatanodeDetails(org.apache.hadoop.hdds.protocol.DatanodeDetails) RegisteredCommand(org.apache.hadoop.ozone.protocol.commands.RegisteredCommand) IOException(java.io.IOException)

Example 2 with RegisteredCommand

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();
}
Also used : MockDatanodeDetails.randomDatanodeDetails(org.apache.hadoop.hdds.protocol.MockDatanodeDetails.randomDatanodeDetails) MockDatanodeDetails(org.apache.hadoop.hdds.protocol.MockDatanodeDetails) MockDatanodeDetails.createDatanodeDetails(org.apache.hadoop.hdds.protocol.MockDatanodeDetails.createDatanodeDetails) DatanodeDetails(org.apache.hadoop.hdds.protocol.DatanodeDetails) MetadataStorageReportProto(org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.MetadataStorageReportProto) StorageReportProto(org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.StorageReportProto) RegisteredCommand(org.apache.hadoop.ozone.protocol.commands.RegisteredCommand) MetadataStorageReportProto(org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.MetadataStorageReportProto)

Aggregations

DatanodeDetails (org.apache.hadoop.hdds.protocol.DatanodeDetails)2 RegisteredCommand (org.apache.hadoop.ozone.protocol.commands.RegisteredCommand)2 IOException (java.io.IOException)1 MockDatanodeDetails (org.apache.hadoop.hdds.protocol.MockDatanodeDetails)1 MockDatanodeDetails.createDatanodeDetails (org.apache.hadoop.hdds.protocol.MockDatanodeDetails.createDatanodeDetails)1 MockDatanodeDetails.randomDatanodeDetails (org.apache.hadoop.hdds.protocol.MockDatanodeDetails.randomDatanodeDetails)1 MetadataStorageReportProto (org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.MetadataStorageReportProto)1 StorageReportProto (org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.StorageReportProto)1 PipelineReportFromDatanode (org.apache.hadoop.hdds.scm.server.SCMDatanodeHeartbeatDispatcher.PipelineReportFromDatanode)1