X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fgenericgui%2FBL_JobsManager_QT.cxx;h=37273380527246b201086e5e3239588328ee2fdc;hb=94317c743eafd6b6de89a47378e31410b4a8fdf3;hp=987f1f814f92be81979c9973f7ec74c7a4fed2cb;hpb=72ddf50a9554170f4f1d21d540efc6ed5e24d12f;p=modules%2Fjobmanager.git diff --git a/src/genericgui/BL_JobsManager_QT.cxx b/src/genericgui/BL_JobsManager_QT.cxx index 987f1f8..3727338 100644 --- a/src/genericgui/BL_JobsManager_QT.cxx +++ b/src/genericgui/BL_JobsManager_QT.cxx @@ -1,9 +1,9 @@ -// Copyright (C) 2009-2013 CEA/DEN, EDF R&D +// Copyright (C) 2009-2019 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,6 +19,18 @@ #include "BL_JobsManager_QT.hxx" #include "BL_GenericGui.hxx" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include using namespace std; @@ -56,9 +68,10 @@ BL::JobsManager_QT::JobsManager_QT(QWidget * parent, BL::GenericGui * main_gui, connect(_load_jobs, SIGNAL(clicked()), this, SLOT(load_jobs_button())); connect(_save_jobs, SIGNAL(clicked()), this, SLOT(save_jobs_button())); - _auto_refresh_jobs = new QPushButton("Auto Refresh: no"); + _auto_refresh_jobs = new QPushButton("Auto Refresh: 30s"); _timer = new QTimer(this); _timer->stop(); + _timer->start(30 * 1000); connect(_timer, SIGNAL(timeout()), this, SLOT(RefreshJobs())); // Menu for auto refresh @@ -94,6 +107,7 @@ BL::JobsManager_QT::JobsManager_QT(QWidget * parent, BL::GenericGui * main_gui, scroll_widget->setWidgetResizable(true); setWidget(scroll_widget); setWindowTitle("Job Manager"); + setObjectName("jmJobManagerDock"); } BL::JobsManager_QT::~JobsManager_QT() @@ -119,7 +133,7 @@ BL::JobsManager_QT::load_jobs_button() write_normal_text("Load jobs action cancelled\n"); } else - load_jobs(jobs_file.toStdString()); + load_jobs(jobs_file.toUtf8().constData()); } void @@ -131,8 +145,8 @@ BL::JobsManager_QT::save_jobs_button() filters << "XML files (*.xml)" << "Any files (*)"; dialog.setFileMode(QFileDialog::AnyFile); - dialog.setFilters(filters); - dialog.selectFilter("(*.xml)"); + dialog.setNameFilters(filters); + dialog.selectNameFilter("(*.xml)"); dialog.setDefaultSuffix("xml"); dialog.setConfirmOverwrite(true); dialog.setAcceptMode(QFileDialog::AcceptSave); @@ -151,7 +165,7 @@ BL::JobsManager_QT::save_jobs_button() write_normal_text("Save jobs action cancelled\n"); } else - save_jobs(jobs_file.toStdString()); + save_jobs(jobs_file.toUtf8().constData()); } void @@ -271,28 +285,37 @@ void BL::JobsManager_QT::create_job_with_wizard(BL::CreateJobWizard & wizard) { BL::Job * new_job = createJob(wizard.job_name); - if (wizard.yacs_file != "") + switch (wizard.job_type) { + case BL::CreateJobWizard::YACS: // YACS schema job new_job->setType(BL::Job::YACS_SCHEMA); new_job->setJobFile(wizard.yacs_file); new_job->setDumpYACSState(wizard.dump_yacs_state); - } - else if (wizard.command != "") - { + new_job->setYacsDriverOptions(wizard.yacs_driver_options); + break; + case BL::CreateJobWizard::COMMAND: // Command Job new_job->setType(BL::Job::COMMAND); new_job->setJobFile(wizard.command); - } - else if (wizard.python_salome_file != "") - { + break; + case BL::CreateJobWizard::COMMAND_SALOME: // Command Job + new_job->setType(BL::Job::COMMAND_SALOME); + new_job->setJobFile(wizard.command); + break; + case BL::CreateJobWizard::PYTHON_SALOME: + // Python Salome Job new_job->setType(BL::Job::PYTHON_SALOME); new_job->setJobFile(wizard.python_salome_file); + break; + default: + throw BL::Exception("Unknown job type"); } // For all jobs new_job->setEnvFile(wizard.env_file); + new_job->setPreCommand(wizard.pre_command); BL::Job::BatchParam param; // For COORM @@ -306,8 +329,10 @@ BL::JobsManager_QT::create_job_with_wizard(BL::CreateJobWizard & wizard) } param.maximum_duration = wizard.maximum_duration; - param.expected_memory = wizard.expected_memory; + param.mem_limit = wizard.mem_limit; + param.mem_req_type = wizard.mem_req_type; param.nb_proc = wizard.nb_proc; + param.nb_node = wizard.nb_node; param.exclusive = wizard.exclusive; // Parameters for COORM @@ -322,13 +347,16 @@ BL::JobsManager_QT::create_job_with_wizard(BL::CreateJobWizard & wizard) new_job->setFilesParameters(files_params); new_job->setResource(wizard.resource_choosed); new_job->setBatchQueue(wizard.batch_queue); + new_job->setBatchPartition(wizard.batch_partition); new_job->setLoadLevelerJobType(wizard.ll_jobtype); + new_job->setWCKey(wizard.wckey); + new_job->setExtraParams(wizard.extra_params); // End addJobToLauncher(wizard.job_name); - emit new_job_added(QString::fromStdString(wizard.job_name)); + emit new_job_added(QString::fromUtf8(wizard.job_name.c_str())); QStandardItemModel * model = _model_manager->getModel(); - QList item_list = model->findItems(QString::fromStdString(wizard.job_name)); + QList item_list = model->findItems(QString::fromUtf8(wizard.job_name.c_str())); QStandardItem * job_state_item = model->item(item_list.at(0)->row(), 2); _main_gui->_jobs_table->selectRow(item_list.at(0)->row()); if (wizard.start_job) @@ -338,7 +366,7 @@ BL::JobsManager_QT::create_job_with_wizard(BL::CreateJobWizard & wizard) void BL::JobsManager_QT::delete_job(QString job_name) { - BL::JobsManager::removeJob(job_name.toStdString()); + BL::JobsManager::removeJob(job_name.toUtf8().constData()); _model_manager->delete_job(job_name); _main_gui->_job_tab->reset(job_name); } @@ -369,17 +397,16 @@ BL::JobsManager_QT::event(QEvent * e) << event->job_name << " " << event->data); + QString job_name = QString::fromUtf8(event->job_name.c_str()); if (event->action == "create_job") { if (event->event_name == "Ok") { - QString str((event->job_name).c_str()); - write_normal_text("Job " + str + " created\n"); + write_normal_text("Job " + job_name + " created\n"); } else { - QString str((event->job_name).c_str()); - write_error_text("Error in creating job: " + str + "\n"); + write_error_text("Error in creating job: " + job_name + "\n"); write_error_text("*** "); write_error_text((event->data).c_str()); write_error_text(" ***\n"); @@ -389,33 +416,29 @@ BL::JobsManager_QT::event(QEvent * e) { if (event->event_name == "Ok") { - QString str((event->job_name).c_str()); - write_normal_text("Job " + str + " queued\n"); + write_normal_text("Job " + job_name + " queued\n"); } else { - QString str((event->job_name).c_str()); - write_error_text("Error in starting job: " + str + "\n"); + write_error_text("Error in starting job: " + job_name + "\n"); write_error_text("*** "); write_error_text((event->data).c_str()); write_error_text(" ***\n"); } - emit job_state_changed(QString((event->job_name).c_str())); + emit job_state_changed(job_name); } else if (event->action == "refresh_job") { if (event->event_name == "Ok") { - QString name((event->job_name).c_str()); QString state((event->data).c_str()); state = state.toLower(); - write_normal_text("Job " + name + " new state is " + state + "\n"); - emit job_state_changed(QString((event->job_name).c_str())); + write_normal_text("Job " + job_name + " new state is " + state + "\n"); + emit job_state_changed(job_name); } else { - QString str((event->job_name).c_str()); - write_error_text("Error in refreshing job: " + str + "\n"); + write_error_text("Error in refreshing job: " + job_name + "\n"); write_error_text("*** "); write_error_text((event->data).c_str()); write_error_text(" ***\n"); @@ -425,13 +448,11 @@ BL::JobsManager_QT::event(QEvent * e) { if (event->event_name == "Ok") { - QString str((event->job_name).c_str()); - write_normal_text("Job " + str + " deleted\n"); + write_normal_text("Job " + job_name + " deleted\n"); } else { - QString str((event->job_name).c_str()); - write_error_text("Warning delete job: " + str + " maybe not complete, exception catch in SALOME Launcher service\n"); + write_error_text("Warning delete job: " + job_name + " maybe not complete, exception catch in SALOME Launcher service\n"); write_error_text("*** "); write_error_text((event->data).c_str()); write_error_text(" ***\n"); @@ -441,13 +462,11 @@ BL::JobsManager_QT::event(QEvent * e) { if (event->event_name == "Ok") { - QString str((event->job_name).c_str()); - write_normal_text("Results of Job " + str + " are get\n"); + write_normal_text("Results of Job " + job_name + " have been got.\n"); } else { - QString str((event->job_name).c_str()); - write_error_text("Warning for results of job: " + str + " maybe not complete, exception catch in SALOME Launcher service\n"); + write_error_text("Warning for results of job: " + job_name + " maybe not complete, exception catch in SALOME Launcher service\n"); write_error_text("*** "); write_error_text((event->data).c_str()); write_error_text(" ***\n"); @@ -457,13 +476,11 @@ BL::JobsManager_QT::event(QEvent * e) { if (event->event_name == "Ok") { - QString str((event->job_name).c_str()); - write_normal_text("Job " + str + " is stopped\n"); + write_normal_text("Job " + job_name + " is stopped\n"); } else { - QString str((event->job_name).c_str()); - write_error_text("Error when trying to stop job: " + str + "\n"); + write_error_text("Error when trying to stop job: " + job_name + "\n"); write_error_text("*** "); write_error_text((event->data).c_str()); write_error_text(" ***\n"); @@ -473,15 +490,13 @@ BL::JobsManager_QT::event(QEvent * e) { if (event->event_name == "Ok") { - QString str((event->job_name).c_str()); - vector hostnames; Tokenize(event->data, hostnames, "+"); vector::iterator it; - write_normal_text("Job " + str + " assigned hostnames are :\n"); + write_normal_text("Job " + job_name + " assigned hostnames are :\n"); for (it = hostnames.begin(); it < hostnames.end(); it++) { @@ -530,15 +545,14 @@ BL::JobsManager_QT::event(QEvent * e) { if (event->event_name == "Ok") { - QString str((event->job_name).c_str()); - write_normal_text("New job added " + str + "\n"); - emit new_job_added(str); + write_normal_text("New job added " + job_name + "\n"); + emit new_job_added(job_name); } } else if (event->action == "to_remove_job") { if (event->event_name == "Ok") - _main_gui->delete_job_external((event->job_name).c_str()); + _main_gui->delete_job_external(job_name); } else {