void printStatus(JobStatus &stat, int level) { std::vector<pair<JobStatus::Attr, JobStatus::AttrType> > attrList = stat.getAttrs(); cout << "\nJob Status Information:\n - Current Status = " << stat.name() << "\n ---" << endl<< flush ; if (level>0) for (unsigned i=0; i < attrList.size(); i++ ) { cout << stat.getAttrName(attrList[i].first) << " == " ; switch (attrList[i].second) { case JobStatus::INT_T : cout << stat.getValInt(attrList[i].first) << endl<<flush; break; case JobStatus::STRING_T : cout << stat.getValString(attrList[i].first) << endl<<flush; break; case JobStatus::TIMEVAL_T :{ timeval t = stat.getValTime(attrList[i].first); cout << t.tv_sec << "." << t.tv_usec << " s " << endl<<flush;} break; case JobStatus::BOOL_T : cout << stat.getValBool(attrList[i].first) << endl<<flush; break; case JobStatus::JOBID_T :{ if(((glite::wmsutils::jobid::JobId)stat.getValJobId(attrList[i].first)).isSet()) cout << stat.getValJobId(attrList[i].first).toString() << endl<<flush; } break; case JobStatus::STSLIST_T :{ std::vector<JobStatus> v = stat.getValJobStatusList(attrList[i].first); for(unsigned int i=0; i < v.size(); i++) ; //TBD } break ; case JobStatus::TAGLIST_T :{ std::vector<std::pair<std::string,std::string> > v = stat.getValTagList( attrList[i].first ) ; for (unsigned int i = 0 ; i < v.size() ; i++ ) cout << v[i].first << " - " << v[i].second << " ; " << flush ; } break; case JobStatus::INTLIST_T :{ std::vector<int> v = stat.getValIntList(attrList[i].first); for(unsigned int j=0; j < v.size(); j++) cout << " " << v[j] << flush ; cout << endl<<flush; } break; case JobStatus::STRLIST_T :{ std::vector<std::string> v = stat.getValStringList(attrList[i].first); for(unsigned int j=0; j < v.size(); j++) cout << v[j] ; cout << endl<<flush; } break ; default : /* something is wrong */ break; } } cout << endl<<flush; }
void getSandboxBulkDestURI(getSandboxBulkDestURIResponse& getSandboxBulkDestURI_response, const string& jid, const string& protocol) { GLITE_STACK_TRY("getSandboxBulkDestURI()"); edglog_fn("wmpoperations::getSandboxBulkDestURI"); edglog(debug) << "getSandboxBulkDestURI requested for job: " << jid << endl; initWMProxyOperation("getSandboxBulkDestURI"); security::do_authZ_jobid("getSandboxBulkDestURI", jid); // Initializing logger WMPEventLogger wmplogger(wmputilities::getEndpoint()); wmplogger.setLBProxy(conf.isLBProxyAvailable(), wmputilities::getDN_SSL()); JobId jobid(jid); wmplogger.setUserProxy(wmputilities::getJobDelegatedProxyPath(jobid)); wmplogger.init_and_set_logging_job("", 0, &jobid); DestURIsStructType *destURIsStruct = new DestURIsStructType(); destURIsStruct->Item = new vector<DestURIStructType*>(0); // Getting job status to get children number JobStatus status = wmplogger.getStatus(true); vector<string> jids = status.getValStringList(JobStatus::CHILDREN); edglog(debug)<<"Children count: "<<status.getValInt(JobStatus::CHILDREN_NUM)<<endl; vector<string>::iterator jidsiterator = jids.begin(); jids.insert(jidsiterator, 1, jid); vector<string>::iterator iter = jids.begin(); vector<string>::iterator const end = jids.end(); for (; iter != end; ++iter) { vector<string> *uris = getJobDirectoryURIsVector(conf.getProtocols(), conf.getDefaultProtocol(), conf.getDefaultPort(), conf.getHTTPSPort(), *iter, protocol, "input"); DestURIStructType *destURIStruct = new DestURIStructType(); destURIStruct->id = *iter; destURIStruct->destURIs = uris; destURIsStruct->Item->push_back(destURIStruct); } getSandboxBulkDestURI_response.destURIsStruct = destURIsStruct; GLITE_STACK_CATCH(); }