void KateApp::restoreKate () { // restore the nice files ;) we need it Kate::Document::setOpenErrorDialogsActivated (false); // activate again correct session!!! sessionConfig()->setGroup("General"); QString lastSession (sessionConfig()->readEntry ("Last Session", "default.katesession")); sessionManager()->activateSession (new KateSession (sessionManager(), lastSession, ""), false, false, false); m_docManager->restoreDocumentList (sessionConfig()); Kate::Document::setOpenErrorDialogsActivated (true); // restore all windows ;) for (int n=1; KMainWindow::canBeRestored(n); n++) newMainWindow(sessionConfig(), QString ("%1").arg(n)); // oh, no mainwindow, create one, should not happen, but make sure ;) if (mainWindows() == 0) newMainWindow (); // notify about start KStartupInfo::setNewStartupId( activeMainWindow(), startupId()); }
ApplicationMaster::ApplicationMaster(string &schedHost, string &schedPort, UserInfo &user, const string &tokenService) { Yarn::Internal::shared_ptr<Yarn::Config> conf = DefaultConfig().getConfig(); Yarn::Internal::SessionConfig sessionConfig(*conf); RpcAuth rpcAuth(user, AuthMethod::TOKEN); rmClient = (void*) new ApplicationMasterProtocol(schedHost, schedPort, tokenService, sessionConfig, rpcAuth); }
void KateApp::restoreKate () { // activate again correct session!!! QString lastSession (sessionConfig()->group("General").readEntry ("Last Session", QString())); sessionManager()->activateSession (KateSession::Ptr(new KateSession (sessionManager(), lastSession)), false, false, false); // plugins KatePluginManager::self ()->loadConfig (sessionConfig()); // restore the files we need m_docManager->restoreDocumentList (sessionConfig()); // restore all windows ;) for (int n = 1; KMainWindow::canBeRestored(n); n++) newMainWindow(sessionConfig(), QString ("%1").arg(n)); // oh, no mainwindow, create one, should not happen, but make sure ;) if (mainWindows() == 0) newMainWindow (); }
ContainerStatus ContainerManagement::getContainerStatus(Container &container, Token &nmToken) { //1. setup Connection to NodeManager string host = container.getNodeId().getHost(); ostringstream oss; oss << container.getNodeId().getPort(); string port(oss.str()); LOG(INFO, "ContainerManagement, is going to connect to NM [%s:%s] to getContainerStatus container", host.c_str(), port.c_str()); UserInfo user = UserInfo::LocalUser(); Yarn::Token anotherToken; anotherToken.setIdentifier(nmToken.getIdentifier()); anotherToken.setKind(nmToken.getKind()); anotherToken.setPassword(nmToken.getPassword()); anotherToken.setService(nmToken.getService()); user.addToken(anotherToken); RpcAuth rpcAuth(user, AuthMethod::TOKEN); Yarn::Config config; SessionConfig sessionConfig(config); #ifdef MOCKTEST ContainerManagementProtocol *nmClient = stub->getContainerManagementProtocol(); #else ContainerManagementProtocol *nmClient = new ContainerManagementProtocol( host, port, anotherToken.getService(), sessionConfig, rpcAuth); #endif ContainerId cid = container.getId(); list<ContainerId> cids; cids.push_back(cid); GetContainerStatusesRequest request; request.setContainerIds(cids); GetContainerStatusesResponse response = nmClient->getContainerStatuses(request); //3. free delete nmClient; list<ContainerStatus> statusList = response.getContainerStatuses(); if (statusList.size() > 0){ list<ContainerStatus>::iterator statusHead = statusList.begin(); return (*statusHead); }else{ ContainerStatus status; return status; } }
StartContainerResponse ContainerManagement::startContainer(Container &container, StartContainerRequest &request, Token &nmToken) { //1. setup Connection to NodeManager string host = container.getNodeId().getHost(); ostringstream oss; oss << container.getNodeId().getPort(); string port(oss.str()); LOG(INFO, "ContainerManagement::startContainer, is going to connect to NM [%s:%s] to start container", host.c_str(), port.c_str()); UserInfo user = UserInfo::LocalUser(); Yarn::Token anotherToken; anotherToken.setIdentifier(nmToken.getIdentifier()); anotherToken.setKind(nmToken.getKind()); anotherToken.setPassword(nmToken.getPassword()); anotherToken.setService(nmToken.getService()); user.addToken(anotherToken); RpcAuth rpcAuth(user, AuthMethod::TOKEN); Yarn::Config config; SessionConfig sessionConfig(config); #ifdef MOCKTEST ContainerManagementProtocol *nmClient = stub->getContainerManagementProtocol(); #else ContainerManagementProtocol *nmClient = new ContainerManagementProtocol( host, port, anotherToken.getService(), sessionConfig, rpcAuth); #endif //2. startContainers StartContainersRequest scsRequest; list<StartContainerRequest> requests; requests.push_back(request); scsRequest.setStartContainerRequests(requests); StartContainersResponse scsResponse = nmClient->startContainers(scsRequest); StartContainerResponse scResponse; scResponse.setServicesMetaData(scsResponse.getServicesMetaData()); LOG(INFO, "ContainerManagement::startContainer, after start a container, id:%d on NM [%s:%s]", container.getId().getId(), host.c_str(), port.c_str()); //3. free delete nmClient; return scResponse; }
void ContainerManagement::stopContainer(Container &container, Token &nmToken) { //1. setup Connection to NodeManager string host = container.getNodeId().getHost(); ostringstream oss; oss << container.getNodeId().getPort(); string port(oss.str()); LOG(INFO, "ContainerManagement::startContainer, is going to connect to NM [%s:%s] to stop container", host.c_str(), port.c_str()); UserInfo user = UserInfo::LocalUser(); Yarn::Token anotherToken; anotherToken.setIdentifier(nmToken.getIdentifier()); anotherToken.setKind(nmToken.getKind()); anotherToken.setPassword(nmToken.getPassword()); anotherToken.setService(nmToken.getService()); user.addToken(anotherToken); RpcAuth rpcAuth(user, AuthMethod::TOKEN); Yarn::Config config; SessionConfig sessionConfig(config); #ifdef MOCKTEST ContainerManagementProtocol *nmClient = stub->getContainerManagementProtocol(); #else ContainerManagementProtocol *nmClient = new ContainerManagementProtocol( host, port, anotherToken.getService(), sessionConfig, rpcAuth); #endif //2. stopContainers ContainerId cid = container.getId(); list<ContainerId> cids; cids.push_back(cid); StopContainersRequest request; request.setContainerIds(cids); nmClient->stopContainers(request); //3. free delete nmClient; }
ApplicationMaster::ApplicationMaster(string &schedHost, string &schedPort, UserInfo &user, const string &tokenService) { Yarn::Internal::shared_ptr<Yarn::Config> conf = DefaultConfig().getConfig(); Yarn::Internal::SessionConfig sessionConfig(*conf); RpcAuth rpcAuth(user, AuthMethod::TOKEN); std::vector<RMInfo> rmInfos = RMInfo::getHARMInfo(*conf, YARN_RESOURCEMANAGER_SCHEDULER_HA); if (rmInfos.size() <= 1) { LOG(INFO, "ApplicationClient RM Scheduler HA is disable."); enableRMSchedulerHA = false; maxRMHARetry = 0; } else { LOG(INFO, "ApplicationClient RM Scheduler HA is enable. Number of RM scheduler: %d", rmInfos.size()); enableRMSchedulerHA = true; maxRMHARetry = sessionConfig.getRpcMaxHaRetry(); } if (!enableRMSchedulerHA) { appMasterProtos.push_back( std::shared_ptr<ApplicationMasterProtocol>( new ApplicationMasterProtocol(schedHost, schedPort, tokenService, sessionConfig, rpcAuth))); } else { /* * iterate RMInfo vector and create 1-1 applicationMasterProtocol for each standby RM scheduler. */ for (size_t i = 0; i < rmInfos.size(); ++i) { appMasterProtos.push_back( std::shared_ptr<ApplicationMasterProtocol>( new ApplicationMasterProtocol(rmInfos[i].getHost(), rmInfos[i].getPort(), tokenService, sessionConfig, rpcAuth))); LOG(INFO, "ApplicationMaster finds a standby RM scheduler, host:%s, port:%s", rmInfos[i].getHost().c_str(), rmInfos[i].getPort().c_str()); } } currentAppMasterProto = 0; }
ApplicationClient::ApplicationClient(string &user, string &host, string &port) { std::string tokenService = ""; Yarn::Internal::shared_ptr<Yarn::Config> conf = DefaultConfig().getConfig(); Yarn::Internal::SessionConfig sessionConfig(*conf); LOG(INFO, "ApplicationClient session auth method : %s", sessionConfig.getRpcAuthMethod().c_str()); std::vector<RMInfo> rmInfos = RMInfo::getHARMInfo(*conf, YARN_RESOURCEMANAGER_HA); if (rmInfos.size() <= 1) { LOG(INFO, "ApplicationClient Resource Manager HA is disable."); enableRMHA = false; maxRMHARetry = 0; } else { LOG(INFO, "ApplicationClient Resource Manager HA is enable. Number of RM: %d", rmInfos.size()); enableRMHA = true; maxRMHARetry = sessionConfig.getRpcMaxHaRetry(); } if (!enableRMHA) { appClientProtos.push_back( std::shared_ptr<ApplicationClientProtocol>( new ApplicationClientProtocol(user, host, port, tokenService, sessionConfig))); } else { /* * iterate RMInfo vector and create 1-1 applicationClientProtocol for each standby RM */ for (size_t i = 0; i < rmInfos.size(); ++i) { appClientProtos.push_back( std::shared_ptr<ApplicationClientProtocol>( new ApplicationClientProtocol( user, rmInfos[i].getHost(),rmInfos[i].getPort(), tokenService, sessionConfig))); LOG(INFO, "ApplicationClient finds a standby RM, host:%s, port:%s", rmInfos[i].getHost().c_str(), rmInfos[i].getPort().c_str()); } } currentAppClientProto = 0; }
ApplicationClient::ApplicationClient(string &user, string &host, string &port) { std::vector<RMInfo> rmConfInfos, rmInfos; RMInfo activeRM; std::string tokenService = ""; Yarn::Internal::shared_ptr<Yarn::Config> conf = DefaultConfig().getConfig(); Yarn::Internal::SessionConfig sessionConfig(*conf); LOG(INFO, "ApplicationClient session auth method : %s", sessionConfig.getRpcAuthMethod().c_str()); activeRM.setHost(host); activeRM.setPort(port); rmInfos.push_back(activeRM); rmConfInfos = RMInfo::getHARMInfo(*conf, YARN_RESOURCEMANAGER_HA); /* build a list of candidate RMs without duplicate */ for (vector<RMInfo>::iterator it = rmConfInfos.begin(); it != rmConfInfos.end(); it++) { bool found = false; for (vector<RMInfo>::iterator it2 = rmInfos.begin(); it2 != rmInfos.end(); it2++) { if (it2->getHost() == it->getHost() && it2->getPort() == it->getPort()) { found = true; break; } } if (!found) rmInfos.push_back(*it); } if (rmInfos.size() <= 1) { LOG(INFO, "ApplicationClient Resource Manager HA is disable."); enableRMHA = false; maxRMHARetry = 0; } else { LOG(INFO, "ApplicationClient Resource Manager HA is enable. Number of RM: %d", rmInfos.size()); enableRMHA = true; maxRMHARetry = sessionConfig.getRpcMaxHaRetry(); } if (!enableRMHA) { appClientProtos.push_back( std::shared_ptr<ApplicationClientProtocol>( new ApplicationClientProtocol(user, host, port, tokenService, sessionConfig))); } else { /* * iterate RMInfo vector and create 1-1 applicationClientProtocol for each standby RM */ for (size_t i = 0; i < rmInfos.size(); ++i) { appClientProtos.push_back( std::shared_ptr<ApplicationClientProtocol>( new ApplicationClientProtocol( user, rmInfos[i].getHost(),rmInfos[i].getPort(), tokenService, sessionConfig))); LOG(INFO, "ApplicationClient finds a candidate RM, host:%s, port:%s", rmInfos[i].getHost().c_str(), rmInfos[i].getPort().c_str()); } } currentAppClientProto = 0; }