//! Workload Characterization Key - mandatory on some clusters
string wckey;
+ //! String that is added to the job submission file - optional
+ string extra_params;
+
/*!
Specific parameters for each type of job - optional
*/
_wckey = wckey;
}
+void
+Launcher::Job::setExtraParams(const std::string & extra_params)
+{
+ _extra_params = extra_params;
+}
+
void
Launcher::Job::setReference(const std::string & reference)
{
return _wckey;
}
+std::string
+Launcher::Job::getExtraParams() const
+{
+ return _extra_params;
+}
+
std::string
Launcher::Job::getReference() const
{
if (_wckey != "")
params[Batch::WCKEY] = _wckey;
+ // Extra params
+ if (_extra_params != "")
+ params[Batch::EXTRAPARAMS] = _extra_params;
+
// Specific parameters
std::map<std::string, std::string>::iterator it = _specific_parameters.find("LoalLevelerJobType");
if (it != _specific_parameters.end())
void setExclusiveStr(const std::string & exclusiveStr);
void setMemPerCpu(unsigned long mem_per_cpu);
void setWCKey(const std::string & wckey);
+ void setExtraParams(const std::string & extra_params);
void setReference(const std::string & reference);
// For COORM
void setLauncherFile(const std::string & launcher_file);
std::string getExclusiveStr() const;
unsigned long getMemPerCpu() const;
std::string getWCKey() const;
+ std::string getExtraParams() const;
std::string getReference() const;
// For COORM
bool _exclusive;
unsigned long _mem_per_cpu;
std::string _wckey;
+ std::string _extra_params;
std::string _reference; //! Reference of the job for the batch manager
// Parameters for COORM
addNumericalNode(res_node, "mem_per_cpu", job.getMemPerCpu());
if (!job.getWCKey().empty())
addNode(node, "wckey", job.getWCKey());
+ if (!job.getExtraParams().empty())
+ addNode(node, "extra_params", job.getExtraParams());
// Specific parameters part
map<string, string> specific_parameters = job.getSpecificParameters();
new_job->setMemPerCpu(getNumericalNodeContent<unsigned long>(current_node));
else if (node_name == "wckey")
new_job->setWCKey(getNodeContent(current_node));
+ else if (node_name == "extra_params")
+ new_job->setExtraParams(getNodeContent(current_node));
else if (node_name == "specific_parameters")
{
// Get specific parameters
std::string wckey = job_parameters.wckey.in();
new_job->setWCKey(wckey);
+ // Extra params
+ std::string extra_params = job_parameters.extra_params.in();
+ new_job->setExtraParams(extra_params);
+
// Resources requirements
try
{
job_parameters->exclusive = job->getExclusive();
job_parameters->mem_per_cpu = job->getMemPerCpu();
job_parameters->wckey = CORBA::string_dup(job->getWCKey().c_str());
+ job_parameters->extra_params = CORBA::string_dup(job->getExtraParams().c_str());
resourceParams resource_params = job->getResourceRequiredParams();
job_parameters->resource_required.name = CORBA::string_dup(resource_params.name.c_str());