@GET @Path(RMWSConsts.APPS_TIMEOUTS_TYPE) @Produces({ MediaType.APPLICATION_JSON + "; " + JettyUtils.UTF_8, MediaType.APPLICATION_XML + "; " + JettyUtils.UTF_8 }) @Override public AppTimeoutInfo getAppTimeout(@Context HttpServletRequest hsr, @PathParam(RMWSConsts.APPID) String appId, @PathParam(RMWSConsts.TYPE) String type) throws AuthorizationException { initForReadableEndpoints(); RMApp app = validateAppTimeoutRequest(hsr, appId); ApplicationTimeoutType appTimeoutType = parseTimeoutType(type); Long timeoutValue = app.getApplicationTimeouts().get(appTimeoutType); AppTimeoutInfo timeout = constructAppTimeoutDao(appTimeoutType, timeoutValue); return timeout; }
@GET @Path(RMWSConsts.APPS_TIMEOUTS) @Produces({ MediaType.APPLICATION_JSON + "; " + JettyUtils.UTF_8, MediaType.APPLICATION_XML + "; " + JettyUtils.UTF_8 }) @Override public AppTimeoutsInfo getAppTimeouts(@Context HttpServletRequest hsr, @PathParam(RMWSConsts.APPID) String appId) throws AuthorizationException { initForReadableEndpoints(); RMApp app = validateAppTimeoutRequest(hsr, appId); AppTimeoutsInfo timeouts = new AppTimeoutsInfo(); Map<ApplicationTimeoutType, Long> applicationTimeouts = app.getApplicationTimeouts(); if (applicationTimeouts.isEmpty()) { // If application is not set timeout, lifetime should be sent as default // with expiryTime=UNLIMITED and remainingTime=-1 timeouts .add(constructAppTimeoutDao(ApplicationTimeoutType.LIFETIME, null)); } else { for (Entry<ApplicationTimeoutType, Long> timeout : app .getApplicationTimeouts().entrySet()) { AppTimeoutInfo timeoutInfo = constructAppTimeoutDao(timeout.getKey(), timeout.getValue()); timeouts.add(timeoutInfo); } } return timeouts; }
app.getApplicationTimeouts().get(appTimeout.getTimeoutType())); return Response.status(Status.OK).entity(timeout).build();
app.getApplicationTimeouts(); currentExpireTimeouts.putAll(newExpireTime);
rmApp.getApplicationSubmissionContext(), rmApp.getUser(), rmApp.getCallerContext()); appState.setApplicationTimeouts(rmApp.getApplicationTimeouts()); rmContext.getStateStore().updateApplicationStateSynchronously(appState, false, future);
private void updateAppDataToStateStore(String queue, RMApp app, boolean toSuppressException) throws YarnException { // Create a future object to capture exceptions from StateStore. SettableFuture<Object> future = SettableFuture.create(); // Update new queue in Submission Context to update to StateStore. app.getApplicationSubmissionContext().setQueue(queue); ApplicationStateData appState = ApplicationStateData.newInstance( app.getSubmitTime(), app.getStartTime(), app.getApplicationSubmissionContext(), app.getUser(), app.getCallerContext()); appState.setApplicationTimeouts(app.getApplicationTimeouts()); rmContext.getStateStore().updateApplicationStateSynchronously(appState, false, future); try { getChecked(future); } catch (YarnException ex) { if (!toSuppressException) { throw ex; } LOG.error("Statestore update failed for move application '" + app.getApplicationId() + "' to queue '" + queue + "' with below exception:" + ex.getMessage()); } }
/** * Non-Blocking API * ResourceManager services use this to store the application's state * This does not block the dispatcher threads * RMAppStoredEvent will be sent on completion to notify the RMApp */ @SuppressWarnings("unchecked") public void storeNewApplication(RMApp app) { ApplicationSubmissionContext context = app .getApplicationSubmissionContext(); assert context instanceof ApplicationSubmissionContextPBImpl; ApplicationStateData appState = ApplicationStateData.newInstance(app.getSubmitTime(), app.getStartTime(), context, app.getUser(), app.getCallerContext()); appState.setApplicationTimeouts(app.getApplicationTimeouts()); getRMStateStoreEventHandler().handle(new RMStateStoreAppEvent(appState)); }
app1.getApplicationTimeouts(); applicationTimeouts = app1.getApplicationTimeouts();
app.getApplicationTimeouts(); timeouts = new AppTimeoutsInfo(); if (applicationTimeouts.isEmpty()) { } else { for (Map.Entry<ApplicationTimeoutType, Long> entry : app .getApplicationTimeouts().entrySet()) { AppTimeoutInfo timeout = new AppTimeoutInfo(); timeout.setTimeoutType(entry.getKey());
app2.getApplicationTimeouts(); app2.getApplicationTimeouts(); long afterUpdate = applicationTimeouts.get(ApplicationTimeoutType.LIFETIME);