org.apache.hadoop.yarn.api.protocolrecords.GetQueueInfoRequest Java Examples

The following examples show how to use org.apache.hadoop.yarn.api.protocolrecords.GetQueueInfoRequest. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ApplicationClientProtocolPBClientImpl.java    From hadoop with Apache License 2.0 5 votes vote down vote up
@Override
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request)
    throws YarnException, IOException {
  GetQueueInfoRequestProto requestProto =
      ((GetQueueInfoRequestPBImpl) request).getProto();
  try {
    return new GetQueueInfoResponsePBImpl(proxy.getQueueInfo(null,
      requestProto));
  } catch (ServiceException e) {
    RPCUtil.unwrapAndThrowException(e);
    return null;
  }
}
 
Example #2
Source File: YarnClientImpl.java    From hadoop with Apache License 2.0 5 votes vote down vote up
private GetQueueInfoRequest
    getQueueInfoRequest(String queueName, boolean includeApplications,
        boolean includeChildQueues, boolean recursive) {
  GetQueueInfoRequest request = Records.newRecord(GetQueueInfoRequest.class);
  request.setQueueName(queueName);
  request.setIncludeApplications(includeApplications);
  request.setIncludeChildQueues(includeChildQueues);
  request.setRecursive(recursive);
  return request;
}
 
Example #3
Source File: YarnClientImpl.java    From hadoop with Apache License 2.0 5 votes vote down vote up
@Override
public QueueInfo getQueueInfo(String queueName) throws YarnException,
    IOException {
  GetQueueInfoRequest request =
      getQueueInfoRequest(queueName, true, false, false);
  Records.newRecord(GetQueueInfoRequest.class);
  return rmClient.getQueueInfo(request).getQueueInfo();
}
 
Example #4
Source File: ProtocolHATestBase.java    From hadoop with Apache License 2.0 5 votes vote down vote up
@Override
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request)
    throws YarnException {
  resetStartFailoverFlag(true);

  // make sure failover has been triggered
  Assert.assertTrue(waittingForFailOver());

  // return fake QueueInfo
  return GetQueueInfoResponse.newInstance(createFakeQueueInfo());
}
 
Example #5
Source File: ProtocolHATestBase.java    From big-c with Apache License 2.0 5 votes vote down vote up
@Override
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request)
    throws YarnException {
  resetStartFailoverFlag(true);

  // make sure failover has been triggered
  Assert.assertTrue(waittingForFailOver());

  // return fake QueueInfo
  return GetQueueInfoResponse.newInstance(createFakeQueueInfo());
}
 
Example #6
Source File: YarnClientImpl.java    From big-c with Apache License 2.0 5 votes vote down vote up
@Override
public QueueInfo getQueueInfo(String queueName) throws YarnException,
    IOException {
  GetQueueInfoRequest request =
      getQueueInfoRequest(queueName, true, false, false);
  Records.newRecord(GetQueueInfoRequest.class);
  return rmClient.getQueueInfo(request).getQueueInfo();
}
 
Example #7
Source File: ApplicationClientProtocolPBClientImpl.java    From big-c with Apache License 2.0 5 votes vote down vote up
@Override
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request)
    throws YarnException, IOException {
  GetQueueInfoRequestProto requestProto =
      ((GetQueueInfoRequestPBImpl) request).getProto();
  try {
    return new GetQueueInfoResponsePBImpl(proxy.getQueueInfo(null,
      requestProto));
  } catch (ServiceException e) {
    RPCUtil.unwrapAndThrowException(e);
    return null;
  }
}
 
Example #8
Source File: YarnClientImpl.java    From big-c with Apache License 2.0 5 votes vote down vote up
private GetQueueInfoRequest
    getQueueInfoRequest(String queueName, boolean includeApplications,
        boolean includeChildQueues, boolean recursive) {
  GetQueueInfoRequest request = Records.newRecord(GetQueueInfoRequest.class);
  request.setQueueName(queueName);
  request.setIncludeApplications(includeApplications);
  request.setIncludeChildQueues(includeChildQueues);
  request.setRecursive(recursive);
  return request;
}
 
Example #9
Source File: ClientRMService.java    From hadoop with Apache License 2.0 4 votes vote down vote up
@Override
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request)
    throws YarnException {
  UserGroupInformation callerUGI;
  try {
    callerUGI = UserGroupInformation.getCurrentUser();
  } catch (IOException ie) {
    LOG.info("Error getting UGI ", ie);
    throw RPCUtil.getRemoteException(ie);
  }

  GetQueueInfoResponse response =
    recordFactory.newRecordInstance(GetQueueInfoResponse.class);
  try {
    QueueInfo queueInfo = 
      scheduler.getQueueInfo(request.getQueueName(),  
          request.getIncludeChildQueues(), 
          request.getRecursive());
    List<ApplicationReport> appReports = EMPTY_APPS_REPORT;
    if (request.getIncludeApplications()) {
      List<ApplicationAttemptId> apps =
          scheduler.getAppsInQueue(request.getQueueName());
      appReports = new ArrayList<ApplicationReport>(apps.size());
      for (ApplicationAttemptId app : apps) {
        RMApp rmApp = rmContext.getRMApps().get(app.getApplicationId());
        if (rmApp != null) {
          // Check if user is allowed access to this app
          if (!checkAccess(callerUGI, rmApp.getUser(),
              ApplicationAccessType.VIEW_APP, rmApp)) {
            continue;
          }
          appReports.add(
              rmApp.createAndGetApplicationReport(
                  callerUGI.getUserName(), true));
        }          
      }
    }
    queueInfo.setApplications(appReports);
    response.setQueueInfo(queueInfo);
  } catch (IOException ioe) {
    LOG.info("Failed to getQueueInfo for " + request.getQueueName(), ioe);
  }
  
  return response;
}
 
Example #10
Source File: TestClientRedirect.java    From big-c with Apache License 2.0 4 votes vote down vote up
@Override
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request)
    throws IOException {
  return null;
}
 
Example #11
Source File: TestYARNRunner.java    From big-c with Apache License 2.0 4 votes vote down vote up
@Test(timeout=20000)
public void testResourceMgrDelegate() throws Exception {
  /* we not want a mock of resource mgr delegate */
  final ApplicationClientProtocol clientRMProtocol = mock(ApplicationClientProtocol.class);
  ResourceMgrDelegate delegate = new ResourceMgrDelegate(conf) {
    @Override
    protected void serviceStart() throws Exception {
      assertTrue(this.client instanceof YarnClientImpl);
      ((YarnClientImpl) this.client).setRMClient(clientRMProtocol);
    }
  };
  /* make sure kill calls finish application master */
  when(clientRMProtocol.forceKillApplication(any(KillApplicationRequest.class)))
  .thenReturn(KillApplicationResponse.newInstance(true));
  delegate.killApplication(appId);
  verify(clientRMProtocol).forceKillApplication(any(KillApplicationRequest.class));

  /* make sure getalljobs calls get all applications */
  when(clientRMProtocol.getApplications(any(GetApplicationsRequest.class))).
  thenReturn(recordFactory.newRecordInstance(GetApplicationsResponse.class));
  delegate.getAllJobs();
  verify(clientRMProtocol).getApplications(any(GetApplicationsRequest.class));

  /* make sure getapplication report is called */
  when(clientRMProtocol.getApplicationReport(any(GetApplicationReportRequest.class)))
  .thenReturn(recordFactory.newRecordInstance(GetApplicationReportResponse.class));
  delegate.getApplicationReport(appId);
  verify(clientRMProtocol).getApplicationReport(any(GetApplicationReportRequest.class));

  /* make sure metrics is called */
  GetClusterMetricsResponse clusterMetricsResponse = recordFactory.newRecordInstance
      (GetClusterMetricsResponse.class);
  clusterMetricsResponse.setClusterMetrics(recordFactory.newRecordInstance(
      YarnClusterMetrics.class));
  when(clientRMProtocol.getClusterMetrics(any(GetClusterMetricsRequest.class)))
  .thenReturn(clusterMetricsResponse);
  delegate.getClusterMetrics();
  verify(clientRMProtocol).getClusterMetrics(any(GetClusterMetricsRequest.class));

  when(clientRMProtocol.getClusterNodes(any(GetClusterNodesRequest.class))).
  thenReturn(recordFactory.newRecordInstance(GetClusterNodesResponse.class));
  delegate.getActiveTrackers();
  verify(clientRMProtocol).getClusterNodes(any(GetClusterNodesRequest.class));
  
  GetNewApplicationResponse newAppResponse = recordFactory.newRecordInstance(
      GetNewApplicationResponse.class);
  newAppResponse.setApplicationId(appId);
  when(clientRMProtocol.getNewApplication(any(GetNewApplicationRequest.class))).
  thenReturn(newAppResponse);
  delegate.getNewJobID();
  verify(clientRMProtocol).getNewApplication(any(GetNewApplicationRequest.class));
  
  GetQueueInfoResponse queueInfoResponse = recordFactory.newRecordInstance(
      GetQueueInfoResponse.class);
  queueInfoResponse.setQueueInfo(recordFactory.newRecordInstance(QueueInfo.class));
  when(clientRMProtocol.getQueueInfo(any(GetQueueInfoRequest.class))).
  thenReturn(queueInfoResponse);
  delegate.getQueues();
  verify(clientRMProtocol).getQueueInfo(any(GetQueueInfoRequest.class));

  GetQueueUserAclsInfoResponse aclResponse = recordFactory.newRecordInstance(
      GetQueueUserAclsInfoResponse.class);
  when(clientRMProtocol.getQueueUserAcls(any(GetQueueUserAclsInfoRequest.class)))
  .thenReturn(aclResponse);
  delegate.getQueueAclsForCurrentUser();
  verify(clientRMProtocol).getQueueUserAcls(any(GetQueueUserAclsInfoRequest.class));
}
 
Example #12
Source File: TestClientRMService.java    From big-c with Apache License 2.0 4 votes vote down vote up
@Test
public void testGetQueueInfo() throws Exception {
  YarnScheduler yarnScheduler = mock(YarnScheduler.class);
  RMContext rmContext = mock(RMContext.class);
  mockRMContext(yarnScheduler, rmContext);

  ApplicationACLsManager mockAclsManager = mock(ApplicationACLsManager.class);
  QueueACLsManager mockQueueACLsManager = mock(QueueACLsManager.class);
  when(mockQueueACLsManager.checkAccess(any(UserGroupInformation.class),
      any(QueueACL.class), anyString())).thenReturn(true);
  when(mockAclsManager.checkAccess(any(UserGroupInformation.class),
      any(ApplicationAccessType.class), anyString(),
      any(ApplicationId.class))).thenReturn(true);

  ClientRMService rmService = new ClientRMService(rmContext, yarnScheduler,
      null, mockAclsManager, mockQueueACLsManager, null);
  GetQueueInfoRequest request = recordFactory
      .newRecordInstance(GetQueueInfoRequest.class);
  request.setQueueName("testqueue");
  request.setIncludeApplications(true);
  GetQueueInfoResponse queueInfo = rmService.getQueueInfo(request);
  List<ApplicationReport> applications = queueInfo.getQueueInfo()
      .getApplications();
  Assert.assertEquals(2, applications.size());
  request.setQueueName("nonexistentqueue");
  request.setIncludeApplications(true);
  // should not throw exception on nonexistent queue
  queueInfo = rmService.getQueueInfo(request);

  // Case where user does not have application access
  ApplicationACLsManager mockAclsManager1 =
      mock(ApplicationACLsManager.class);
  QueueACLsManager mockQueueACLsManager1 =
      mock(QueueACLsManager.class);
  when(mockQueueACLsManager1.checkAccess(any(UserGroupInformation.class),
      any(QueueACL.class), anyString())).thenReturn(false);
  when(mockAclsManager1.checkAccess(any(UserGroupInformation.class),
      any(ApplicationAccessType.class), anyString(),
      any(ApplicationId.class))).thenReturn(false);

  ClientRMService rmService1 = new ClientRMService(rmContext, yarnScheduler,
      null, mockAclsManager1, mockQueueACLsManager1, null);
  request.setQueueName("testqueue");
  request.setIncludeApplications(true);
  GetQueueInfoResponse queueInfo1 = rmService1.getQueueInfo(request);
  List<ApplicationReport> applications1 = queueInfo1.getQueueInfo()
      .getApplications();
  Assert.assertEquals(0, applications1.size());
}
 
Example #13
Source File: ClientRMService.java    From big-c with Apache License 2.0 4 votes vote down vote up
@Override
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request)
    throws YarnException {
  UserGroupInformation callerUGI;
  try {
    callerUGI = UserGroupInformation.getCurrentUser();
  } catch (IOException ie) {
    LOG.info("Error getting UGI ", ie);
    throw RPCUtil.getRemoteException(ie);
  }

  GetQueueInfoResponse response =
    recordFactory.newRecordInstance(GetQueueInfoResponse.class);
  try {
    QueueInfo queueInfo = 
      scheduler.getQueueInfo(request.getQueueName(),  
          request.getIncludeChildQueues(), 
          request.getRecursive());
    List<ApplicationReport> appReports = EMPTY_APPS_REPORT;
    if (request.getIncludeApplications()) {
      List<ApplicationAttemptId> apps =
          scheduler.getAppsInQueue(request.getQueueName());
      appReports = new ArrayList<ApplicationReport>(apps.size());
      for (ApplicationAttemptId app : apps) {
        RMApp rmApp = rmContext.getRMApps().get(app.getApplicationId());
        if (rmApp != null) {
          // Check if user is allowed access to this app
          if (!checkAccess(callerUGI, rmApp.getUser(),
              ApplicationAccessType.VIEW_APP, rmApp)) {
            continue;
          }
          appReports.add(
              rmApp.createAndGetApplicationReport(
                  callerUGI.getUserName(), true));
        }          
      }
    }
    queueInfo.setApplications(appReports);
    response.setQueueInfo(queueInfo);
  } catch (IOException ioe) {
    LOG.info("Failed to getQueueInfo for " + request.getQueueName(), ioe);
  }
  
  return response;
}
 
Example #14
Source File: TestClientRedirect.java    From hadoop with Apache License 2.0 4 votes vote down vote up
@Override
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request)
    throws IOException {
  return null;
}
 
Example #15
Source File: TestYARNRunner.java    From hadoop with Apache License 2.0 4 votes vote down vote up
@Test(timeout=20000)
public void testResourceMgrDelegate() throws Exception {
  /* we not want a mock of resource mgr delegate */
  final ApplicationClientProtocol clientRMProtocol = mock(ApplicationClientProtocol.class);
  ResourceMgrDelegate delegate = new ResourceMgrDelegate(conf) {
    @Override
    protected void serviceStart() throws Exception {
      assertTrue(this.client instanceof YarnClientImpl);
      ((YarnClientImpl) this.client).setRMClient(clientRMProtocol);
    }
  };
  /* make sure kill calls finish application master */
  when(clientRMProtocol.forceKillApplication(any(KillApplicationRequest.class)))
  .thenReturn(KillApplicationResponse.newInstance(true));
  delegate.killApplication(appId);
  verify(clientRMProtocol).forceKillApplication(any(KillApplicationRequest.class));

  /* make sure getalljobs calls get all applications */
  when(clientRMProtocol.getApplications(any(GetApplicationsRequest.class))).
  thenReturn(recordFactory.newRecordInstance(GetApplicationsResponse.class));
  delegate.getAllJobs();
  verify(clientRMProtocol).getApplications(any(GetApplicationsRequest.class));

  /* make sure getapplication report is called */
  when(clientRMProtocol.getApplicationReport(any(GetApplicationReportRequest.class)))
  .thenReturn(recordFactory.newRecordInstance(GetApplicationReportResponse.class));
  delegate.getApplicationReport(appId);
  verify(clientRMProtocol).getApplicationReport(any(GetApplicationReportRequest.class));

  /* make sure metrics is called */
  GetClusterMetricsResponse clusterMetricsResponse = recordFactory.newRecordInstance
      (GetClusterMetricsResponse.class);
  clusterMetricsResponse.setClusterMetrics(recordFactory.newRecordInstance(
      YarnClusterMetrics.class));
  when(clientRMProtocol.getClusterMetrics(any(GetClusterMetricsRequest.class)))
  .thenReturn(clusterMetricsResponse);
  delegate.getClusterMetrics();
  verify(clientRMProtocol).getClusterMetrics(any(GetClusterMetricsRequest.class));

  when(clientRMProtocol.getClusterNodes(any(GetClusterNodesRequest.class))).
  thenReturn(recordFactory.newRecordInstance(GetClusterNodesResponse.class));
  delegate.getActiveTrackers();
  verify(clientRMProtocol).getClusterNodes(any(GetClusterNodesRequest.class));
  
  GetNewApplicationResponse newAppResponse = recordFactory.newRecordInstance(
      GetNewApplicationResponse.class);
  newAppResponse.setApplicationId(appId);
  when(clientRMProtocol.getNewApplication(any(GetNewApplicationRequest.class))).
  thenReturn(newAppResponse);
  delegate.getNewJobID();
  verify(clientRMProtocol).getNewApplication(any(GetNewApplicationRequest.class));
  
  GetQueueInfoResponse queueInfoResponse = recordFactory.newRecordInstance(
      GetQueueInfoResponse.class);
  queueInfoResponse.setQueueInfo(recordFactory.newRecordInstance(QueueInfo.class));
  when(clientRMProtocol.getQueueInfo(any(GetQueueInfoRequest.class))).
  thenReturn(queueInfoResponse);
  delegate.getQueues();
  verify(clientRMProtocol).getQueueInfo(any(GetQueueInfoRequest.class));

  GetQueueUserAclsInfoResponse aclResponse = recordFactory.newRecordInstance(
      GetQueueUserAclsInfoResponse.class);
  when(clientRMProtocol.getQueueUserAcls(any(GetQueueUserAclsInfoRequest.class)))
  .thenReturn(aclResponse);
  delegate.getQueueAclsForCurrentUser();
  verify(clientRMProtocol).getQueueUserAcls(any(GetQueueUserAclsInfoRequest.class));
}
 
Example #16
Source File: TestClientRMService.java    From hadoop with Apache License 2.0 4 votes vote down vote up
@Test
public void testGetQueueInfo() throws Exception {
  YarnScheduler yarnScheduler = mock(YarnScheduler.class);
  RMContext rmContext = mock(RMContext.class);
  mockRMContext(yarnScheduler, rmContext);

  ApplicationACLsManager mockAclsManager = mock(ApplicationACLsManager.class);
  QueueACLsManager mockQueueACLsManager = mock(QueueACLsManager.class);
  when(mockQueueACLsManager.checkAccess(any(UserGroupInformation.class),
      any(QueueACL.class), anyString())).thenReturn(true);
  when(mockAclsManager.checkAccess(any(UserGroupInformation.class),
      any(ApplicationAccessType.class), anyString(),
      any(ApplicationId.class))).thenReturn(true);

  ClientRMService rmService = new ClientRMService(rmContext, yarnScheduler,
      null, mockAclsManager, mockQueueACLsManager, null);
  GetQueueInfoRequest request = recordFactory
      .newRecordInstance(GetQueueInfoRequest.class);
  request.setQueueName("testqueue");
  request.setIncludeApplications(true);
  GetQueueInfoResponse queueInfo = rmService.getQueueInfo(request);
  List<ApplicationReport> applications = queueInfo.getQueueInfo()
      .getApplications();
  Assert.assertEquals(2, applications.size());
  request.setQueueName("nonexistentqueue");
  request.setIncludeApplications(true);
  // should not throw exception on nonexistent queue
  queueInfo = rmService.getQueueInfo(request);

  // Case where user does not have application access
  ApplicationACLsManager mockAclsManager1 =
      mock(ApplicationACLsManager.class);
  QueueACLsManager mockQueueACLsManager1 =
      mock(QueueACLsManager.class);
  when(mockQueueACLsManager1.checkAccess(any(UserGroupInformation.class),
      any(QueueACL.class), anyString())).thenReturn(false);
  when(mockAclsManager1.checkAccess(any(UserGroupInformation.class),
      any(ApplicationAccessType.class), anyString(),
      any(ApplicationId.class))).thenReturn(false);

  ClientRMService rmService1 = new ClientRMService(rmContext, yarnScheduler,
      null, mockAclsManager1, mockQueueACLsManager1, null);
  request.setQueueName("testqueue");
  request.setIncludeApplications(true);
  GetQueueInfoResponse queueInfo1 = rmService1.getQueueInfo(request);
  List<ApplicationReport> applications1 = queueInfo1.getQueueInfo()
      .getApplications();
  Assert.assertEquals(0, applications1.size());
}
 
Example #17
Source File: ApplicationClientProtocol.java    From big-c with Apache License 2.0 3 votes vote down vote up
/**
 * <p>The interface used by clients to get information about <em>queues</em>
 * from the <code>ResourceManager</code>.</p>
 * 
 * <p>The client, via {@link GetQueueInfoRequest}, can ask for details such
 * as used/total resources, child queues, running applications etc.</p>
 *
 * <p> In secure mode,the <code>ResourceManager</code> verifies access before
 * providing the information.</p> 
 * 
 * @param request request to get queue information
 * @return queue information
 * @throws YarnException
 * @throws IOException
 */
@Public
@Stable
@Idempotent
public GetQueueInfoResponse getQueueInfo(
    GetQueueInfoRequest request) 
throws YarnException, IOException;
 
Example #18
Source File: ApplicationClientProtocol.java    From hadoop with Apache License 2.0 3 votes vote down vote up
/**
 * <p>The interface used by clients to get information about <em>queues</em>
 * from the <code>ResourceManager</code>.</p>
 * 
 * <p>The client, via {@link GetQueueInfoRequest}, can ask for details such
 * as used/total resources, child queues, running applications etc.</p>
 *
 * <p> In secure mode,the <code>ResourceManager</code> verifies access before
 * providing the information.</p> 
 * 
 * @param request request to get queue information
 * @return queue information
 * @throws YarnException
 * @throws IOException
 */
@Public
@Stable
@Idempotent
public GetQueueInfoResponse getQueueInfo(
    GetQueueInfoRequest request) 
throws YarnException, IOException;
 
Example #19
Source File: RMCommunicator.java    From jumbune with GNU Lesser General Public License v3.0 2 votes vote down vote up
/**
 * Gets the queue info.
 *
 * @param queueName the queue name
 * @return the queue info
 * @throws YarnException the yarn exception
 * @throws IOException Signals that an I/O exception has occurred.
 */
public QueueInfo getQueueInfo(String queueName)throws YarnException, IOException {
	return proxy.getQueueInfo(GetQueueInfoRequest.newInstance(queueName, true , true, true))
				.getQueueInfo();
}