TEST(TestContainerManagement,TestGetContainerStatus){ ContainerManagement client; MockContainerManagementStub stub; string nmHost("localhost"); string nmPort("8032"); string tokenService = ""; Yarn::Config config; Yarn::Internal::SessionConfig sessionConfig(config); Yarn::Internal::UserInfo user = Yarn::Internal::UserInfo::LocalUser(); Yarn::Internal::RpcAuth rpcAuth(user, Yarn::Internal::AuthMethod::SIMPLE); MockContainerManagementProtocol *protocol =new MockContainerManagementProtocol(nmHost,nmPort,tokenService,sessionConfig,rpcAuth); GetContainerStatusesResponse getResponse; ContainerId containerId; containerId.setId(501); ContainerStatus status; status.setContainerId(containerId); list<ContainerStatus> statuses; statuses.push_back(status); getResponse.setContainerStatuses(statuses); EXPECT_CALL(*protocol, getContainerStatuses(_)).Times(AnyNumber()).WillOnce(Return(getResponse)); client.stub = &stub; EXPECT_CALL(stub, getContainerManagementProtocol()).Times(AnyNumber()).WillOnce(Return(protocol)); Container container; libyarn::Token nmToken; ContainerStatus retStatus = client.getContainerStatus(container,nmToken); EXPECT_EQ(status.getContainerId().getId(), 501); }
TEST(TestContainerManagement,TestStartContainer){ ContainerManagement client; MockContainerManagementStub stub; string nmHost("localhost"); string nmPort("8032"); string tokenService = ""; Yarn::Config config; Yarn::Internal::SessionConfig sessionConfig(config); Yarn::Internal::UserInfo user = Yarn::Internal::UserInfo::LocalUser(); Yarn::Internal::RpcAuth rpcAuth(user, Yarn::Internal::AuthMethod::SIMPLE); MockContainerManagementProtocol *protocol =new MockContainerManagementProtocol(nmHost,nmPort,tokenService,sessionConfig,rpcAuth); StringBytesMap map; string key("key"); string value("value"); map.setKey(key); map.setValue(value); list<StringBytesMap> maps; maps.push_back(map); ContainerId containerId; containerId.setId(501); list<ContainerId> containerIds; containerIds.push_back(containerId); ContainerExceptionMap exceptionMap; exceptionMap.setContainerId(containerId); SerializedException exception; string message("message"); string trace("trace"); string className("className"); exception.setMessage(message); exception.setTrace(trace); exception.setClassName(className); SerializedException cause; string message2("message2"); cause.setMessage(message2); exception.setCause(cause); exceptionMap.setSerializedException(exception); list<ContainerExceptionMap> exceptionMaps; exceptionMaps.push_back(exceptionMap); StartContainersResponse response; response.setServicesMetaData(maps); response.setSucceededRequests(containerIds); response.setFailedRequests(exceptionMaps); EXPECT_CALL(*protocol, startContainers(_)).Times(AnyNumber()).WillOnce(Return(response)); client.stub = &stub; EXPECT_CALL(stub, getContainerManagementProtocol()).Times(AnyNumber()).WillOnce(Return(protocol)); Container container; StartContainerRequest request; libyarn::Token nmToken; StartContainerResponse ret = client.startContainer(container,request,nmToken); list<StringBytesMap>::iterator itMap = ret.getServicesMetaData().begin(); //EXPECT_EQ(itMap->getKey(), "key"); //EXPECT_EQ(itMap->getValue(), "value"); }
TestApplicationClient(){ string user("postgres"); string rmHost("localhost"); string rmPort("8032"); string tokenService = ""; Yarn::Config config; Yarn::Internal::SessionConfig sessionConfig(config); MockApplicationClientProtocol *protocol = new MockApplicationClientProtocol(user,rmHost,rmPort,tokenService, sessionConfig); ApplicationId appId; appId.setId(100); appId.setClusterTimestamp(1454307175682); GetNewApplicationResponse getNewApplicationResponse; getNewApplicationResponse.setApplicationId(appId); EXPECT_CALL((*protocol),getNewApplication(_)).Times(AnyNumber()).WillOnce(Return(getNewApplicationResponse)); EXPECT_CALL((*protocol),submitApplication(_)).Times(AnyNumber()).WillOnce(Return()); ApplicationReport appReport; appReport.setApplicationId(appId); appReport.setUser(user); string queue("default"); string appName("hawq"); string hostname("master"); appReport.setQueue(queue); appReport.setName(appName); appReport.setHost(hostname); appReport.setRpcPort(8090); appReport.setProgress(0.5); GetApplicationReportResponse appReportResponse; appReportResponse.setApplicationReport(appReport); EXPECT_CALL((*protocol),getApplicationReport(_)).Times(AnyNumber()).WillOnce(Return(appReportResponse)); ContainerId containerId; containerId.setId(501); containerId.setApplicationId(appId); Resource resource; resource.setMemory(1024); resource.setVirtualCores(1); Priority priority; priority.setPriority(1); ContainerReport report; report.setId(containerId); report.setResource(resource); report.setPriority(priority); list<ContainerReport> reportList; reportList.push_back(report); GetContainersResponse getContainersResponse; getContainersResponse.setContainersReportList(reportList); EXPECT_CALL((*protocol),getContainers(_)).Times(AnyNumber()).WillOnce(Return(getContainersResponse)); NodeId nodeId; string nodeHost("node1"); nodeId.setHost(nodeHost); nodeId.setPort(9983); NodeReport nodeReport; nodeReport.setNodeId(nodeId); string rackName("default-rack"); nodeReport.setRackName(rackName); nodeReport.setNumContainers(8); Resource nodeResource; nodeResource.setMemory(2048*8); nodeResource.setVirtualCores(8); nodeReport.setResourceCapablity(nodeResource); nodeReport.setNodeState(NodeState::NS_RUNNING); list<NodeReport> nodeReportList; nodeReportList.push_back(nodeReport); GetClusterNodesResponse getClusterNodesResponse; getClusterNodesResponse.setNodeReports(nodeReportList); EXPECT_CALL((*protocol),getClusterNodes(_)).Times(AnyNumber()).WillOnce(Return(getClusterNodesResponse)); QueueInfo queueInfo; queueInfo.setQueueName(queue); queueInfo.setCapacity(0.67); queueInfo.setMaximumCapacity(0.95); queueInfo.setCurrentCapacity(0.5); queueInfo.setQueueState(QueueState::Q_RUNNING); QueueInfo childQueue; string childQueueName("hawq-queue"); childQueue.setQueueName(childQueueName); childQueue.setCapacity(0.33); childQueue.setMaximumCapacity(0.5); childQueue.setCurrentCapacity(0.25); list<QueueInfo> childQueueList; childQueueList.push_back(childQueue); queueInfo.setChildQueues(childQueueList); list<ApplicationReport> appReportList; appReportList.push_back(appReport); queueInfo.setApplicationReports(appReportList); GetQueueInfoResponse getQueueInfoResponse; getQueueInfoResponse.setQueueInfo(queueInfo); EXPECT_CALL((*protocol),getQueueInfo(_)).Times(AnyNumber()).WillOnce(Return(getQueueInfoResponse)); KillApplicationResponseProto killApplicationResponseProto; EXPECT_CALL((*protocol),forceKillApplication(_)).Times(AnyNumber()).WillOnce(Return(KillApplicationResponse(killApplicationResponseProto))); YarnClusterMetrics metrics; metrics.setNumNodeManagers(10); GetClusterMetricsResponse clusterMetricsResponse; clusterMetricsResponse.setClusterMetrics(metrics); EXPECT_CALL((*protocol),getClusterMetrics(_)).Times(AnyNumber()).WillOnce(Return(clusterMetricsResponse)); GetApplicationsResponse applicationsResponse; applicationsResponse.setApplicationList(appReportList); EXPECT_CALL((*protocol),getApplications(_)).Times(AnyNumber()).WillOnce(Return(applicationsResponse)); QueueUserACLInfo aclInfo; aclInfo.setQueueName(queue); list<QueueACL> queueACLList; QueueACL acl1 = QueueACL::QACL_ADMINISTER_QUEUE; QueueACL acl2 = QueueACL::QACL_SUBMIT_APPLICATIONS; queueACLList.push_back(acl1); queueACLList.push_back(acl2); aclInfo.setUserAcls(queueACLList); list<QueueUserACLInfo> aclInfoList; aclInfoList.push_back(aclInfo); GetQueueUserAclsInfoResponse queueUserAclsInfoResponse; queueUserAclsInfoResponse.setUserAclsInfoList(aclInfoList); EXPECT_CALL((*protocol),getQueueAclsInfo(_)).Times(AnyNumber()).WillOnce(Return(queueUserAclsInfoResponse)); client = new ApplicationClient(protocol); }
void ContainerExceptionMap::setContainerId(ContainerId &cId) { ContainerIdProto* idProto = new ContainerIdProto(); idProto->CopyFrom(cId.getProto()); ceProto.set_allocated_container_id(idProto); }