62
62
for (std::map<std::string, std::list<Job*> >::iterator hostit =
63
63
jobsbyhost.begin(); hostit != jobsbyhost.end(); ++hostit) {
64
URL infourl((*hostit->second.begin())->IDFromEndpoint);
65
std::list<Job*> &jobsOnHost = hostit->second;
66
while (!jobsOnHost.empty()) {
67
logger.msg(DEBUG, "Jobs left to query: %d", jobsOnHost.size());
68
// Move the first 1000 element of jobsOnHost into batch
69
std::list<Job*> batch = std::list<Job*>();
70
for (int i = 0; i < 1000; i++) {
71
if (!jobsOnHost.empty()) {
72
batch.push_back(jobsOnHost.front());
73
jobsOnHost.pop_front();
76
logger.msg(DEBUG, "Querying batch with %d jobs", batch.size());
77
URL infourl(batch.front()->IDFromEndpoint);
67
80
std::string filter = "(|";
68
for (std::list<Job*>::iterator it = hostit->second.begin();
69
it != hostit->second.end(); ++it) {
81
for (std::list<Job*>::iterator it = batch.begin(); it != batch.end(); ++it) {
70
82
filter += URL((*it)->IDFromEndpoint).LDAPFilter();
74
86
infourl.ChangeLDAPFilter(filter);
76
89
DataHandle handler(infourl, usercfg);
80
92
logger.msg(INFO, "Can't create information handle - is the ARC LDAP DMC plugin available?");
102
114
XMLNodeList jobinfolist =
103
115
xmlresult.Path("o/Mds-Vo-name/nordugrid-cluster-name/nordugrid-queue-name/nordugrid-info-group-name/nordugrid-job-globalid");
105
for (std::list<Job*>::iterator jit = hostit->second.begin();
106
jit != hostit->second.end(); ++jit) {
117
for (std::list<Job*>::iterator jit = batch.begin();
118
jit != batch.end(); ++jit) {
107
119
XMLNodeList::iterator xit = jobinfolist.begin();
108
120
for (; xit != jobinfolist.end(); ++xit) {
109
121
if ((std::string)(*xit)["nordugrid-job-globalid"] == (*jit)->JobID.str()) {