Salome HOME
Direct manipulation of resource map singleton
[modules/kernel.git] / src / Launcher_SWIG / Launcher.i
index f01e3126ef67d510a5fa39349e0600e93dbe067d..04646de0b31facb847c8c6c2f1cd426e5774f389 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2019-2023  CEA, EDF
+// Copyright (C) 2019-2024  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -217,6 +217,7 @@ public:
     new_resource_cpp.UserName = new_resource.username;
     new_resource_cpp.AppliPath = new_resource.applipath;
     new_resource_cpp.OS = new_resource.OS;
+    new_resource_cpp.DataForSort._Name = new_resource.name;
     new_resource_cpp.DataForSort._memInMB = new_resource.mem_mb;
     new_resource_cpp.DataForSort._CPUFreqMHz = new_resource.cpu_clock;
     new_resource_cpp.DataForSort._nbOfNodes = new_resource.nb_node;
@@ -229,6 +230,30 @@ public:
     new_resource_cpp.working_directory = new_resource.working_directory;
     $self->AddResourceInCatalog(new_resource_cpp);
   }
+
+  void AddResourceInCatalogNoQuestion (const ResourceDefinition_cpp& new_resource)
+  {
+    ParserResourcesType new_resource_cpp;
+    new_resource_cpp.Name = new_resource.name;
+    new_resource_cpp.HostName = new_resource.hostname;
+    new_resource_cpp.setResourceTypeStr( new_resource.type );
+    new_resource_cpp.setAccessProtocolTypeStr( new_resource.protocol );
+    new_resource_cpp.UserName = new_resource.username;
+    new_resource_cpp.AppliPath = new_resource.applipath;
+    new_resource_cpp.OS = new_resource.OS;
+    new_resource_cpp.DataForSort._Name = new_resource.name;
+    new_resource_cpp.DataForSort._memInMB = new_resource.mem_mb;
+    new_resource_cpp.DataForSort._CPUFreqMHz = new_resource.cpu_clock;
+    new_resource_cpp.DataForSort._nbOfNodes = new_resource.nb_node;
+    new_resource_cpp.DataForSort._nbOfProcPerNode = new_resource.nb_proc_per_node;
+    new_resource_cpp.setBatchTypeStr(new_resource.batch);
+    new_resource_cpp.setMpiImplTypeStr(new_resource.mpiImpl);
+    new_resource_cpp.setClusterInternalProtocolStr(new_resource.iprotocol);
+    new_resource_cpp.can_launch_batch_jobs = new_resource.can_launch_batch_jobs;
+    new_resource_cpp.can_run_containers = new_resource.can_run_containers;
+    new_resource_cpp.working_directory = new_resource.working_directory;
+    $self->AddResourceInCatalogNoQuestion(new_resource_cpp);
+  }
   
   void ParseXmlFiles()
   {
@@ -365,6 +390,32 @@ def BuildCatalogFromScratch(protocol):
       contRes = CreateContainerResource(hostname=k,applipath=os.environ["APPLI"],protocol=protocol,nbOfNodes=v)
       rmcpp.AddResourceInCatalog(contRes)
 
+def GetRequestForGiveContainer(hostname, contName):
+  import Engines
+  import os
+  rp=Engines.ResourceParameters(name=hostname,
+                                hostname=hostname,
+                                can_launch_batch_jobs=False,
+                                can_run_containers=True,
+                                OS="Linux",
+                                componentList=[],
+                                nb_proc=1,
+                                mem_mb=1000,
+                                cpu_clock=1000,
+                                nb_node=1,
+                                nb_proc_per_node=1,
+                                policy="first",
+                                resList=[])
+
+  cp=Engines.ContainerParameters(container_name=contName,
+                                  mode="start",
+                                  workingdir=os.path.expanduser("~"),
+                                  nb_proc=1,
+                                  isMPI=False,
+                                  parallelLib="",
+                                  resource_params=rp)
+  return cp
+
 ResourceDefinition_cpp.repr = ResourceDefinition_cpp_repr
 ResourceDefinition_cpp.__repr__ = ResourceDefinition_cpp_repr
 ResourcesManager_cpp.GetList = ResourcesManager_cpp_GetList