void cp_compute_consumption(ClassAd& job, ClassAd& resource, consumption_map_t& consumption) { consumption.clear(); string mrv; if (!resource.LookupString(ATTR_MACHINE_RESOURCES, mrv)) { EXCEPT("Resource ad missing %s attribute", ATTR_MACHINE_RESOURCES); } StringList alist(mrv.c_str()); alist.rewind(); while (char* asset = alist.next()) { if (MATCH == strcasecmp(asset, "swap")) continue; string ra; string coa; formatstr(ra, "%s%s", ATTR_REQUEST_PREFIX, asset); formatstr(coa, "_condor_%s", ra.c_str()); bool override = false; double ov=0; if (job.EvalFloat(coa.c_str(), NULL, ov)) { // Allow _condor_RequestedXXX to override RequestedXXX // this case is intended to be operative when a scheduler has set // such values and sent them on to the startd that owns this resource // (e.g. I'd not expect this case to arise elsewhere, like the negotiator) string ta; formatstr(ta, "_cp_temp_%s", ra.c_str()); job.CopyAttribute(ta.c_str(), ra.c_str()); job.Assign(ra.c_str(), ov); override = true; }