public RegisterNodeManagerResponse registerNode(
     List<NMContainerStatus> containerReports, List<ApplicationId> runningApplications)
     throws Exception {
   RegisterNodeManagerRequest req = Records.newRecord(RegisterNodeManagerRequest.class);
   req.setNodeId(nodeId);
   req.setHttpPort(httpPort);
   Resource resource = BuilderUtils.newResource(memory, vCores);
   req.setResource(resource);
   req.setContainerStatuses(containerReports);
   req.setNMVersion(version);
   req.setRunningApplications(runningApplications);
   RegisterNodeManagerResponse registrationResponse = resourceTracker.registerNodeManager(req);
   this.currentContainerTokenMasterKey = registrationResponse.getContainerTokenMasterKey();
   this.currentNMTokenMasterKey = registrationResponse.getNMTokenMasterKey();
   return registrationResponse;
 }