#include <ui_ResourceRequirementsWizardPage.h>
#include <ui_FilesWizardPage.h>
+#include <ui_AdvancedParametersWizardPage.h>
#ifdef WNT
#undef ERROR
setPage(Page_Files, new BL::FilesPage(this, salome_services));
setPage(Page_Resource, new BL::ResourcePage(this, salome_services));
+ setPage(Page_Advanced, new BL::AdvancedParametersPage(this));
setPage(Page_Conclusion, new BL::ConclusionPage(this));
// Specific pages
if (batch_params.maximum_duration == "")
{
+ setField("default_time", true);
setField("duration_hour", 0);
setField("duration_min", 0);
}
else
{
+ setField("user_time", true);
std::size_t pos = batch_params.maximum_duration.find(":");
std::string hour_str = batch_params.maximum_duration.substr(0, pos);
int hour;
setField("duration_min", min);
}
- unsigned long long mem_mb = batch_params.mem_limit;
- if (mem_mb % 1024 == 0)
+ long long mem_mb = batch_params.mem_limit;
+ if (mem_mb < 1)
{
- setField("mem_value", mem_mb / 1024);
- _batch_parameters_page->setMemUnit(BatchParametersPage::GB);
+ setField("default_mem", true);
}
else
{
- setField("mem_value", mem_mb);
- _batch_parameters_page->setMemUnit(BatchParametersPage::MB);
+ setField("user_mem", true);
+ if (mem_mb % 1024 == 0)
+ {
+ setField("mem_value", mem_mb / 1024);
+ _batch_parameters_page->setMemUnit(BatchParametersPage::GB);
+ }
+ else
+ {
+ setField("mem_value", mem_mb);
+ _batch_parameters_page->setMemUnit(BatchParametersPage::MB);
+ }
+ _batch_parameters_page->setMemReqType(batch_params.mem_req_type);
}
- _batch_parameters_page->setMemReqType(batch_params.mem_req_type);
BL::Job::FilesParam files_params = job->getFilesParameters();
setField("resource_choosed", QString(job->getResource().c_str()));
setField("batch_queue", QString(job->getBatchQueue().c_str()));
setField("ll_jobtype", QString(job->getLoadLevelerJobType().c_str()));
+ setField("wckey", QString(job->getWCKey().c_str()));
+ setField("extra_params", QString(job->getExtraParams().c_str()));
}
}
QString time_hour;
QString time_min;
- if(field("duration_hour").toInt() == 0 && field("duration_min").toInt() == 0)
+ if (field("default_time").toBool() ||
+ (field("duration_hour").toInt() == 0 && field("duration_min").toInt() == 0))
{
maximum_duration = "";
}
maximum_duration = time_hour.toStdString() + ":" + time_min.toStdString();
}
- unsigned long mem = field("mem_value").toULongLong();
- BatchParametersPage::MemUnit mem_unit = _batch_parameters_page->getMemUnit();
- switch (mem_unit)
+ if(field("default_mem").toBool())
{
- case BatchParametersPage::MB:
- mem_limit = mem;
- break;
- case BatchParametersPage::GB:
- mem_limit = mem * 1024;
- break;
- default:
- throw Exception("Invalid memory unit");
+ mem_limit = -1;
+ }
+ else
+ {
+ unsigned long mem = field("mem_value").toULongLong();
+ BatchParametersPage::MemUnit mem_unit = _batch_parameters_page->getMemUnit();
+ switch (mem_unit)
+ {
+ case BatchParametersPage::MB:
+ mem_limit = mem;
+ break;
+ case BatchParametersPage::GB:
+ mem_limit = mem * 1024;
+ break;
+ default:
+ throw Exception("Invalid memory unit");
+ }
+ mem_req_type = _batch_parameters_page->getMemReqType();
}
- mem_req_type = _batch_parameters_page->getMemReqType();
nb_proc = field("proc_value").toInt();
exclusive = field("exclusive").toBool();
ll_jobtype = "";
}
+ // WC Key
+ QString f_wckey = field("wckey").toString();
+ wckey = f_wckey.trimmed().toUtf8().constData();
+
+ // Extra params
+ QString f_extra_params = field("extra_params").toString();
+ extra_params = f_extra_params.trimmed().toUtf8().constData();
+
start_job = field("start_job").toBool();
}
}
registerField("mem_value", ui->spin_memory);
registerField("proc_value", ui->spin_proc);
registerField("exclusive", ui->check_exclusive);
+ registerField("default_time", ui->rb_default_time);
+ registerField("user_time", ui->rb_user_time);
+ registerField("default_mem", ui->rb_default_mem);
+ registerField("user_mem", ui->rb_user_mem);
ui->combo_memory_unit->insertItem(ui->combo_memory_unit->count(), "MB", MB);
ui->combo_memory_unit->insertItem(ui->combo_memory_unit->count(), "GB", GB);
"per node", Job::MEM_PER_NODE);
ui->combo_memory_req_type->insertItem(ui->combo_memory_req_type->count(),
"per core", Job::MEM_PER_CPU);
+
+ connect(ui->spin_duration_hour, SIGNAL(valueChanged(int)), this, SLOT(timeChanged()));
+ connect(ui->spin_duration_min, SIGNAL(valueChanged(int)), this, SLOT(timeChanged()));
+ connect(ui->spin_memory, SIGNAL(valueChanged(int)), this, SLOT(memChanged()));
+ connect(ui->combo_memory_unit, SIGNAL(currentIndexChanged(int)), this, SLOT(memChanged()));
+ connect(ui->combo_memory_req_type, SIGNAL(currentIndexChanged(int)), this, SLOT(memChanged()));
};
BatchParametersPage::~BatchParametersPage()
ui->combo_memory_req_type->setCurrentIndex(ui->combo_memory_req_type->findData(mem_req_type));
}
+void
+BatchParametersPage::timeChanged()
+{
+ if (ui->spin_duration_hour->value() == 0 && ui->spin_duration_min->value() == 0)
+ ui->rb_default_time->setChecked(true);
+ else
+ ui->rb_user_time->setChecked(true);
+}
+
+void
+BatchParametersPage::memChanged()
+{
+ ui->rb_user_mem->setChecked(true);
+}
+
void
BatchParametersPage::cleanupPage()
{
int
FilesPage::nextId() const
{
- return BL::CreateJobWizard::Page_Conclusion;
+ return BL::CreateJobWizard::Page_Advanced;
}
BL::ConclusionPage::ConclusionPage(QWidget * parent)
{
return BL::CreateJobWizard::Page_Resource;
}
+
+
+
+AdvancedParametersPage::AdvancedParametersPage(CreateJobWizard * parent)
+: QWizardPage(parent),
+ ui(new Ui::AdvancedParametersWizardPage)
+{
+ ui->setupUi(this);
+ registerField("wckey", ui->line_wckey);
+ registerField("extra_params", ui->text_extra_params, "plainText", "textChanged()");
+};
+
+AdvancedParametersPage::~AdvancedParametersPage()
+{
+ delete ui;
+}
+
+int
+AdvancedParametersPage::nextId() const
+{
+ return BL::CreateJobWizard::Page_Conclusion;
+}