Salome HOME
Adding RemoveResource
[modules/kernel.git] / src / ResourcesManager / SALOME_ResourcesManager.cxx
index 74973d46354c6c3606f5135c5c2b9dd23fcb2abd..8d60271429a5e098b4ba83400fc2742aaf258919 100644 (file)
@@ -260,14 +260,15 @@ SALOME_ResourcesManager::GetResourceDefinition(const char * name)
 }
 
 void 
-SALOME_ResourcesManager::AddResourceDefinition(const Engines::ResourceDefinition& new_resource,
-                                              CORBA::Boolean write,
-                                              const char * xml_file)
+SALOME_ResourcesManager::AddResource(const Engines::ResourceDefinition& new_resource,
+                                    CORBA::Boolean write,
+                                    const char * xml_file)
 {
   ParserResourcesType resource;
   resource.Name = new_resource.name.in();
   resource.HostName = new_resource.hostname.in();
   resource.OS = new_resource.OS.in();
+  resource.AppliPath = new_resource.applipath.in();
   resource.DataForSort._memInMB = new_resource.mem_mb;
   resource.DataForSort._CPUFreqMHz = new_resource.cpu_clock;
   resource.DataForSort._nbOfNodes = new_resource.nb_node;
@@ -286,8 +287,8 @@ SALOME_ResourcesManager::AddResourceDefinition(const Engines::ResourceDefinition
   else if (aBatch == "")
     resource.Batch = none;
   else {
-    INFOS("Bad Batch definition in AddResourceDefinition: " << aBatch);
-    std::string message("Bad Batch definition in AddResourceDefinition: ");
+    INFOS("Bad Batch definition in AddResource: " << aBatch);
+    std::string message("Bad Batch definition in AddResource: ");
     message += aBatch;
     THROW_SALOME_CORBA_EXCEPTION(message.c_str(),SALOME::BAD_PARAM);
   }
@@ -308,8 +309,8 @@ SALOME_ResourcesManager::AddResourceDefinition(const Engines::ResourceDefinition
   else if (anMpi == "")
     resource.mpi = nompi;
   else {
-    INFOS("Bad MPI definition in AddResourceDefinition: " << anMpi);
-    std::string message("Bad MPI definition in AddResourceDefinition: ");
+    INFOS("Bad MPI definition in AddResource: " << anMpi);
+    std::string message("Bad MPI definition in AddResource: ");
     message += anMpi;
     THROW_SALOME_CORBA_EXCEPTION(message.c_str(),SALOME::BAD_PARAM);
   }
@@ -322,8 +323,8 @@ SALOME_ResourcesManager::AddResourceDefinition(const Engines::ResourceDefinition
   else if (mode_str == "")
     resource.Mode = interactive;
   else {
-    INFOS("Bad mode definition in AddResourceDefinition: " << mode_str);
-    std::string message("Bad mode definition in AddResourceDefinition: ");
+    INFOS("Bad mode definition in AddResource: " << mode_str);
+    std::string message("Bad mode definition in AddResource: ");
     message += mode_str;
     THROW_SALOME_CORBA_EXCEPTION(message.c_str(),SALOME::BAD_PARAM);
   }
@@ -336,8 +337,8 @@ SALOME_ResourcesManager::AddResourceDefinition(const Engines::ResourceDefinition
   else if (protocol == "")
     resource.Protocol = rsh;
   else {
-    INFOS("Bad protocol definition in AddResourceDefinition: " << protocol);
-    std::string message("Bad protocol definition in AddResourceDefinition: ");
+    INFOS("Bad protocol definition in AddResource: " << protocol);
+    std::string message("Bad protocol definition in AddResource: ");
     message += protocol;
     THROW_SALOME_CORBA_EXCEPTION(message.c_str(),SALOME::BAD_PARAM);
   }
@@ -350,8 +351,8 @@ SALOME_ResourcesManager::AddResourceDefinition(const Engines::ResourceDefinition
   else if (iprotocol == "")
     resource.ClusterInternalProtocol = rsh;
   else {
-    INFOS("Bad iprotocol definition in AddResourceDefinition: " << iprotocol);
-    std::string message("Bad iprotocol definition in AddResourceDefinition: ");
+    INFOS("Bad iprotocol definition in AddResource: " << iprotocol);
+    std::string message("Bad iprotocol definition in AddResource: ");
     message += iprotocol;
     THROW_SALOME_CORBA_EXCEPTION(message.c_str(),SALOME::BAD_PARAM);
   }
@@ -368,6 +369,19 @@ SALOME_ResourcesManager::AddResourceDefinition(const Engines::ResourceDefinition
   }
 }
 
+void 
+SALOME_ResourcesManager::RemoveResource(const char * resource_name,
+                                       CORBA::Boolean write,
+                                       const char * xml_file)
+{
+  _rm.DeleteResourceInCatalog(resource_name);
+  if (write)
+  {
+    _rm.WriteInXmlFile(std::string(xml_file));
+    _rm.ParseXmlFiles();
+  }
+}
+
 std::string 
 SALOME_ResourcesManager::getMachineFile(std::string hostname, 
                                         CORBA::Long nb_procs,