]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
merge from tag mergeto_V4_1_0_maintainance_20081106
authorprascle <prascle>
Thu, 6 Nov 2008 10:27:10 +0000 (10:27 +0000)
committerprascle <prascle>
Thu, 6 Nov 2008 10:27:10 +0000 (10:27 +0000)
src/Batch/Batch_BatchManager_eLSF.cxx
src/Batch/Batch_BatchManager_ePBS.cxx
src/Launcher/Launcher.cxx
src/ResourcesManager/SALOME_ResourcesCatalog_Handler.cxx
src/ResourcesManager/SALOME_ResourcesCatalog_Handler.hxx
src/ResourcesManager/SALOME_ResourcesCatalog_Parser.cxx
src/ResourcesManager/SALOME_ResourcesCatalog_Parser.hxx

index 0b359eae27b388ad66719f7fe8f5374fcb441c20..77778833e6a65507f492f57bad35c458ef7a0f2d 100644 (file)
@@ -253,6 +253,7 @@ namespace Batch {
     const std::string dirForTmpFiles = params[TMPDIR];
     const string fileToExecute = params[EXECUTABLE];
     const string home = params[HOMEDIR];
+    const std::string queue = params[QUEUE];
     std::string rootNameToExecute;
     std::string fileNameToExecute;
     std::string filelogtemp;
@@ -274,6 +275,8 @@ namespace Batch {
     tempOutputFile.open(TmpFileName.c_str(), ofstream::out );
 
     tempOutputFile << "#! /bin/sh -f" << endl ;
+    if (queue != "")
+      tempOutputFile << "#BSUB -q " << queue << endl;
     if( edt > 0 )
       tempOutputFile << "#BSUB -W " << getWallTime(edt) << endl ;
     if( mem > 0 )
index 2f3bf182478e7b04ff8b9f4dd8cdd876a95afb8f..a24ad178d9d2bf7350658885e9549c6a16c06a17 100644 (file)
@@ -247,6 +247,7 @@ namespace Batch {
     const std::string dirForTmpFiles = params[TMPDIR];
     const string fileToExecute = params[EXECUTABLE];
     const string home = params[HOMEDIR];
+    const std::string queue = params[QUEUE];
     std::string rootNameToExecute;
     std::string fileNameToExecute;
     std::string filelogtemp;
@@ -268,6 +269,8 @@ namespace Batch {
     tempOutputFile.open(TmpFileName.c_str(), ofstream::out );
 
     tempOutputFile << "#! /bin/sh -f" << endl;
+    if (queue != "")
+      tempOutputFile << "#BSUB -q " << queue << endl;
     if( edt > 0 )
       tempOutputFile << "#PBS -l walltime=" << edt*60 << endl ;
     if( mem > 0 )
index 15ff35ebd89d75d469418f247eb65b065bce5829..f27e68ee384d0e59043567e6a380ffdbb6941cb7 100644 (file)
@@ -264,6 +264,7 @@ long Launcher_cpp::submitSalomeJob( const string fileToExecute ,
     param[MAXWALLTIME] = getWallTime(batch_params.expected_during_time);
     param[MAXRAMSIZE] = getRamSize(batch_params.mem);
     param[HOMEDIR] = getHomeDir(p, tmpdir);
+    param[QUEUE] = p.batchQueue;
 
     Batch::Environnement env;
 
@@ -516,6 +517,10 @@ string Launcher_cpp::buildSalomeCouplingScript(const string fileToExecute, const
   tempOutputFile << dirForTmpFiles ;
   tempOutputFile << ":$PYTHONPATH" << endl ;
 
+  // Adding user script
+  std::string script = params.userCommands;
+  if (script != "")
+    tempOutputFile << script << endl;
   // Test node rank
   tempOutputFile << "if test \"" ;
   tempOutputFile << mpiImpl->rank() ;
index df16779b34d3c0c915735ad29ea942ababdcff63..899daa885f7cbce67799ae0de813572b0b749fb1 100755 (executable)
@@ -65,6 +65,8 @@ SALOME_ResourcesCatalog_Handler(MapOfParserResourcesType& resources_list,
   test_cpu_freq_mhz = "CPUFreqMHz";
   test_nb_of_nodes = "nbOfNodes";
   test_nb_of_proc_per_node = "nbOfProcPerNode";
+  test_batch_queue = "batchQueue";
+  test_user_commands = "userCommands";
 }
 
 //=============================================================================
@@ -131,6 +133,24 @@ void SALOME_ResourcesCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
          else
            _resource.Alias = "";
 
+         if (xmlHasProp(aCurNode, (const xmlChar*)test_batch_queue))
+            {
+             xmlChar* batch_queue = xmlGetProp(aCurNode, (const xmlChar*)test_batch_queue);
+             _resource.batchQueue = (const char*)batch_queue;
+              xmlFree(batch_queue);
+            }
+         else
+           _resource.batchQueue = "";
+
+         if (xmlHasProp(aCurNode, (const xmlChar*)test_user_commands))
+            {
+             xmlChar* user_commands= xmlGetProp(aCurNode, (const xmlChar*)test_user_commands);
+             _resource.userCommands = (const char*)user_commands;
+              xmlFree(user_commands);
+            }
+         else
+           _resource.userCommands = "";
+         
          if (xmlHasProp(aCurNode, (const xmlChar*)test_protocol))
             {
              xmlChar* protocol= xmlGetProp(aCurNode, (const xmlChar*)test_protocol);
@@ -350,7 +370,9 @@ void SALOME_ResourcesCatalog_Handler::PrepareDocToXmlFile(xmlDocPtr theDoc)
       node = xmlNewChild(root_node, NULL, BAD_CAST test_machine, NULL);
       xmlNewProp(node, BAD_CAST test_hostname, BAD_CAST (*iter).second.HostName.c_str());
       xmlNewProp(node, BAD_CAST test_alias, BAD_CAST (*iter).second.Alias.c_str());
-      
+      xmlNewProp(node, BAD_CAST test_batch_queue, BAD_CAST (*iter).second.batchQueue.c_str());
+      xmlNewProp(node, BAD_CAST test_user_commands, BAD_CAST (*iter).second.userCommands.c_str());
+  
       switch ((*iter).second.Protocol)
         {
         case rsh:
index 152b5c58e1e5eac56b7d9d1b01214192bcfdcc53..c65a35b4cb21d37784d01d5f38285ac14e6881fe 100755 (executable)
@@ -79,6 +79,8 @@ class RESOURCESMANAGER_EXPORT SALOME_ResourcesCatalog_Handler
     const char *test_cpu_freq_mhz;
     const char *test_nb_of_nodes;
     const char *test_nb_of_proc_per_node;
+    const char *test_batch_queue;
+    const char *test_user_commands;
 
   };
 
index 33b363ca13fbd6f826a2fba0bdb705fdf0cea6f6..f86403b83ccb0197ae132767896754a44205a6d2 100644 (file)
@@ -129,6 +129,8 @@ void ParserResourcesType::Print() const
     "UserName : " << UserName << endl <<
     "AppliPath : " << AppliPath << endl <<
     "OS : " << OS << endl <<
+    "batchQueue : " << batchQueue << endl <<
+    "userCommands : " << userCommands << endl <<
     "Modules : " << endl;
 
   for(int i=0;i<ModulesList.size();i++)
@@ -153,6 +155,8 @@ void ParserResourcesType::Clear()
   mpi = nompi;
   UserName = "";
   AppliPath = "";
+  batchQueue = "";
+  userCommands = "";
   ModulesList.clear();
   OS = "";
 }
index def0bf55602c29f4e9f16676ef97e94a91c92f66..b3260afd258c043ae9338868577d8c60733bd87d 100755 (executable)
@@ -85,6 +85,8 @@ struct RESOURCESMANAGER_EXPORT ParserResourcesType
     std::string AppliPath;
     std::vector<std::string> ModulesList;
     std::string OS;
+    std::string batchQueue;
+    std::string userCommands;
 
     void Print() const;
     void Clear();