diff --git a/bheappe/__init__.py b/bheappe/__init__.py
index 6d7da4964bb29d3c735bc3374924c395b1ca3e76..494677b5ea986fb16213c486a6fcedcf6306ce58 100644
--- a/bheappe/__init__.py
+++ b/bheappe/__init__.py
@@ -15,10 +15,10 @@
 
 bl_info = {
     "name" : "bheappe",
-    "author" : "Milan Jaros, Petr Strakos",
+    "author" : "Milan Jaros, Petr Strakos, Lubomir Riha",
     "description" : "Rendering-as-a-Service",
-    "blender" : (3, 2, 0),
-    "version" : (3, 8, 2),
+    "blender" : (3, 3, 0),
+    "version" : (3, 9, 0),
     "location" : "Addon Preferences panel",
     "wiki_url" : "https://blender.it4i.cz/",
     "category" : "System",
diff --git a/bheappe/raas_config.py b/bheappe/raas_config.py
index 3b21ff779a7d8f2bfde80146e76e14b5ceb32fbe..4c97c1d8ed3ff6d8873efe83d6022246307ec5a2 100644
--- a/bheappe/raas_config.py
+++ b/bheappe/raas_config.py
@@ -27,42 +27,17 @@ Cluster_items = [
     ("KAROLINA", "Karolina", ""),
 ]
 
-if bpy.app.version < (2, 90, 0):
-    JobQueue_items = [
-        ("ORIGCPU283", "Blender2.83 CPU", ""),    
-        ("ORIGCUDA283", "Blender2.83 CUDA", ""),
-        ("ORIGEEVEE283", "Blender2.83 Eevee", ""),
-    ]
-elif bpy.app.version < (3, 0, 0):
-    JobQueue_items = [
-        ("ORIGCPU293", "Blender2.93 CPU", ""),    
-        ("ORIGCUDA293", "Blender2.93 CUDA", ""),
-        ("ORIGEEVEE293", "Blender2.93 Eevee", ""),
-    ]
-elif bpy.app.version < (3, 1, 0):
-    JobQueue_items = [
-        ("ORIGCPU30", "Blender3.0 CPU", ""),    
-        ("ORIGCUDA30", "Blender3.0 CUDA", ""),
-        ("ORIGEEVEE30", "Blender3.0 Eevee", ""),
-    ]
-elif bpy.app.version < (3, 2, 0):
-    JobQueue_items = [
-        ("ORIGCPU31", "Blender3.1 CPU", ""),    
-        ("ORIGCUDA31", "Blender3.1 CUDA", ""),
-        ("ORIGEEVEE31", "Blender3.1 Eevee", ""),
-    ]        
-else:
-    JobQueue_items = [
-        ("ORIGCPU32", "Blender3.2 CPU", ""),    
-        ("ORIGCUDA32", "Blender3.2 CUDA", ""),
-        ("ORIGEEVEE32", "Blender3.2 Eevee", ""),
-    ]
+JobQueue_items = [
+    ("ORIGCPU", "CPU", ""),    
+    ("ORIGCUDA", "CUDA", ""),
+    ("ORIGEEVEE", "Eevee", ""),
+]
 
 from . import raas_jobs
 ##################################################################
 ssh_library_items = [
     ("PARAMIKO", "Paramiko", ""),    
-    ("SYSTEM", "System", ""),
+    #("SYSTEM", "System", ""),
 ]
 
 account_types_items = [
@@ -79,8 +54,12 @@ def GetBlenderClusterVersion():
         return '3.0.1-GCC-10.3.0'
     elif bpy.app.version < (3, 2, 0):
         return '3.1.0-GCC-10.3.0'        
+    elif bpy.app.version < (3, 3, 0):
+        return '3.2.2-GCC-10.3.0'        
+    elif bpy.app.version < (3, 4, 0):
+        return '3.3.1-GCC-10.3.0'
     else:
-        return '3.2.2-GCC-10.3.0'
+        return '3.4.0-GCC-10.3.0'
 ##################################################################
 # async def CreateJobSimple(context, token, job_nodes, ClusterNodeTypeId, CommandTemplateId, FileTransferMethodId, ClusterId)
 # async def CreateJobTask2Dep(context, token, job_nodes, ClusterNodeTypeId1, CommandTemplateId1, ClusterNodeTypeId2, CommandTemplateId2, FileTransferMethodId, ClusterId)
@@ -151,57 +130,101 @@ def GetDAQueueMPIProcs(CommandTemplateId):
     return 0
 
 # return cores,queue,script
-def GetDAQueueScript(ClusterId, ClusterNodeTypeId, CommandTemplateId, project_dir, pid):
+def GetDAQueueScript(ClusterId, CommandTemplateId):
     # BARBORA
     if ClusterId == 1:
         if CommandTemplateId == 10:
-            return 36,'qprod','~/bheappe/scripts/job_init.sh'
+            return 36,'~/bheappe/scripts/job_init.sh'
 
         if CommandTemplateId == 11:
-            return 36,'qprod','~/bheappe/scripts/run_blender_cpu.sh'
+            return 36,'~/bheappe/scripts/run_blender_cpu.sh'
 
         if CommandTemplateId == 12:
-            return 36,'qprod','~/bheappe/scripts/job_finish.sh'
+            return 36,'~/bheappe/scripts/job_finish.sh'
 
         if CommandTemplateId == 13:
-            return 24,'qnvidia','~/bheappe/scripts/job_init.sh'
+            return 24,'~/bheappe/scripts/job_init.sh'
 
         if CommandTemplateId == 14:
-            return 24,'qnvidia','~/bheappe/scripts/run_blender_cuda.sh'
+            return 24,'~/bheappe/scripts/run_blender_cuda.sh'
 
         if CommandTemplateId == 15:
-            return 24,'qnvidia','~/bheappe/scripts/job_finish.sh'
+            return 24,'~/bheappe/scripts/job_finish.sh'
 
         if CommandTemplateId == 16:
-            return 24,'qnvidia','~/bheappe/scripts/run_blender_eevee.sh'                   
+            return 24,'~/bheappe/scripts/run_blender_eevee.sh'                   
 
     # KAROLINA
     if ClusterId == 2:     
         if CommandTemplateId == 20:
-            return 128,'qprod','~/bheappe/scripts/job_init.sh'
+            return 128,'~/bheappe/scripts/job_init.sh'
 
         if CommandTemplateId == 21:
-            return 128,'qprod','~/bheappe/scripts/run_blender_cpu.sh'
+            return 128,'~/bheappe/scripts/run_blender_cpu.sh'
 
         if CommandTemplateId == 22:
-            return 128,'qprod','~/bheappe/scripts/job_finish.sh'
+            return 128,'~/bheappe/scripts/job_finish.sh'
 
         if CommandTemplateId == 23:
-            return 128,'qnvidia','~/bheappe/scripts/job_init.sh'
+            return 128,'~/bheappe/scripts/job_init.sh'
 
         if CommandTemplateId == 24:
-            return 128,'qnvidia','~/bheappe/scripts/run_blender_cuda.sh'
+            return 128,'~/bheappe/scripts/run_blender_cuda.sh'
 
         if CommandTemplateId == 25:
-            return 128,'qnvidia','~/bheappe/scripts/job_finish.sh'
+            return 128,'~/bheappe/scripts/job_finish.sh'
 
         if CommandTemplateId == 26:
-            return 128,'qnvidia','~/bheappe/scripts/run_blender_eevee.sh'                               
+            return 128,'~/bheappe/scripts/run_blender_eevee.sh'                               
 
-    return None,None,None
+    return None,None
 
 #def GetGitAddonRepository():
 #    return 'https://code.it4i.cz/raas/bheappe.git'
 
 def GetGitAddonCommand(repository, branch):    
-    return 'if [ -d ~/bheappe ] ; then rm -rf ~/bheappe ; fi ; git clone -q -b ' + branch + ' ' + repository
\ No newline at end of file
+    return 'if [ -d ~/bheappe ] ; then rm -rf ~/bheappe ; fi ; git clone -q -b ' + branch + ' ' + repository
+
+
+def GetCurrentPidInfo(context, preferences):
+    blender_job_info_new = context.scene.raas_blender_job_info_new
+
+    name = ''
+    queue = ''
+    dir = ''    
+
+    if blender_job_info_new.cluster_type == 'BARBORA':
+
+        if 'ORIGCPU' in blender_job_info_new.job_queue:
+            name = preferences.raas_pid_name_barbora_cpu
+            queue = preferences.raas_pid_queue_barbora_cpu
+            dir = preferences.raas_pid_dir_barbora_cpu
+
+        if 'ORIGCUDA' in blender_job_info_new.job_queue:
+            name = preferences.raas_pid_name_barbora_gpu
+            queue = preferences.raas_pid_queue_barbora_gpu
+            dir = preferences.raas_pid_dir_barbora_gpu
+
+        if 'ORIGEEVEE' in blender_job_info_new.job_queue:
+            name = preferences.raas_pid_name_barbora_gpu
+            queue = preferences.raas_pid_queue_barbora_gpu
+            dir = preferences.raas_pid_dir_barbora_gpu
+
+    if blender_job_info_new.cluster_type == 'KAROLINA':
+
+        if 'ORIGCPU' in blender_job_info_new.job_queue:
+            name = preferences.raas_pid_name_karolina_cpu
+            queue = preferences.raas_pid_queue_karolina_cpu
+            dir = preferences.raas_pid_dir_karolina_cpu
+
+        if 'ORIGCUDA' in blender_job_info_new.job_queue:
+            name = preferences.raas_pid_name_karolina_gpu
+            queue = preferences.raas_pid_queue_karolina_gpu
+            dir = preferences.raas_pid_dir_karolina_gpu
+
+        if 'ORIGEEVEE' in blender_job_info_new.job_queue:
+            name = preferences.raas_pid_name_karolina_gpu
+            queue = preferences.raas_pid_queue_karolina_gpu
+            dir = preferences.raas_pid_dir_karolina_gpu
+
+    return name, queue, dir
diff --git a/bheappe/raas_jobs.py b/bheappe/raas_jobs.py
index 4dc1f8c34b98a5bc04350398eb43c1f804b89818..a319fe3e1d4000b314c2300421ee357d3ca2b9d0 100644
--- a/bheappe/raas_jobs.py
+++ b/bheappe/raas_jobs.py
@@ -52,625 +52,638 @@ from . import raas_render
 log = logging.getLogger(__name__)
 ################################
 
-async def CreateJobSimple(context, token, job_nodes, ClusterNodeTypeId, CommandTemplateId, FileTransferMethodId, ClusterId):
-
-        blender_job_info_new = context.scene.raas_blender_job_info_new   
 
-        #filenamext = os.path.basename(blender_job_info_new.blendfile_path)        
-        #filename = os.path.splitext(filenamext)
-        #filename = filename[0]        
-
-        job = None
-        username = raas_pref.preferences().raas_username
-        use_xorg = str(raas_pref.preferences().raas_use_xorg)
-        use_mpi = raas_config.GetDAQueueMPIProcs(CommandTemplateId)
+async def CreateJobSimple(context, token, job_nodes, ClusterNodeTypeId, CommandTemplateId, FileTransferMethodId, ClusterId):
 
-        if blender_job_info_new.render_type == 'IMAGE':
-            job_arrays = None
-            frame_start = str(blender_job_info_new.frame_current)
-            frame_end = str(blender_job_info_new.frame_current)            
-            frame_step = str(blender_job_info_new.frame_step)
+    blender_job_info_new = context.scene.raas_blender_job_info_new
+
+    # filenamext = os.path.basename(blender_job_info_new.blendfile_path)
+    # filename = os.path.splitext(filenamext)
+    # filename = filename[0]
+
+    job = None
+    username = raas_pref.preferences().raas_username
+    use_xorg = str(raas_pref.preferences().raas_use_xorg)
+    use_mpi = raas_config.GetDAQueueMPIProcs(CommandTemplateId)
+
+    if blender_job_info_new.render_type == 'IMAGE':
+        job_arrays = None
+        frame_start = str(blender_job_info_new.frame_current)
+        frame_end = str(blender_job_info_new.frame_current)
+        frame_step = str(blender_job_info_new.frame_step)
+    else:
+        if use_mpi == 0:
+            job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start,
+                                       blender_job_info_new.frame_end, blender_job_info_new.frame_step)
         else:
-            if use_mpi == 0:
-                job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start, blender_job_info_new.frame_end, blender_job_info_new.frame_step)
-            else:
-                job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start, blender_job_info_new.frame_end, blender_job_info_new.frame_step * use_mpi)
-
-            frame_start = str(blender_job_info_new.frame_start)
-            frame_end = str(blender_job_info_new.frame_end)         
-            frame_step = str(blender_job_info_new.frame_step)
-
-        #blender_param = str(filename) + '.blend'
-        blender_param = raas_render.convert_path_to_linux(blender_job_info_new.blendfile)
-        blender_version = raas_config.GetBlenderClusterVersion()
-
-        job_walltime = blender_job_info_new.job_walltime * 60
-
-        task = {
-                        "Name": blender_job_info_new.job_name,
-                        "MinCores": job_nodes,
-                        "MaxCores": job_nodes,
-                        "WalltimeLimit": job_walltime,
-                        "StandardOutputFile": 'stdout',
-                        "StandardErrorFile": 'stderr',
-                        "ProgressFile": 'stdprog',
-                        "LogFile": 'stdlog',
-                        "ClusterNodeTypeId":  ClusterNodeTypeId,
-                        "CommandTemplateId": CommandTemplateId,
-                        "Priority": 4,
-                        "JobArrays": job_arrays,
-                        "EnvironmentVariables": [
-                            {
-                                "Name": "job_project",
-                                "Value": blender_job_info_new.job_project
-                            },
-                            {
-                                "Name": "job_email",
-                                "Value": blender_job_info_new.job_email
-                            },
-                            {
-                                "Name": "frame_start",
-                                "Value": frame_start
-                            },
-                            {
-                                "Name": "frame_end",
-                                "Value": frame_end
-                            },
-                            {
-                                "Name": "frame_step",
-                                "Value": frame_step
-                            },
-                            {
-                                "Name": "username",
-                                "Value": username
-                            },
-                            {
-                                "Name": "blender_version",
-                                "Value": blender_version
-                            },
-                            {
-                                "Name": "use_xorg",
-                                "Value": use_xorg
-                            },
-                            {
-                                "Name": "use_mpi",
-                                "Value": str(use_mpi)
-                            }                           
-                        ],                        
-                        "TemplateParameterValues": [
-                            {
-                                "CommandParameterIdentifier": "inputParam",
-                                "ParameterValue": blender_param
-                            }
-                        ]
-        }
-
-        job = {
-                "Name":  blender_job_info_new.job_name,
-                "MinCores": job_nodes,
-                "MaxCores": job_nodes,
-                "Priority": 4,
-                "Project":  blender_job_info_new.job_project,                
-                "FileTransferMethodId":  FileTransferMethodId,
-                "ClusterId":  ClusterId,
-                "EnvironmentVariables":  None,
-                "WaitingLimit": 0,
-                "WalltimeLimit": job_walltime,
-                "Tasks":  [
-                    task
-                ]
-        }    
-
-        data = {
-            "JobSpecification": job,       
-            "SessionCode": token 
-        }        
-
-        item = context.scene.raas_submitted_job_info_ext_new        
-
-        if raas_pref.preferences().raas_use_direct_access == False:
-            resp_json = await raas_server.post("JobManagement/CreateJob", data) 
-            raas_server.fill_items(item, resp_json)
-        else:
-            # Id : bpy.props.IntProperty(name="Id")
-            item.Id = 0
-            # Name : bpy.props.StringProperty(name="Name")
-            item.Name = blender_job_info_new.job_name
-            # State : bpy.props.EnumProperty(items=JobStateExt_items,name="State")
-            item.State = "CONFIGURING"
-            # Priority : bpy.props.EnumProperty(items=JobPriorityExt_items,name="Priority",default='AVERAGE')
-            item.Priority = "AVERAGE"
-            # Project : bpy.props.StringProperty(name="Project Name")
-            item.Project = blender_job_info_new.job_project
-            # CreationTime : bpy.props.StringProperty(name="Creation Time")
-            # SubmitTime : bpy.props.StringProperty(name="Submit Time")
-            # StartTime : bpy.props.StringProperty(name="Start Time")
-            # EndTime : bpy.props.StringProperty(name="End Time")
-            # TotalAllocatedTime : bpy.props.FloatProperty(name="totalAllocatedTime")
-            # AllParameters : bpy.props.StringProperty(name="allParameters")
-            item.AllParameters = raas_server.json_dumps(data)
-            # Tasks: bpy.props.StringProperty(name="Tasks")
-
-async def CreateJobTask2Dep(context, token, job_nodes1, ClusterNodeTypeId1, CommandTemplateId1, job_nodes2, ClusterNodeTypeId2, CommandTemplateId2, FileTransferMethodId, ClusterId):
+            job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start,
+                                       blender_job_info_new.frame_end, blender_job_info_new.frame_step * use_mpi)
+
+        frame_start = str(blender_job_info_new.frame_start)
+        frame_end = str(blender_job_info_new.frame_end)
+        frame_step = str(blender_job_info_new.frame_step)
+
+    # blender_param = str(filename) + '.blend'
+    blender_param = raas_render.convert_path_to_linux(
+        blender_job_info_new.blendfile)
+    blender_version = raas_config.GetBlenderClusterVersion()
+
+    job_walltime = blender_job_info_new.job_walltime * 60
+
+    task = {
+        "Name": blender_job_info_new.job_name,
+        "MinCores": job_nodes,
+        "MaxCores": job_nodes,
+        "WalltimeLimit": job_walltime,
+        "StandardOutputFile": 'stdout',
+        "StandardErrorFile": 'stderr',
+        "ProgressFile": 'stdprog',
+        "LogFile": 'stdlog',
+        "ClusterNodeTypeId":  ClusterNodeTypeId,
+        "CommandTemplateId": CommandTemplateId,
+        "Priority": 4,
+        "JobArrays": job_arrays,
+        "EnvironmentVariables": [
+                        {
+                            "Name": "job_project",
+                            "Value": blender_job_info_new.job_project
+                        },
+            {
+                            "Name": "job_email",
+                            "Value": blender_job_info_new.job_email
+                        },
+            {
+                            "Name": "frame_start",
+                            "Value": frame_start
+                        },
+            {
+                            "Name": "frame_end",
+                            "Value": frame_end
+                        },
+            {
+                            "Name": "frame_step",
+                            "Value": frame_step
+                        },
+            {
+                            "Name": "username",
+                            "Value": username
+                        },
+            {
+                            "Name": "blender_version",
+                            "Value": blender_version
+                        },
+            {
+                            "Name": "use_xorg",
+                            "Value": use_xorg
+                        },
+            {
+                            "Name": "use_mpi",
+                            "Value": str(use_mpi)
+                        }
+        ],
+        "TemplateParameterValues": [
+            {
+                "CommandParameterIdentifier": "inputParam",
+                "ParameterValue": blender_param
+            }
+        ]
+    }
+
+    job = {
+        "Name":  blender_job_info_new.job_name,
+        "MinCores": job_nodes,
+        "MaxCores": job_nodes,
+        "Priority": 4,
+        "Project":  blender_job_info_new.job_project,
+        "FileTransferMethodId":  FileTransferMethodId,
+        "ClusterId":  ClusterId,
+        "EnvironmentVariables":  None,
+        "WaitingLimit": 0,
+        "WalltimeLimit": job_walltime,
+        "Tasks":  [
+            task
+        ]
+    }
+
+    data = {
+        "JobSpecification": job,
+        "SessionCode": token
+    }
 
-        blender_job_info_new = context.scene.raas_blender_job_info_new   
+    item = context.scene.raas_submitted_job_info_ext_new
 
-        #filenamext = os.path.basename(blender_job_info_new.blendfile_path)
-        #filename = os.path.splitext(filenamext)
-        #filename = filename[0]
+    if raas_pref.preferences().raas_use_direct_access == False:
+        resp_json = await raas_server.post("JobManagement/CreateJob", data)
+        raas_server.fill_items(item, resp_json)
+    else:
+        # Id : bpy.props.IntProperty(name="Id")
+        item.Id = 0
+        # Name : bpy.props.StringProperty(name="Name")
+        item.Name = blender_job_info_new.job_name
+        # State : bpy.props.EnumProperty(items=JobStateExt_items,name="State")
+        item.State = "CONFIGURING"
+        # Priority : bpy.props.EnumProperty(items=JobPriorityExt_items,name="Priority",default='AVERAGE')
+        item.Priority = "AVERAGE"
+        # Project : bpy.props.StringProperty(name="Project Name")
+        item.Project = blender_job_info_new.job_project
+        # CreationTime : bpy.props.StringProperty(name="Creation Time")
+        # SubmitTime : bpy.props.StringProperty(name="Submit Time")
+        # StartTime : bpy.props.StringProperty(name="Start Time")
+        # EndTime : bpy.props.StringProperty(name="End Time")
+        # TotalAllocatedTime : bpy.props.FloatProperty(name="totalAllocatedTime")
+        # AllParameters : bpy.props.StringProperty(name="allParameters")
+        item.AllParameters = raas_server.json_dumps(data)
+        # Tasks: bpy.props.StringProperty(name="Tasks")
 
-        job = None
-        username = raas_pref.preferences().raas_username
-        use_xorg = str(raas_pref.preferences().raas_use_xorg)
-        use_mpi1 = raas_config.GetDAQueueMPIProcs(CommandTemplateId1)
-        use_mpi2 = raas_config.GetDAQueueMPIProcs(CommandTemplateId2)
 
-        if blender_job_info_new.render_type == 'IMAGE':
-            job_arrays = None
-            frame_start = str(blender_job_info_new.frame_current)
-            frame_end = str(blender_job_info_new.frame_current)
-            frame_step = str(blender_job_info_new.frame_step)
-        else:
-            if use_mpi2 == 0:
-                job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start, blender_job_info_new.frame_end, blender_job_info_new.frame_step)
-            else:
-                job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start, blender_job_info_new.frame_end, blender_job_info_new.frame_step * use_mpi2)
-
-            frame_start = str(blender_job_info_new.frame_start)
-            frame_end = str(blender_job_info_new.frame_end)
-            frame_step = str(blender_job_info_new.frame_step)         
-
-        #blender_param = str(filename) + '.blend'
-        blender_param = raas_render.convert_path_to_linux(blender_job_info_new.blendfile)
-        blender_version = raas_config.GetBlenderClusterVersion()
-
-        job_walltime = blender_job_info_new.job_walltime * 60
-
-        task1 = {
-                        "Name": blender_job_info_new.job_name,
-                        "MinCores": job_nodes1,
-                        "MaxCores": job_nodes1,
-                        "WalltimeLimit": 1800,
-                        "StandardOutputFile": 'stdout',
-                        "StandardErrorFile": 'stderr',
-                        "ProgressFile": 'stdprog',
-                        "LogFile": 'stdlog',
-                        "ClusterNodeTypeId":  ClusterNodeTypeId1,
-                        "CommandTemplateId": CommandTemplateId1,
-                        "Priority": 4,
-                        "EnvironmentVariables": [
-                            {
-                                "Name": "job_project",
-                                "Value": blender_job_info_new.job_project
-                            },
-                            {
-                                "Name": "job_email",
-                                "Value": blender_job_info_new.job_email
-                            },
-                            {
-                                "Name": "frame_start",
-                                "Value": frame_start
-                            },
-                            {
-                                "Name": "frame_end",
-                                "Value": frame_end
-                            },
-                            {
-                                "Name": "frame_step",
-                                "Value": frame_step
-                            },
-                            {
-                                "Name": "username",
-                                "Value": username
-                            },
-                            {
-                                "Name": "blender_version",
-                                "Value": blender_version
-                            },
-                            {
-                                "Name": "use_xorg",
-                                "Value": use_xorg
-                            },
-                            {
-                                "Name": "use_mpi",
-                                "Value": str(use_mpi1)
-                            }
-                        ],                        
-                        "TemplateParameterValues": [
-                            {
-                                "CommandParameterIdentifier": "inputParam",
-                                "ParameterValue": blender_param
-                            }
-                        ]
-        }
-
-        task2 = {
-                        "Name": blender_job_info_new.job_name,
-                        "MinCores": job_nodes2,
-                        "MaxCores": job_nodes2,
-                        "WalltimeLimit": job_walltime,
-                        "StandardOutputFile": 'stdout',
-                        "StandardErrorFile": 'stderr',
-                        "ProgressFile": 'stdprog',
-                        "LogFile": 'stdlog',
-                        "ClusterNodeTypeId":  ClusterNodeTypeId2,
-                        "CommandTemplateId": CommandTemplateId2,
-                        "Priority": 4,
-                        "JobArrays": job_arrays,
-                        "DependsOn" : [
-                            task1
-                        ],
-                        "EnvironmentVariables": [
-                            {
-                                "Name": "job_project",
-                                "Value": blender_job_info_new.job_project
-                            },
-                            {
-                                "Name": "job_email",
-                                "Value": blender_job_info_new.job_email
-                            },
-                            {
-                                "Name": "frame_start",
-                                "Value": frame_start
-                            },
-                            {
-                                "Name": "frame_end",
-                                "Value": frame_end
-                            },
-                            {
-                                "Name": "frame_step",
-                                "Value": frame_step
-                            },
-                            {
-                                "Name": "blender_version",
-                                "Value": blender_version
-                            },
-                            {
-                                "Name": "use_xorg",
-                                "Value": use_xorg
-                            },
-                            {
-                                "Name": "use_mpi",
-                                "Value": str(use_mpi2)
-                            }  
-                        ],                        
-                        "TemplateParameterValues": [
-                            {
-                                "CommandParameterIdentifier": "inputParam",
-                                "ParameterValue": blender_param
-                            }
-                        ]
-        }
-
-        job = {
-                "Name":  blender_job_info_new.job_name,
-                "MinCores": job_nodes1,
-                "MaxCores": job_nodes1,
-                "Priority": 4,
-                "Project":  blender_job_info_new.job_project,
-                "FileTransferMethodId":  FileTransferMethodId,
-                "ClusterId":  ClusterId,
-                "EnvironmentVariables":  None,
-                "WaitingLimit": 0,
-                "WalltimeLimit": job_walltime,
-                "Tasks":  [
-                    task1,
-                    task2
-                ]
-        }    
-
-        data = {
-            "JobSpecification": job,       
-            "SessionCode": token 
-        }       
-
-        item = context.scene.raas_submitted_job_info_ext_new
-
-        if raas_pref.preferences().raas_use_direct_access == False:
-            resp_json = await raas_server.post("JobManagement/CreateJob", data) 
-            raas_server.fill_items(item, resp_json)
+async def CreateJobTask2Dep(context, token, job_nodes1, ClusterNodeTypeId1, CommandTemplateId1, job_nodes2, ClusterNodeTypeId2, CommandTemplateId2, FileTransferMethodId, ClusterId):
 
+    blender_job_info_new = context.scene.raas_blender_job_info_new
+
+    # filenamext = os.path.basename(blender_job_info_new.blendfile_path)
+    # filename = os.path.splitext(filenamext)
+    # filename = filename[0]
+
+    job = None
+    username = raas_pref.preferences().raas_username
+    use_xorg = str(raas_pref.preferences().raas_use_xorg)
+    use_mpi1 = raas_config.GetDAQueueMPIProcs(CommandTemplateId1)
+    use_mpi2 = raas_config.GetDAQueueMPIProcs(CommandTemplateId2)
+
+    if blender_job_info_new.render_type == 'IMAGE':
+        job_arrays = None
+        frame_start = str(blender_job_info_new.frame_current)
+        frame_end = str(blender_job_info_new.frame_current)
+        frame_step = str(blender_job_info_new.frame_step)
+    else:
+        if use_mpi2 == 0:
+            job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start,
+                                       blender_job_info_new.frame_end, blender_job_info_new.frame_step)
         else:
-            # Id : bpy.props.IntProperty(name="Id")
-            item.Id = 0
-            # Name : bpy.props.StringProperty(name="Name")
-            item.Name = blender_job_info_new.job_name
-            # State : bpy.props.EnumProperty(items=JobStateExt_items,name="State")
-            item.State = "CONFIGURING"
-            # Priority : bpy.props.EnumProperty(items=JobPriorityExt_items,name="Priority",default='AVERAGE')
-            item.Priority = "AVERAGE"
-            # Project : bpy.props.StringProperty(name="Project Name")
-            item.Project = blender_job_info_new.job_project
-            # CreationTime : bpy.props.StringProperty(name="Creation Time")
-            # SubmitTime : bpy.props.StringProperty(name="Submit Time")
-            # StartTime : bpy.props.StringProperty(name="Start Time")
-            # EndTime : bpy.props.StringProperty(name="End Time")
-            # TotalAllocatedTime : bpy.props.FloatProperty(name="totalAllocatedTime")
-            # AllParameters : bpy.props.StringProperty(name="allParameters")
-            item.AllParameters = raas_server.json_dumps(data)
-            # Tasks: bpy.props.StringProperty(name="Tasks")
+            job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start,
+                                       blender_job_info_new.frame_end, blender_job_info_new.frame_step * use_mpi2)
+
+        frame_start = str(blender_job_info_new.frame_start)
+        frame_end = str(blender_job_info_new.frame_end)
+        frame_step = str(blender_job_info_new.frame_step)
+
+    # blender_param = str(filename) + '.blend'
+    blender_param = raas_render.convert_path_to_linux(
+        blender_job_info_new.blendfile)
+    blender_version = raas_config.GetBlenderClusterVersion()
+
+    job_walltime = blender_job_info_new.job_walltime * 60
+
+    task1 = {
+        "Name": blender_job_info_new.job_name,
+        "MinCores": job_nodes1,
+        "MaxCores": job_nodes1,
+        "WalltimeLimit": 1800,
+        "StandardOutputFile": 'stdout',
+        "StandardErrorFile": 'stderr',
+        "ProgressFile": 'stdprog',
+        "LogFile": 'stdlog',
+        "ClusterNodeTypeId":  ClusterNodeTypeId1,
+        "CommandTemplateId": CommandTemplateId1,
+        "Priority": 4,
+        "EnvironmentVariables": [
+                        {
+                            "Name": "job_project",
+                            "Value": blender_job_info_new.job_project
+                        },
+            {
+                            "Name": "job_email",
+                            "Value": blender_job_info_new.job_email
+                        },
+            {
+                            "Name": "frame_start",
+                            "Value": frame_start
+                        },
+            {
+                            "Name": "frame_end",
+                            "Value": frame_end
+                        },
+            {
+                            "Name": "frame_step",
+                            "Value": frame_step
+                        },
+            {
+                            "Name": "username",
+                            "Value": username
+                        },
+            {
+                            "Name": "blender_version",
+                            "Value": blender_version
+                        },
+            {
+                            "Name": "use_xorg",
+                            "Value": use_xorg
+                        },
+            {
+                            "Name": "use_mpi",
+                            "Value": str(use_mpi1)
+                        }
+        ],
+        "TemplateParameterValues": [
+            {
+                "CommandParameterIdentifier": "inputParam",
+                "ParameterValue": blender_param
+            }
+        ]
+    }
+
+    task2 = {
+        "Name": blender_job_info_new.job_name,
+        "MinCores": job_nodes2,
+        "MaxCores": job_nodes2,
+        "WalltimeLimit": job_walltime,
+        "StandardOutputFile": 'stdout',
+        "StandardErrorFile": 'stderr',
+        "ProgressFile": 'stdprog',
+        "LogFile": 'stdlog',
+        "ClusterNodeTypeId":  ClusterNodeTypeId2,
+        "CommandTemplateId": CommandTemplateId2,
+        "Priority": 4,
+        "JobArrays": job_arrays,
+        "DependsOn": [
+                        task1
+        ],
+        "EnvironmentVariables": [
+            {
+                "Name": "job_project",
+                "Value": blender_job_info_new.job_project
+            },
+            {
+                "Name": "job_email",
+                "Value": blender_job_info_new.job_email
+            },
+            {
+                "Name": "frame_start",
+                "Value": frame_start
+            },
+            {
+                "Name": "frame_end",
+                "Value": frame_end
+            },
+            {
+                "Name": "frame_step",
+                "Value": frame_step
+            },
+            {
+                "Name": "blender_version",
+                "Value": blender_version
+            },
+            {
+                "Name": "use_xorg",
+                "Value": use_xorg
+            },
+            {
+                "Name": "use_mpi",
+                "Value": str(use_mpi2)
+            }
+        ],
+        "TemplateParameterValues": [
+            {
+                "CommandParameterIdentifier": "inputParam",
+                "ParameterValue": blender_param
+            }
+        ]
+    }
+
+    job = {
+        "Name":  blender_job_info_new.job_name,
+        "MinCores": job_nodes1,
+        "MaxCores": job_nodes1,
+        "Priority": 4,
+        "Project":  blender_job_info_new.job_project,
+        "FileTransferMethodId":  FileTransferMethodId,
+        "ClusterId":  ClusterId,
+        "EnvironmentVariables":  None,
+        "WaitingLimit": 0,
+        "WalltimeLimit": job_walltime,
+        "Tasks":  [
+            task1,
+            task2
+        ]
+    }
+
+    data = {
+        "JobSpecification": job,
+        "SessionCode": token
+    }
 
-async def CreateJobTask3Dep(context, token, job_nodes1, ClusterNodeTypeId1, CommandTemplateId1, job_nodes2, ClusterNodeTypeId2, CommandTemplateId2, job_nodes3, ClusterNodeTypeId3, CommandTemplateId3, FileTransferMethodId, ClusterId):
+    item = context.scene.raas_submitted_job_info_ext_new
 
-        blender_job_info_new = context.scene.raas_blender_job_info_new   
+    if raas_pref.preferences().raas_use_direct_access == False:
+        resp_json = await raas_server.post("JobManagement/CreateJob", data)
+        raas_server.fill_items(item, resp_json)
+
+    else:
+        # Id : bpy.props.IntProperty(name="Id")
+        item.Id = 0
+        # Name : bpy.props.StringProperty(name="Name")
+        item.Name = blender_job_info_new.job_name
+        # State : bpy.props.EnumProperty(items=JobStateExt_items,name="State")
+        item.State = "CONFIGURING"
+        # Priority : bpy.props.EnumProperty(items=JobPriorityExt_items,name="Priority",default='AVERAGE')
+        item.Priority = "AVERAGE"
+        # Project : bpy.props.StringProperty(name="Project Name")
+        item.Project = blender_job_info_new.job_project
+        # CreationTime : bpy.props.StringProperty(name="Creation Time")
+        # SubmitTime : bpy.props.StringProperty(name="Submit Time")
+        # StartTime : bpy.props.StringProperty(name="Start Time")
+        # EndTime : bpy.props.StringProperty(name="End Time")
+        # TotalAllocatedTime : bpy.props.FloatProperty(name="totalAllocatedTime")
+        # AllParameters : bpy.props.StringProperty(name="allParameters")
+        item.AllParameters = raas_server.json_dumps(data)
+        # Tasks: bpy.props.StringProperty(name="Tasks")
 
-        #filenamext = os.path.basename(blender_job_info_new.blendfile_path)
-        #filename = os.path.splitext(filenamext)
-        #filename = filename[0]
 
-        job = None
-        username = raas_pref.preferences().raas_username
-        use_xorg = str(raas_pref.preferences().raas_use_xorg)
-        use_mpi1 = raas_config.GetDAQueueMPIProcs(CommandTemplateId1)
-        use_mpi2 = raas_config.GetDAQueueMPIProcs(CommandTemplateId2)
-        use_mpi3 = raas_config.GetDAQueueMPIProcs(CommandTemplateId3)
+async def CreateJobTask3Dep(context, token, job_nodes1, ClusterNodeTypeId1, CommandTemplateId1, job_nodes2, ClusterNodeTypeId2, CommandTemplateId2, job_nodes3, ClusterNodeTypeId3, CommandTemplateId3, FileTransferMethodId, ClusterId):
 
-        if blender_job_info_new.render_type == 'IMAGE':
-            job_arrays = None
-            frame_start = str(blender_job_info_new.frame_current)
-            frame_end = str(blender_job_info_new.frame_current)
-            frame_step = str(blender_job_info_new.frame_step)
+    blender_job_info_new = context.scene.raas_blender_job_info_new
+
+    # filenamext = os.path.basename(blender_job_info_new.blendfile_path)
+    # filename = os.path.splitext(filenamext)
+    # filename = filename[0]
+
+    job = None
+    username = raas_pref.preferences().raas_username
+    use_xorg = str(raas_pref.preferences().raas_use_xorg)
+    use_mpi1 = raas_config.GetDAQueueMPIProcs(CommandTemplateId1)
+    use_mpi2 = raas_config.GetDAQueueMPIProcs(CommandTemplateId2)
+    use_mpi3 = raas_config.GetDAQueueMPIProcs(CommandTemplateId3)
+
+    if blender_job_info_new.render_type == 'IMAGE':
+        job_arrays = None
+        frame_start = str(blender_job_info_new.frame_current)
+        frame_end = str(blender_job_info_new.frame_current)
+        frame_step = str(blender_job_info_new.frame_step)
+    else:
+        if use_mpi2 == 0:
+            job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start,
+                                       blender_job_info_new.frame_end, blender_job_info_new.frame_step)
         else:
-            if use_mpi2 == 0:
-                job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start, blender_job_info_new.frame_end, blender_job_info_new.frame_step)
-            else:
-                job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start, blender_job_info_new.frame_end, blender_job_info_new.frame_step * use_mpi2)
-
-            frame_start = str(blender_job_info_new.frame_start)
-            frame_end = str(blender_job_info_new.frame_end)
-            frame_step = str(blender_job_info_new.frame_step)         
-
-        #blender_param = str(filename) + '.blend'
-        blender_param = raas_render.convert_path_to_linux(blender_job_info_new.blendfile)
-        blender_version = raas_config.GetBlenderClusterVersion()
-
-        job_walltime = blender_job_info_new.job_walltime * 60
-
-        task1 = {
-                        "Name": blender_job_info_new.job_name,
-                        "MinCores": job_nodes1,
-                        "MaxCores": job_nodes1,
-                        "WalltimeLimit": 1800,
-                        "StandardOutputFile": 'stdout',
-                        "StandardErrorFile": 'stderr',
-                        "ProgressFile": 'stdprog',
-                        "LogFile": 'stdlog',
-                        "ClusterNodeTypeId":  ClusterNodeTypeId1,
-                        "CommandTemplateId": CommandTemplateId1,
-                        "Priority": 4,
-                        "EnvironmentVariables": [
-                            {
-                                "Name": "job_project",
-                                "Value": blender_job_info_new.job_project
-                            },
-                            {
-                                "Name": "job_email",
-                                "Value": blender_job_info_new.job_email
-                            },
-                            {
-                                "Name": "frame_start",
-                                "Value": frame_start
-                            },
-                            {
-                                "Name": "frame_end",
-                                "Value": frame_end
-                            },
-                            {
-                                "Name": "frame_step",
-                                "Value": frame_step
-                            },
-                            {
-                                "Name": "username",
-                                "Value": username
-                            },
-                            {
-                                "Name": "blender_version",
-                                "Value": blender_version
-                            },
-                            {
-                                "Name": "use_xorg",
-                                "Value": use_xorg
-                            },
-                            {
-                                "Name": "use_mpi",
-                                "Value": str(use_mpi1)
-                            }  
-                        ],                        
-                        "TemplateParameterValues": [
-                            {
-                                "CommandParameterIdentifier": "inputParam",
-                                "ParameterValue": blender_param
-                            }
-                        ]
-        }
-
-        task2 = {
-                        "Name": blender_job_info_new.job_name,
-                        "MinCores": job_nodes2,
-                        "MaxCores": job_nodes2,
-                        "WalltimeLimit": job_walltime,
-                        "StandardOutputFile": 'stdout',
-                        "StandardErrorFile": 'stderr',
-                        "ProgressFile": 'stdprog',
-                        "LogFile": 'stdlog',
-                        "ClusterNodeTypeId":  ClusterNodeTypeId2,
-                        "CommandTemplateId": CommandTemplateId2,
-                        "Priority": 4,
-                        "JobArrays": job_arrays,
-                        "DependsOn" : [
-                            task1
-                        ],
-                        "EnvironmentVariables": [
-                            {
-                                "Name": "job_project",
-                                "Value": blender_job_info_new.job_project
-                            },
-                            {
-                                "Name": "job_email",
-                                "Value": blender_job_info_new.job_email
-                            },
-                            {
-                                "Name": "frame_start",
-                                "Value": frame_start
-                            },
-                            {
-                                "Name": "frame_end",
-                                "Value": frame_end
-                            },
-                            {
-                                "Name": "frame_step",
-                                "Value": frame_step
-                            },
-                            {
-                                "Name": "blender_version",
-                                "Value": blender_version
-                            },
-                            {
-                                "Name": "use_xorg",
-                                "Value": use_xorg
-                            },
-                            {
-                                "Name": "use_mpi",
-                                "Value": str(use_mpi2)
-                            }  
-                        ],                        
-                        "TemplateParameterValues": [
-                            {
-                                "CommandParameterIdentifier": "inputParam",
-                                "ParameterValue": blender_param
-                            }
-                        ]
-        }
-
-        task3 = {
-                        "Name": blender_job_info_new.job_name,
-                        "MinCores": job_nodes3,
-                        "MaxCores": job_nodes3,
-                        "WalltimeLimit": job_walltime,
-                        "StandardOutputFile": 'stdout',
-                        "StandardErrorFile": 'stderr',
-                        "ProgressFile": 'stdprog',
-                        "LogFile": 'stdlog',
-                        "ClusterNodeTypeId":  ClusterNodeTypeId3,
-                        "CommandTemplateId": CommandTemplateId3,
-                        "Priority": 4,
-                        "DependsOn" : [
-                            task2
-                        ],
-                        "EnvironmentVariables": [
-                            {
-                                "Name": "job_project",
-                                "Value": blender_job_info_new.job_project
-                            },
-                            {
-                                "Name": "job_email",
-                                "Value": blender_job_info_new.job_email
-                            },
-                            {
-                                "Name": "frame_start",
-                                "Value": frame_start
-                            },
-                            {
-                                "Name": "frame_end",
-                                "Value": frame_end
-                            },
-                            {
-                                "Name": "frame_step",
-                                "Value": frame_step
-                            },
-                            {
-                                "Name": "blender_version",
-                                "Value": blender_version
-                            },
-                            {
-                                "Name": "use_xorg",
-                                "Value": use_xorg
-                            },
-                            {
-                                "Name": "use_mpi",
-                                "Value": str(use_mpi3)
-                            }  
-                        ],                        
-                        "TemplateParameterValues": [
-                            {
-                                "CommandParameterIdentifier": "inputParam",
-                                "ParameterValue": blender_param
-                            }
-                        ]
-        }
-
-        job = {
-                "Name":  blender_job_info_new.job_name,
-                "MinCores": job_nodes1,
-                "MaxCores": job_nodes1,
-                "Priority": 4,
-                "Project":  blender_job_info_new.job_project,
-                "FileTransferMethodId":  FileTransferMethodId,
-                "ClusterId":  ClusterId,
-                "EnvironmentVariables":  None,
-                "WaitingLimit": 0,
-                "WalltimeLimit": job_walltime,
-                "Tasks":  [
-                    task1,
-                    task2,
-                    task3
-                ]
-        }    
-
-        data = {
-            "JobSpecification": job,       
-            "SessionCode": token 
-        }       
-
-        item = context.scene.raas_submitted_job_info_ext_new
-
-        if raas_pref.preferences().raas_use_direct_access == False:
-            resp_json = await raas_server.post("JobManagement/CreateJob", data) 
-            raas_server.fill_items(item, resp_json)
+            job_arrays = '%d-%d:%d' % (blender_job_info_new.frame_start,
+                                       blender_job_info_new.frame_end, blender_job_info_new.frame_step * use_mpi2)
+
+        frame_start = str(blender_job_info_new.frame_start)
+        frame_end = str(blender_job_info_new.frame_end)
+        frame_step = str(blender_job_info_new.frame_step)
+
+    # blender_param = str(filename) + '.blend'
+    blender_param = raas_render.convert_path_to_linux(
+        blender_job_info_new.blendfile)
+    blender_version = raas_config.GetBlenderClusterVersion()
+
+    job_walltime = blender_job_info_new.job_walltime * 60
+
+    task1 = {
+        "Name": blender_job_info_new.job_name,
+        "MinCores": job_nodes1,
+        "MaxCores": job_nodes1,
+        "WalltimeLimit": 1800,
+        "StandardOutputFile": 'stdout',
+        "StandardErrorFile": 'stderr',
+        "ProgressFile": 'stdprog',
+        "LogFile": 'stdlog',
+        "ClusterNodeTypeId":  ClusterNodeTypeId1,
+        "CommandTemplateId": CommandTemplateId1,
+        "Priority": 4,
+        "EnvironmentVariables": [
+                        {
+                            "Name": "job_project",
+                            "Value": blender_job_info_new.job_project
+                        },
+            {
+                            "Name": "job_email",
+                            "Value": blender_job_info_new.job_email
+                        },
+            {
+                            "Name": "frame_start",
+                            "Value": frame_start
+                        },
+            {
+                            "Name": "frame_end",
+                            "Value": frame_end
+                        },
+            {
+                            "Name": "frame_step",
+                            "Value": frame_step
+                        },
+            {
+                            "Name": "username",
+                            "Value": username
+                        },
+            {
+                            "Name": "blender_version",
+                            "Value": blender_version
+                        },
+            {
+                            "Name": "use_xorg",
+                            "Value": use_xorg
+                        },
+            {
+                            "Name": "use_mpi",
+                            "Value": str(use_mpi1)
+                        }
+        ],
+        "TemplateParameterValues": [
+            {
+                "CommandParameterIdentifier": "inputParam",
+                "ParameterValue": blender_param
+            }
+        ]
+    }
+
+    task2 = {
+        "Name": blender_job_info_new.job_name,
+        "MinCores": job_nodes2,
+        "MaxCores": job_nodes2,
+        "WalltimeLimit": job_walltime,
+        "StandardOutputFile": 'stdout',
+        "StandardErrorFile": 'stderr',
+        "ProgressFile": 'stdprog',
+        "LogFile": 'stdlog',
+        "ClusterNodeTypeId":  ClusterNodeTypeId2,
+        "CommandTemplateId": CommandTemplateId2,
+        "Priority": 4,
+        "JobArrays": job_arrays,
+        "DependsOn": [
+                        task1
+        ],
+        "EnvironmentVariables": [
+            {
+                "Name": "job_project",
+                "Value": blender_job_info_new.job_project
+            },
+            {
+                "Name": "job_email",
+                "Value": blender_job_info_new.job_email
+            },
+            {
+                "Name": "frame_start",
+                "Value": frame_start
+            },
+            {
+                "Name": "frame_end",
+                "Value": frame_end
+            },
+            {
+                "Name": "frame_step",
+                "Value": frame_step
+            },
+            {
+                "Name": "blender_version",
+                "Value": blender_version
+            },
+            {
+                "Name": "use_xorg",
+                "Value": use_xorg
+            },
+            {
+                "Name": "use_mpi",
+                "Value": str(use_mpi2)
+            }
+        ],
+        "TemplateParameterValues": [
+            {
+                "CommandParameterIdentifier": "inputParam",
+                "ParameterValue": blender_param
+            }
+        ]
+    }
+
+    task3 = {
+        "Name": blender_job_info_new.job_name,
+        "MinCores": job_nodes3,
+        "MaxCores": job_nodes3,
+        "WalltimeLimit": job_walltime,
+        "StandardOutputFile": 'stdout',
+        "StandardErrorFile": 'stderr',
+        "ProgressFile": 'stdprog',
+        "LogFile": 'stdlog',
+        "ClusterNodeTypeId":  ClusterNodeTypeId3,
+        "CommandTemplateId": CommandTemplateId3,
+        "Priority": 4,
+        "DependsOn": [
+                        task2
+        ],
+        "EnvironmentVariables": [
+            {
+                "Name": "job_project",
+                "Value": blender_job_info_new.job_project
+            },
+            {
+                "Name": "job_email",
+                "Value": blender_job_info_new.job_email
+            },
+            {
+                "Name": "frame_start",
+                "Value": frame_start
+            },
+            {
+                "Name": "frame_end",
+                "Value": frame_end
+            },
+            {
+                "Name": "frame_step",
+                "Value": frame_step
+            },
+            {
+                "Name": "blender_version",
+                "Value": blender_version
+            },
+            {
+                "Name": "use_xorg",
+                "Value": use_xorg
+            },
+            {
+                "Name": "use_mpi",
+                "Value": str(use_mpi3)
+            }
+        ],
+        "TemplateParameterValues": [
+            {
+                "CommandParameterIdentifier": "inputParam",
+                "ParameterValue": blender_param
+            }
+        ]
+    }
+
+    job = {
+        "Name":  blender_job_info_new.job_name,
+        "MinCores": job_nodes1,
+        "MaxCores": job_nodes1,
+        "Priority": 4,
+        "Project":  blender_job_info_new.job_project,
+        "FileTransferMethodId":  FileTransferMethodId,
+        "ClusterId":  ClusterId,
+        "EnvironmentVariables":  None,
+        "WaitingLimit": 0,
+        "WalltimeLimit": job_walltime,
+        "Tasks":  [
+            task1,
+            task2,
+            task3
+        ]
+    }
+
+    data = {
+        "JobSpecification": job,
+        "SessionCode": token
+    }
 
-        else:
-            # Id : bpy.props.IntProperty(name="Id")
-            item.Id = 0
-            # Name : bpy.props.StringProperty(name="Name")
-            item.Name = blender_job_info_new.job_name
-            # State : bpy.props.EnumProperty(items=JobStateExt_items,name="State")
-            item.State = "CONFIGURING"
-            # Priority : bpy.props.EnumProperty(items=JobPriorityExt_items,name="Priority",default='AVERAGE')
-            item.Priority = "AVERAGE"
-            # Project : bpy.props.StringProperty(name="Project Name")
-            item.Project = blender_job_info_new.job_project
-            # CreationTime : bpy.props.StringProperty(name="Creation Time")
-            # SubmitTime : bpy.props.StringProperty(name="Submit Time")
-            # StartTime : bpy.props.StringProperty(name="Start Time")
-            # EndTime : bpy.props.StringProperty(name="End Time")
-            # TotalAllocatedTime : bpy.props.FloatProperty(name="totalAllocatedTime")
-            # AllParameters : bpy.props.StringProperty(name="allParameters")
-            item.AllParameters = raas_server.json_dumps(data)
-            # Tasks: bpy.props.StringProperty(name="Tasks")
-
-# _19=$(echo ' cd /mnt/proj3/open-18-15/heappe/executions/salomon/7; /.key_script/nodefile.sh; cd /mnt/proj3/open-18-15/heappe/executions/salomon/7/19; 
-# /mnt/proj3/open-18-15/bheappe/salomon/run_blender_mic_pre.sh raas_test\.blend; 1>> /mnt/proj3/open-18-15/heappe/executions/salomon/7/19/stdout 2>> 
-# /mnt/proj3/open-18-15/heappe/executions/salomon/7/19/stderr ' | qsub -P "test_salo" -A OPEN-18-15 -v frame_end=1,frame_start=1,job_email=milan.jaros@vsb.cz,job_project=test_salo 
-# -l select=1:ncpus=24 -N 19 -l walltime=0:10:0 -e /mnt/proj3/open-18-15/heappe/executions/salomon/7/19/stderr -o /mnt/proj3/open-18-15/heappe/executions/salomon/7/19/stdout 
+    item = context.scene.raas_submitted_job_info_ext_new
+
+    if raas_pref.preferences().raas_use_direct_access == False:
+        resp_json = await raas_server.post("JobManagement/CreateJob", data)
+        raas_server.fill_items(item, resp_json)
+
+    else:
+        # Id : bpy.props.IntProperty(name="Id")
+        item.Id = 0
+        # Name : bpy.props.StringProperty(name="Name")
+        item.Name = blender_job_info_new.job_name
+        # State : bpy.props.EnumProperty(items=JobStateExt_items,name="State")
+        item.State = "CONFIGURING"
+        # Priority : bpy.props.EnumProperty(items=JobPriorityExt_items,name="Priority",default='AVERAGE')
+        item.Priority = "AVERAGE"
+        # Project : bpy.props.StringProperty(name="Project Name")
+        item.Project = blender_job_info_new.job_project
+        # CreationTime : bpy.props.StringProperty(name="Creation Time")
+        # SubmitTime : bpy.props.StringProperty(name="Submit Time")
+        # StartTime : bpy.props.StringProperty(name="Start Time")
+        # EndTime : bpy.props.StringProperty(name="End Time")
+        # TotalAllocatedTime : bpy.props.FloatProperty(name="totalAllocatedTime")
+        # AllParameters : bpy.props.StringProperty(name="allParameters")
+        item.AllParameters = raas_server.json_dumps(data)
+        # Tasks: bpy.props.StringProperty(name="Tasks")
+
+# _19=$(echo ' cd /mnt/proj3/open-18-15/heappe/executions/salomon/7; /.key_script/nodefile.sh; cd /mnt/proj3/open-18-15/heappe/executions/salomon/7/19;
+# /mnt/proj3/open-18-15/bheappe/salomon/run_blender_mic_pre.sh raas_test\.blend; 1>> /mnt/proj3/open-18-15/heappe/executions/salomon/7/19/stdout 2>>
+# /mnt/proj3/open-18-15/heappe/executions/salomon/7/19/stderr ' | qsub -P "test_salo" -A OPEN-18-15 -v frame_end=1,frame_start=1,job_email=milan.jaros@vsb.cz,job_project=test_salo
+# -l select=1:ncpus=24 -N 19 -l walltime=0:10:0 -e /mnt/proj3/open-18-15/heappe/executions/salomon/7/19/stderr -o /mnt/proj3/open-18-15/heappe/executions/salomon/7/19/stdout
 # -r n -q qprod -l cpu_hyper_threading=true);echo $_19;
-# 
-# _20=$(echo ' cd /mnt/proj3/open-18-15/heappe/executions/salomon/7; /.key_script/nodefile.sh; 
-# cd /mnt/proj3/open-18-15/heappe/executions/salomon/7/20; ln -s ../19/ .; rm /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stdout; 
-# rm /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stderr;/mnt/proj3/open-18-15/bheappe/salomon/run_blender_mpp.sh raas_test\.blend; 
-# 1>> /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stdout 2>> /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stderr ' 
-# | qsub -P "test_salo" -A OPEN-18-15 -W depend=afterok:$_19 -v frame_end=1,frame_start=1,job_email=milan.jaros@vsb.cz,job_project=test_salo 
-# -l select=1:ncpus=24 -N 20 -l walltime=0:30:0 -e /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stderr 
+#
+# _20=$(echo ' cd /mnt/proj3/open-18-15/heappe/executions/salomon/7; /.key_script/nodefile.sh;
+# cd /mnt/proj3/open-18-15/heappe/executions/salomon/7/20; ln -s ../19/ .; rm /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stdout;
+# rm /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stderr;/mnt/proj3/open-18-15/bheappe/salomon/run_blender_mpp.sh raas_test\.blend;
+# 1>> /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stdout 2>> /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stderr '
+# | qsub -P "test_salo" -A OPEN-18-15 -W depend=afterok:$_19 -v frame_end=1,frame_start=1,job_email=milan.jaros@vsb.cz,job_project=test_salo
+# -l select=1:ncpus=24 -N 20 -l walltime=0:30:0 -e /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stderr
 # -o /mnt/proj3/open-18-15/heappe/executions/salomon/7/20/stdout -r n -q qmpp -l cpu_hyper_threading=true);
 # echo $_20;
-# 
-# _21=$(echo ' cd /mnt/proj3/open-18-15/heappe/executions/salomon/7; ~/.key_script/nodefile.sh; 
-# cd /mnt/proj3/open-18-15/heappe/executions/salomon/7/21; ln -s ../20/ .; 
-# rm /mnt/proj3/open-18-15/heappe/executions/salomon/7/21/stdout; 
+#
+# _21=$(echo ' cd /mnt/proj3/open-18-15/heappe/executions/salomon/7; ~/.key_script/nodefile.sh;
+# cd /mnt/proj3/open-18-15/heappe/executions/salomon/7/21; ln -s ../20/ .;
+# rm /mnt/proj3/open-18-15/heappe/executions/salomon/7/21/stdout;
 # rm /mnt/proj3/open-18-15/heappe/executions/salomon/7/21/stderr;
-# /mnt/proj3/open-18-15/bheappe/salomon/run_blender_mic_post.sh raas_test\.blend; 1>> /mnt/proj3/open-18-15/heappe/executions/salomon/7/21/stdout 2>> 
-# /mnt/proj3/open-18-15/heappe/executions/salomon/7/21/stderr ' | qsub -P "test_salo" -A OPEN-18-15 -W depend=afterok:$_20 -v frame_start=1,job_email=milan.jaros@vsb.cz,job_project=test_salo,frame_end=1 
+# /mnt/proj3/open-18-15/bheappe/salomon/run_blender_mic_post.sh raas_test\.blend; 1>> /mnt/proj3/open-18-15/heappe/executions/salomon/7/21/stdout 2>>
+# /mnt/proj3/open-18-15/heappe/executions/salomon/7/21/stderr ' | qsub -P "test_salo" -A OPEN-18-15 -W depend=afterok:$_20 -v frame_start=1,job_email=milan.jaros@vsb.cz,job_project=test_salo,frame_end=1
 # -l select=1:ncpus=24 -N 21 -l walltime=0:10:0 -e /mnt/proj3/open-18-15/heappe/executions/salomon/7/21/stderr -o /mnt/proj3/open-18-15/heappe/executions/salomon/7/21/stdout
-# -r n -q qprod -l cpu_hyper_threading=true);echo $_21; 
+# -r n -q qprod -l cpu_hyper_threading=true);echo $_21;
+
 
 def CmdCreatePBSJob(context):
     item = context.scene.raas_submitted_job_info_ext_new
@@ -687,11 +700,15 @@ def CmdCreatePBSJob(context):
     for task in tasks:
         cluster_node_type_id = task['ClusterNodeTypeId']
         command_template_id = task['CommandTemplateId']
-        cores,queue,script = raas_config.GetDAQueueScript(cluster_id, cluster_node_type_id, command_template_id, raas_pref.preferences().raas_pid_dir, raas_pref.preferences().raas_pid.lower())
+        cores, script = raas_config.GetDAQueueScript(
+            cluster_id, command_template_id)
+        pid_name, pid_queue, pid_dir = raas_config.GetCurrentPidInfo(
+            context, raas_pref.preferences())
+
         file = task['TemplateParameterValues'][0]['ParameterValue']
 
-        ncpus = int(cores)
-        nodes = 1 #int(task['MaxCores'] / cores)
+        # ncpus = int(cores)
+        nodes = 1  # int(task['MaxCores'] / cores)
 
         envs = task['EnvironmentVariables']
         job_env = ''
@@ -700,13 +717,14 @@ def CmdCreatePBSJob(context):
             for env in envs:
                 job_env = job_env + env['Name'] + '=' + env['Value'] + ','
 
-        work_dir = raas_render.get_direct_access_remote_storage(context) + '/' + job_name
+        work_dir = raas_render.get_direct_access_remote_storage(
+            context) + '/' + job_name
 
         work_dir_stderr = work_dir + '/' + task['StandardErrorFile']
-        work_dir_stdout = work_dir + '/' + task['StandardOutputFile']        
+        work_dir_stdout = work_dir + '/' + task['StandardOutputFile']
 
         mm, ss = divmod(task['WalltimeLimit'], 60)
-        hh, mm= divmod(mm, 60)
+        hh, mm = divmod(mm, 60)
 
         walltime = str(hh) + ':' + str(mm) + ':' + str(ss)
 
@@ -719,19 +737,28 @@ def CmdCreatePBSJob(context):
         if 'DependsOn' in task:
             depends_on = ' -W depend=afterany:$_' + str(task_id - 1)
             job_env = job_env + 'depends_on=\"$_' + str(task_id - 1) + '\",'
-        
+
         job_env = job_env + 'work_dir=' + work_dir
 
         xorg_true = ''
         if raas_pref.preferences().raas_use_xorg == True:
             xorg_true = ' -l xorg=True '
 
-        cmd = cmd + '_' + str(task_id) + '=$(echo \' ' + script + ' ' + file + ' \' | qsub -P \"' + job_project + '\" -A ' + raas_config.GetDAOpenCallProject(raas_pref.preferences().raas_pid.upper()) + ' -v ' + job_env + ' -l select=' + str(nodes) + ':ncpus=' + str(ncpus) + ' -N \"' + job_project + '\" -l walltime=' + walltime + ' -e ' + work_dir_stderr + ' -o ' + work_dir_stdout + ' -q ' + queue + job_array + depends_on + xorg_true + ');echo $_' + str(task_id) + ';'
+        # cmd = cmd + '_' + str(task_id) + '=$(echo \' ' + script + ' ' + file + ' \' | qsub -P \"' + job_project + '\" -A ' + raas_config.GetDAOpenCallProject(pid_name.upper()) + ' -v ' + job_env + ' -l select=' + str(nodes) + \
+        #     ':ncpus=' + str(ncpus) + ' -N \"' + job_project + '\" -l walltime=' + walltime + ' -e ' + work_dir_stderr + \
+        #     ' -o ' + work_dir_stdout + ' -q ' + pid_queue + job_array + \
+        #             depends_on + xorg_true + ');echo $_' + str(task_id) + ';'
+
+        cmd = cmd + '_' + str(task_id) + '=$(echo \' ' + script + ' ' + file + ' \' | qsub -P \"' + job_project + '\" -A ' + raas_config.GetDAOpenCallProject(pid_name.upper()) + ' -v ' + job_env + ' -l select=' + str(nodes) + \
+            ' -N \"' + job_project + '\" -l walltime=' + walltime + ' -e ' + work_dir_stderr + \
+            ' -o ' + work_dir_stdout + ' -q ' + pid_queue + job_array + \
+                    depends_on + xorg_true + ');echo $_' + str(task_id) + ';'
 
         task_id = task_id + 1
 
     return cmd
 
+
 def CmdCreateStatPBSJobFile(context, pbs_jobs):
     item = context.scene.raas_submitted_job_info_ext_new
     data = json.loads(item.AllParameters)
@@ -745,7 +772,8 @@ def CmdCreateStatPBSJobFile(context, pbs_jobs):
     pbs_job = pbs_jobs[1]
 
     if len(pbs_job) > 0:
-        job_log = raas_render.get_direct_access_remote_storage(context) + '/' + job_name + '.job'
+        job_log = raas_render.get_direct_access_remote_storage(
+            context) + '/' + job_name + '.job'
         cmd = cmd + 'qstat -fx ' + pbs_job + ' > ' + job_log + ';'
 
     # for pbs_job in pbs_jobs:
@@ -755,16 +783,20 @@ def CmdCreateStatPBSJobFile(context, pbs_jobs):
 
     return cmd
 
+
 def CmdCreateProjectGroupFolder(context):
     cmd = 'mkdir -p ' + raas_render.get_direct_access_remote_storage(context)
     return cmd
 
+
 def CmdGetStatPBSJobFile(context, job_name):
-    job_log = raas_render.get_direct_access_remote_storage(context) + '/' + job_name + '.job'
-    cmd = 'cat ' +  job_log
-        
+    job_log = raas_render.get_direct_access_remote_storage(
+        context) + '/' + job_name + '.job'
+    cmd = 'cat ' + job_log
+
     return cmd
 
+
 def CmdGetPidDir(pid):
-    cmd = 'it4i-get-project-dir ' +  pid
-    return cmd
\ No newline at end of file
+    cmd = 'it4i-get-project-dir ' + pid
+    return cmd
diff --git a/bheappe/raas_pref.py b/bheappe/raas_pref.py
index b2b501855e9357868c33c20caa044cd5e4205842..c9cd2e33321575a50710e0dc3edd4c15309a8a5a 100644
--- a/bheappe/raas_pref.py
+++ b/bheappe/raas_pref.py
@@ -18,6 +18,10 @@
 
 # (c) IT4Innovations, VSB-TUO
 
+import importlib
+import sys
+import subprocess
+from collections import namedtuple
 import functools
 import logging
 import os.path
@@ -41,6 +45,7 @@ ADDON_NAME = 'bheappe'
 
 log = logging.getLogger(__name__)
 
+
 @functools.lru_cache()
 def factor(factor: float) -> dict:
     """Construct keyword argument for UILayout.split().
@@ -53,25 +58,28 @@ def factor(factor: float) -> dict:
     return {'factor': factor}
 
 ##################################################
-def show_message_box(message = "", title = "BHeappe", icon = 'INFO'):
+
+
+def show_message_box(message="", title="BHeappe", icon='INFO'):
 
     def draw(self, context):
         self.layout.label(text=message)
 
-    bpy.context.window_manager.popup_menu(draw, title = title, icon = icon)
+    bpy.context.window_manager.popup_menu(draw, title=title, icon=icon)
+
 
 ##################################################
-from collections import namedtuple
-import subprocess, sys, importlib
 
 Dependency = namedtuple("Dependency", ["module", "package", "name"])
 python_dependencies = (Dependency(module="paramiko", package="paramiko", name=None),
-                    Dependency(module="scp", package="scp", name=None),
-                    Dependency(module="blender_asset_tracer", package="blender_asset_tracer", name=None),                    
-                )
+                       Dependency(module="scp", package="scp", name=None),
+                       Dependency(module="blender_asset_tracer",
+                                  package="blender_asset_tracer", name=None),
+                       )
 
 internal_dependencies = []
 
+
 def import_module(module_name, global_name=None, reload=True):
     if global_name is None:
         global_name = module_name
@@ -83,6 +91,7 @@ def import_module(module_name, global_name=None, reload=True):
         # the given name, just like the regular import would.
         globals()[global_name] = importlib.import_module(module_name)
 
+
 def install_pip():
     try:
         if bpy.app.version < (2, 90, 0):
@@ -94,7 +103,8 @@ def install_pip():
         subprocess.run([python_exe, "-m", "pip", "--version"], check=True)
 
         # Upgrade
-        subprocess.run([python_exe, "-m", "pip", "install", "--upgrade", "pip"], check=True)
+        subprocess.run([python_exe, "-m", "pip", "install",
+                       "--upgrade", "pip"], check=True)
 
     except subprocess.CalledProcessError:
         import ensurepip
@@ -102,6 +112,7 @@ def install_pip():
         ensurepip.bootstrap()
         os.environ.pop("PIP_REQ_TRACKER", None)
 
+
 def install_and_import_module(module_name, package_name=None, global_name=None):
     if package_name is None:
         package_name = module_name
@@ -118,23 +129,27 @@ def install_and_import_module(module_name, package_name=None, global_name=None):
     else:
         python_exe = sys.executable
 
-    subprocess.run([python_exe, "-m", "pip", "install", package_name], check=True, env=environ_copy)
+    subprocess.run([python_exe, "-m", "pip", "install",
+                   package_name], check=True, env=environ_copy)
 
     # The installation succeeded, attempt to import the module again
-    import_module(module_name, global_name)      
+    import_module(module_name, global_name)
+
+################################################################
+
 
-################################################################      
 def _paramiko_generate_ssh_key(private_filepath, public_filepath, password):
 
-  import paramiko 
-  key = paramiko.RSAKey.generate(2048)
-  key.write_private_key_file(private_filepath, password)
-   
-  public_key = "%s %s"  % (key.get_name(), key.get_base64())
-  with open(public_filepath,"w") as f:
-    f.write(public_key)
- 
-  f.close()
+    import paramiko
+    key = paramiko.RSAKey.generate(2048)
+    key.write_private_key_file(private_filepath, password)
+
+    public_key = "%s %s" % (key.get_name(), key.get_base64())
+    with open(public_filepath, "w") as f:
+        f.write(public_key)
+
+    f.close()
+
 
 class RAAS_OT_generate_sshkey(Operator):
     bl_idname = 'raas.generate_sshkey'
@@ -147,23 +162,28 @@ class RAAS_OT_generate_sshkey(Operator):
                 return {"CANCELLED"}
 
             if len(preferences().raas_gen_public_key_path) == 0:
-                preferences().raas_gen_public_key_path = preferences().raas_job_storage_path + '/raas_gen.public.key'
+                preferences().raas_gen_public_key_path = preferences(
+                ).raas_job_storage_path + '/raas_gen.public.key'
 
             if len(preferences().raas_gen_private_key_path) == 0:
-                preferences().raas_gen_private_key_path = preferences().raas_job_storage_path + '/raas_gen.private.key'
+                preferences().raas_gen_private_key_path = preferences(
+                ).raas_job_storage_path + '/raas_gen.private.key'
 
-            _paramiko_generate_ssh_key(preferences().raas_gen_private_key_path, preferences().raas_gen_public_key_path, preferences().raas_gen_password)
+            _paramiko_generate_ssh_key(preferences().raas_gen_private_key_path, preferences(
+            ).raas_gen_public_key_path, preferences().raas_gen_password)
 
         except Exception as e:
             import traceback
             traceback.print_exc()
 
-            self.report({'ERROR'}, "Problem with %s: %s: %s" % (self.bl_label, e.__class__, e))
+            self.report({'ERROR'}, "Problem with %s: %s: %s" %
+                        (self.bl_label, e.__class__, e))
             return {"CANCELLED"}
 
         self.report({'INFO'}, "'%s' finished" % (self.bl_label))
         return {"FINISHED"}
 
+
 class RAAS_OT_upload_sshkey(Operator):
     bl_idname = 'raas.upload_sshkey'
     bl_label = 'Upload public key'
@@ -177,113 +197,265 @@ class RAAS_OT_upload_sshkey(Operator):
             if len(preferences().raas_gen_public_key_path) > 0:
                 with open(preferences().raas_gen_public_key_path) as f:
                     public_key = f.readlines()
-                
+
                 bpy.context.window_manager.clipboard = public_key[0]
 
             import webbrowser
-            if preferences().raas_account_type == "EDUID":            
-                webbrowser.open('https://signup.e-infra.cz/fed/registrar/?vo=IT4Innovations', new=2)
-            else:                
-                webbrowser.open('https://extranet.it4i.cz/ssp/?action=changesshkey&login=%s' % preferences().raas_gen_username, new=2)
+            if preferences().raas_account_type == "EDUID":
+                webbrowser.open(
+                    'https://signup.e-infra.cz/fed/registrar/?vo=IT4Innovations', new=2)
+            else:
+                webbrowser.open('https://extranet.it4i.cz/ssp/?action=changesshkey&login=%s' %
+                                preferences().raas_gen_username, new=2)
 
         except Exception as e:
             import traceback
             traceback.print_exc()
 
-            self.report({'ERROR'}, "Problem with %s: %s: %s" % (self.bl_label, e.__class__, e))
+            self.report({'ERROR'}, "Problem with %s: %s: %s" %
+                        (self.bl_label, e.__class__, e))
             return {"CANCELLED"}
 
         self.report({'INFO'}, "'%s' finished" % (self.bl_label))
         return {"FINISHED"}
 
-class RAAS_OT_setup_sshkey(Operator):
-    bl_idname = 'raas.setup_sshkey'
-    bl_label = 'Setup'
-    bl_description = ("Setup")
+
+# class RAAS_OT_setup_sshkey(Operator):
+#     bl_idname = 'raas.setup_sshkey'
+#     bl_label = 'Setup'
+#     bl_description = ("Setup")
+
+#     def execute(self, context):
+#         try:
+#             pref = preferences()
+
+#             if not pref.check_valid_settings_gen():
+#                 return {"CANCELLED"}
+
+#             pref.raas_da_username = pref.raas_gen_username
+#             pref.raas_private_key_path = pref.raas_gen_private_key_path
+#             pref.raas_da_password = pref.raas_gen_password
+#             pref.raas_pid = pref.raas_gen_pid
+#             pref.raas_project_group = pref.raas_da_username
+
+#             # TODO
+#             if not pref.check_valid_settings(type='PROJECT_DIR'):
+#                 return {"CANCELLED"}
+
+#             cmd = raas_jobs.CmdGetPidDir(pref.raas_pid.upper())
+#             if len(cmd) > 0:
+#                 server = raas_config.GetDAServer(context)
+#                 res = raas_render.ssh_command_sync(server, cmd)
+#                 pref.raas_pid_dir = res.strip()
+
+#         except Exception as e:
+#             import traceback
+#             traceback.print_exc()
+
+#             self.report({'ERROR'}, "Problem with %s: %s: %s" %
+#                         (self.bl_label, e.__class__, e))
+#             return {"CANCELLED"}
+
+#         self.report({'INFO'}, "'%s' finished" % (self.bl_label))
+#         return {"FINISHED"}
+
+
+# class RAAS_OT_find_pid_dir(Operator):
+#     bl_idname = 'raas.find_pid_dir'
+#     bl_label = 'Find Project Dir'
+#     bl_description = ("Find Project Dir")
+
+#     def execute(self, context):
+#         # success = True
+
+#         for cl in raas_config.Cluster_items:
+#             try:
+#                 if not preferences().check_valid_settings(type='PROJECT_DIR'):
+#                     return {"CANCELLED"}
+
+#                 cmd = raas_jobs.CmdGetPidDir(preferences().raas_pid.upper())
+#                 if len(cmd) > 0:
+#                     # server = raas_config.GetDAServer(context)
+#                     server = raas_config.GetServerFromType(cl[0])
+#                     res = raas_render.ssh_command_sync(server, cmd)
+#                     preferences().raas_pid_dir = res.strip()
+
+#                     break
+
+#             except Exception as e:
+#                 import traceback
+#                 traceback.print_exc()
+
+#                 self.report({'ERROR'}, "Problem with %s: %s: %s" %
+#                             (self.bl_label, e.__class__, e))
+#                 # return {"CANCELLED"}
+#                 # success = False
+
+#         self.report({'INFO'}, "'%s' finished" % (self.bl_label))
+#         return {"FINISHED"}
+
+class RAAS_OT_find_pid_dir_barbora_cpu(Operator):
+    bl_idname = 'raas.find_pid_dir_barbora_cpu'
+    bl_label = 'Find Dir'
+    bl_description = ("Find")
 
     def execute(self, context):
+        # success = True
+
+        #for cl in raas_config.Cluster_items:
         try:
-            pref = preferences()
+            if not preferences().check_valid_settings(type='PROJECT_DIR'):
+                return {"CANCELLED"}
 
-            if not pref.check_valid_settings_gen():
+            cmd = raas_jobs.CmdGetPidDir(
+                preferences().raas_pid_name_barbora_cpu.upper())
+            if len(cmd) > 0:
+                # server = raas_config.GetDAServer(context)
+                server = raas_config.GetServerFromType("BARBORA")
+                res = raas_render.ssh_command_sync(server, cmd)
+                preferences().raas_pid_dir_barbora_cpu = res.strip()
+
+                #break
+
+        except Exception as e:
+            import traceback
+            traceback.print_exc()
+
+            self.report({'ERROR'}, "Problem with %s: %s: %s" %
+                        (self.bl_label, e.__class__, e))
+            # return {"CANCELLED"}
+            # success = False
+
+        self.report({'INFO'}, "'%s' finished" % (self.bl_label))
+        return {"FINISHED"}
+
+
+class RAAS_OT_find_pid_dir_barbora_gpu(Operator):
+    bl_idname = 'raas.find_pid_dir_barbora_gpu'
+    bl_label = 'Find Dir'
+    bl_description = ("Find")
+
+    def execute(self, context):
+        # success = True
+
+        # for cl in raas_config.Cluster_items:
+        try:
+            if not preferences().check_valid_settings(type='PROJECT_DIR'):
                 return {"CANCELLED"}
 
-            pref.raas_da_username = pref.raas_gen_username 
-            pref.raas_private_key_path = pref.raas_gen_private_key_path
-            pref.raas_da_password = pref.raas_gen_password
-            pref.raas_pid = pref.raas_gen_pid
-            pref.raas_project_group = pref.raas_da_username
+            cmd = raas_jobs.CmdGetPidDir(
+                preferences().raas_pid_name_barbora_gpu.upper())
+            if len(cmd) > 0:
+                # server = raas_config.GetDAServer(context)
+                server = raas_config.GetServerFromType("BARBORA")
+                res = raas_render.ssh_command_sync(server, cmd)
+                preferences().raas_pid_dir_barbora_gpu = res.strip()
+
+                # break
+
+        except Exception as e:
+            import traceback
+            traceback.print_exc()
 
-            # TODO
-            if not pref.check_valid_settings(type='PROJECT_DIR'):
-                return {"CANCELLED"}        
+            self.report({'ERROR'}, "Problem with %s: %s: %s" %
+                        (self.bl_label, e.__class__, e))
+            # return {"CANCELLED"}
+            # success = False
+
+        self.report({'INFO'}, "'%s' finished" % (self.bl_label))
+        return {"FINISHED"}
 
-            cmd = raas_jobs.CmdGetPidDir(pref.raas_pid.upper())
+
+class RAAS_OT_find_pid_dir_karolina_cpu(Operator):
+    bl_idname = 'raas.find_pid_dir_karolina_cpu'
+    bl_label = 'Find Dir'
+    bl_description = ("Find")
+
+    def execute(self, context):
+        # success = True
+
+        # for cl in raas_config.Cluster_items:
+        try:
+            if not preferences().check_valid_settings(type='PROJECT_DIR'):
+                return {"CANCELLED"}
+
+            cmd = raas_jobs.CmdGetPidDir(
+                preferences().raas_pid_name_karolina_cpu.upper())
             if len(cmd) > 0:
-                server = raas_config.GetDAServer(context)
+                # server = raas_config.GetDAServer(context)
+                server = raas_config.GetServerFromType("KAROLINA")
                 res = raas_render.ssh_command_sync(server, cmd)
-                pref.raas_pid_dir = res.strip()
+                preferences().raas_pid_dir_karolina_cpu = res.strip()
+
+                # break
 
         except Exception as e:
             import traceback
             traceback.print_exc()
 
-            self.report({'ERROR'}, "Problem with %s: %s: %s" % (self.bl_label, e.__class__, e))                
-            return {"CANCELLED"}
+            self.report({'ERROR'}, "Problem with %s: %s: %s" %
+                        (self.bl_label, e.__class__, e))
+            # return {"CANCELLED"}
+            # success = False
 
         self.report({'INFO'}, "'%s' finished" % (self.bl_label))
-        return {"FINISHED"}        
+        return {"FINISHED"}
+
 
-class RAAS_OT_find_pid_dir(Operator):
-    bl_idname = 'raas.find_pid_dir'
-    bl_label = 'Find Project Dir'
-    bl_description = ("Find Project Dir")
+class RAAS_OT_find_pid_dir_karolina_gpu(Operator):
+    bl_idname = 'raas.find_pid_dir_karolina_gpu'
+    bl_label = 'Find Dir'
+    bl_description = ("Find")
 
     def execute(self, context):
-        #success = True
+        # success = True
 
-        for cl in raas_config.Cluster_items:        
-            try:
-                if not preferences().check_valid_settings(type='PROJECT_DIR'):
-                    return {"CANCELLED"}
+        # for cl in raas_config.Cluster_items:
+        try:
+            if not preferences().check_valid_settings(type='PROJECT_DIR'):
+                return {"CANCELLED"}
 
-                cmd = raas_jobs.CmdGetPidDir(preferences().raas_pid.upper())
-                if len(cmd) > 0:
-                    #server = raas_config.GetDAServer(context)
-                    server = raas_config.GetServerFromType(cl[0])
-                    res = raas_render.ssh_command_sync(server, cmd)
-                    preferences().raas_pid_dir = res.strip()
+            cmd = raas_jobs.CmdGetPidDir(
+                preferences().raas_pid_name_karolina_gpu.upper())
+            if len(cmd) > 0:
+                # server = raas_config.GetDAServer(context)
+                server = raas_config.GetServerFromType("KAROLINA")
+                res = raas_render.ssh_command_sync(server, cmd)
+                preferences().raas_pid_dir_karolina_gpu = res.strip()
 
-                    break
+                # break
 
-            except Exception as e:
-                import traceback
-                traceback.print_exc()
+        except Exception as e:
+            import traceback
+            traceback.print_exc()
 
-                self.report({'ERROR'}, "Problem with %s: %s: %s" % (self.bl_label, e.__class__, e))                
-                #return {"CANCELLED"}
-                #success = False
+            self.report({'ERROR'}, "Problem with %s: %s: %s" %
+                        (self.bl_label, e.__class__, e))
+            # return {"CANCELLED"}
+            # success = False
 
         self.report({'INFO'}, "'%s' finished" % (self.bl_label))
         return {"FINISHED"}
 
+
 class RAAS_OT_install_scripts(Operator):
     bl_idname = 'raas.install_scripts'
     bl_label = 'Install scripts on the cluster'
     bl_description = ("Install scripts")
 
     def execute(self, context):
-        #success = True
+        # success = True
 
         for cl in raas_config.Cluster_items:
             try:
                 if not preferences().check_valid_settings(type='INSTALL_SCRIPTS'):
-                    return {"CANCELLED"}                
+                    return {"CANCELLED"}
 
-                cmd = raas_config.GetGitAddonCommand(preferences().raas_scripts_repository, preferences().raas_scripts_repository_branch)
+                cmd = raas_config.GetGitAddonCommand(preferences(
+                ).raas_scripts_repository, preferences().raas_scripts_repository_branch)
                 if len(cmd) > 0:
-                    #raas_render.ssh_command_sync('barbora.it4i.cz', cmd)
-                    #raas_render.ssh_command_sync('karolina.it4i.cz', cmd)
+                    # raas_render.ssh_command_sync('barbora.it4i.cz', cmd)
+                    # raas_render.ssh_command_sync('karolina.it4i.cz', cmd)
                     server = raas_config.GetServerFromType(cl[0])
                     raas_render.ssh_command_sync(server, cmd)
                     preferences().raas_scripts_installed = True
@@ -292,9 +464,10 @@ class RAAS_OT_install_scripts(Operator):
                 import traceback
                 traceback.print_exc()
 
-                self.report({'ERROR'}, "Problem with %s: %s: %s" % (self.bl_label, e.__class__, e))                
-                #return {"CANCELLED"}
-                #success = False
+                self.report({'ERROR'}, "Problem with %s: %s: %s" %
+                            (self.bl_label, e.__class__, e))
+                # return {"CANCELLED"}
+                # success = False
 
         self.report({'INFO'}, "'%s' finished" % (self.bl_label))
         return {"FINISHED"}
@@ -319,12 +492,14 @@ class RAAS_OT_install_scripts(Operator):
 #             import traceback
 #             traceback.print_exc()
 
-#             self.report({'ERROR'}, "Problem with %s: %s: %s" % (self.bl_label, e.__class__, e))                
+#             self.report({'ERROR'}, "Problem with %s: %s: %s" % (self.bl_label, e.__class__, e))
 #             return {"CANCELLED"}
 
 #         self.report({'INFO'}, "'%s' finished" % (self.bl_label))
-#         return {"FINISHED"}        
+#         return {"FINISHED"}
 ##################################################################
+
+
 class RAAS_OT_install_dependencies(Operator):
     bl_idname = 'raas.install_dependencies'
     bl_label = 'Install dependencies'
@@ -339,9 +514,9 @@ class RAAS_OT_install_dependencies(Operator):
                 install_and_import_module(module_name=dependency.module,
                                           package_name=dependency.package,
                                           global_name=dependency.name)
-            
-            #enable_internal_addons()
-            #install_external_addons()
+
+            # enable_internal_addons()
+            # install_external_addons()
 
         except (subprocess.CalledProcessError, ImportError) as err:
             self.report({"ERROR"}, str(err))
@@ -350,12 +525,13 @@ class RAAS_OT_install_dependencies(Operator):
         preferences().dependencies_installed = True
 
         # Register the panels, operators, etc. since dependencies are installed
-        #from . import sim_scene
-        #sim_scene.register()
+        # from . import sim_scene
+        # sim_scene.register()
 
         self.report({'INFO'}, "'%s' finished" % (self.bl_label))
         return {"FINISHED"}
 
+
 class RAAS_OT_update_dependencies(Operator):
     bl_idname = 'raas.update_dependencies'
     bl_label = 'Update dependencies'
@@ -370,9 +546,9 @@ class RAAS_OT_update_dependencies(Operator):
                 install_and_import_module(module_name=dependency.module,
                                           package_name=dependency.package,
                                           global_name=dependency.name)
-            
-            #enable_internal_addons()
-            #install_external_addons()
+
+            # enable_internal_addons()
+            # install_external_addons()
 
         except (subprocess.CalledProcessError, ImportError) as err:
             self.report({"ERROR"}, str(err))
@@ -381,12 +557,13 @@ class RAAS_OT_update_dependencies(Operator):
         preferences().dependencies_installed = True
 
         # Register the panels, operators, etc. since dependencies are installed
-        #from . import sim_scene
-        #sim_scene.register()
+        # from . import sim_scene
+        # sim_scene.register()
 
         self.report({'INFO'}, "'%s' finished" % (self.bl_label))
-        return {"FINISHED"}                  
-##################################################    
+        return {"FINISHED"}
+##################################################
+
 
 class RaasPreferences(AddonPreferences):
     bl_idname = ADDON_NAME
@@ -410,7 +587,7 @@ class RaasPreferences(AddonPreferences):
     # raas_server: StringProperty(
     #     name='RaaS Server',
     #     default=''
-    # )    
+    # )
 
     raas_username: StringProperty(
         name='Username',
@@ -425,18 +602,84 @@ class RaasPreferences(AddonPreferences):
         subtype='PASSWORD'
     )
 
-    raas_pid: StringProperty(
+    ####################### BARBORA######################################
+
+    raas_pid_name_barbora_cpu: StringProperty(
+        name='Project ID',
+        description='IT4Innovations computing resource allocated by the project allocation committee to the primary investigator, e.g. OPEN-XX-XX, DD-XX-XX',
+        default=''
+    )
+
+    raas_pid_queue_barbora_cpu: StringProperty(
+        name='Project Queue',
+        description='The queue for running the job on the cluster, e.g. qcpu, qgpu',
+        default='qcpu'
+    )
+
+    raas_pid_dir_barbora_cpu: StringProperty(
+        name='Project Dir',
+        description='The PROJECT data storage is a central storage for projects/users data on IT4Innovations, e.g. /mnt/projX/OPEN-XX-XX, /mnt/projX/DD-XX-XX',
+        default=''
+    )
+
+    raas_pid_name_barbora_gpu: StringProperty(
         name='Project ID',
         description='IT4Innovations computing resource allocated by the project allocation committee to the primary investigator, e.g. OPEN-XX-XX, DD-XX-XX',
         default=''
     )
 
-    raas_pid_dir: StringProperty(
+    raas_pid_queue_barbora_gpu: StringProperty(
+        name='Project Queue',
+        description='The queue for running the job on the cluster, e.g. qcpu, qgpu',
+        default='qgpu'
+    )
+
+    raas_pid_dir_barbora_gpu: StringProperty(
         name='Project Dir',
         description='The PROJECT data storage is a central storage for projects/users data on IT4Innovations, e.g. /mnt/projX/OPEN-XX-XX, /mnt/projX/DD-XX-XX',
         default=''
     )
 
+    ####################### KAROLINA######################################
+
+    raas_pid_name_karolina_cpu: StringProperty(
+        name='Project ID',
+        description='IT4Innovations computing resource allocated by the project allocation committee to the primary investigator, e.g. OPEN-XX-XX, DD-XX-XX',
+        default=''
+    )
+
+    raas_pid_queue_karolina_cpu: StringProperty(
+        name='Project Queue',
+        description='The queue for running the job on the cluster, e.g. qcpu, qgpu',
+        default='qcpu'
+    )
+
+    raas_pid_dir_karolina_cpu: StringProperty(
+        name='Project Dir',
+        description='The PROJECT data storage is a central storage for projects/users data on IT4Innovations, e.g. /mnt/projX/OPEN-XX-XX, /mnt/projX/DD-XX-XX',
+        default=''
+    )
+
+    raas_pid_name_karolina_gpu: StringProperty(
+        name='Project ID',
+        description='IT4Innovations computing resource allocated by the project allocation committee to the primary investigator, e.g. OPEN-XX-XX, DD-XX-XX',
+        default=''
+    )
+
+    raas_pid_queue_karolina_gpu: StringProperty(
+        name='Project Queue',
+        description='The queue for running the job on the cluster, e.g. qcpu, qgpu',
+        default='qgpu'
+    )
+
+    raas_pid_dir_karolina_gpu: StringProperty(
+        name='Project Dir',
+        description='The PROJECT data storage is a central storage for projects/users data on IT4Innovations, e.g. /mnt/projX/OPEN-XX-XX, /mnt/projX/DD-XX-XX',
+        default=''
+    )
+
+    #############################################################
+
     raas_job_storage_path: StringProperty(
         name='Local Storage Path',
         description='Path where to store job files',
@@ -453,15 +696,15 @@ class RaasPreferences(AddonPreferences):
     #     default=True
     # )
 
-    raas_ssh_library : EnumProperty(
+    raas_ssh_library: EnumProperty(
         name='SSH Library',
-        items=raas_config.ssh_library_items        
-    ) 
+        items=raas_config.ssh_library_items
+    )
 
-    raas_account_type : EnumProperty(
+    raas_account_type: EnumProperty(
         name='Account Type',
         items=raas_config.account_types_items
-    )    
+    )
 
     raas_use_direct_access: BoolProperty(
         name='Use Direct Access',
@@ -471,8 +714,8 @@ class RaasPreferences(AddonPreferences):
     raas_use_xorg: BoolProperty(
         name='Use Xorg',
         default=False
-    )   
-    
+    )
+
     raas_private_key_path: StringProperty(
         name='Private Key Path',
         description='Private Key Path',
@@ -501,7 +744,7 @@ class RaasPreferences(AddonPreferences):
         description='Gen. Private Key Path',
         subtype='FILE_PATH',
         default=''
-    ) 
+    )
 
     raas_gen_public_key_path: StringProperty(
         name='Gen. Public Key Path',
@@ -509,7 +752,7 @@ class RaasPreferences(AddonPreferences):
         subtype='FILE_PATH',
         default=''
     )
-    
+
     raas_scripts_repository: StringProperty(
         name='Repository',
         default='https://code.it4i.cz/raas/bheappe.git'
@@ -524,11 +767,11 @@ class RaasPreferences(AddonPreferences):
         default=False
     )
 
-    raas_gen_pid: StringProperty(
-        name='Project ID',
-        default=''
-    )            
-    
+    # raas_gen_pid: StringProperty(
+    #     name='Project ID',
+    #     default=''
+    # )
+
     raas_gen_username: StringProperty(
         name='Username',
         default=''
@@ -540,81 +783,97 @@ class RaasPreferences(AddonPreferences):
         subtype='PASSWORD'
     )
 
-    def check_valid_settings(self, type = 'NONE'):       
-        if len(self.raas_pid) == 0:
-            show_message_box(message='Project ID is not set in preferences', icon='ERROR')
-            return False
+    def check_valid_settings(self, type='NONE'):
+        # if len(self.raas_pid) == 0:
+        #     show_message_box(
+        #         message='Project ID is not set in preferences', icon='ERROR')
+        #     return False
 
         if self.raas_use_direct_access:
             if self.raas_ssh_library == 'PARAMIKO':
                 if len(self.raas_da_username) == 0:
-                    show_message_box(message='Username is not set in preferences', icon='ERROR')
+                    show_message_box(
+                        message='Username is not set in preferences', icon='ERROR')
                     return False
 
                 if len(self.raas_private_key_path) == 0:
-                    show_message_box(message='Private Key File is not set in preferences', icon='ERROR')
+                    show_message_box(
+                        message='Private Key File is not set in preferences', icon='ERROR')
                     return False
 
-                if len(self.raas_da_password) == 0:
-                    show_message_box(message='Key Passphrase is not set in preferences', icon='ERROR')
-                    return False
+                # if len(self.raas_da_password) == 0:
+                #     show_message_box(message='Key Passphrase is not set in preferences', icon='ERROR')
+                #     return False
+
+            # if len(self.raas_pid_dir) == 0 and type != 'PROJECT_DIR' and type != 'INSTALL_SCRIPTS':
+            #     show_message_box(
+            #         message='Project Dir is not set in preferences', icon='ERROR')
+            #     return False
 
-            if len(self.raas_pid_dir) == 0 and type != 'PROJECT_DIR' and type != 'INSTALL_SCRIPTS':
-                show_message_box(message='Project Dir is not set in preferences', icon='ERROR')
-                return False
- 
             if not self.raas_scripts_installed and type != 'PROJECT_DIR' and type != 'INSTALL_SCRIPTS':
-                show_message_box(message='Scripts are not installed', icon='ERROR')
+                show_message_box(
+                    message='Scripts are not installed', icon='ERROR')
                 return False
 
             if len(self.raas_scripts_repository) == 0 or len(self.raas_scripts_repository_branch) == 0:
-                show_message_box(message='Git repository is not set in preferences', icon='ERROR')
+                show_message_box(
+                    message='Git repository is not set in preferences', icon='ERROR')
                 return False
         else:
             if len(self.raas_username) == 0:
-                show_message_box(message='Username is not set in preferences', icon='ERROR')
+                show_message_box(
+                    message='Username is not set in preferences', icon='ERROR')
                 return False
 
             if len(self.raas_password) == 0:
-                show_message_box(message='Password is not set in preferences', icon='ERROR')
+                show_message_box(
+                    message='Password is not set in preferences', icon='ERROR')
                 return False
-    
+
         if not self.dependencies_installed:
-            show_message_box(message='Dependencies are not installed', icon='ERROR')
+            show_message_box(
+                message='Dependencies are not installed', icon='ERROR')
             return False
 
         if not self.raas_job_storage_path and type != 'PROJECT_DIR' and type != 'INSTALL_SCRIPTS':
-            show_message_box(message='Local Storage Path is not set in preferences', icon='ERROR')
-            return False            
+            show_message_box(
+                message='Local Storage Path is not set in preferences', icon='ERROR')
+            return False
 
         return True
 
-    def check_valid_settings_gen(self, type = 'NONE'):
+    def check_valid_settings_gen(self, type='NONE'):
         if not self.dependencies_installed:
-            show_message_box(message='Dependencies are not installed', icon='ERROR')
+            show_message_box(
+                message='Dependencies are not installed', icon='ERROR')
             return False
 
-        if len(self.raas_gen_pid) == 0:
-            show_message_box(message='Project ID is not set in the generate SSH keys section', icon='ERROR')
-            return False
+        # if len(self.raas_gen_pid) == 0:
+        #     show_message_box(
+        #         message='Project ID is not set in the generate SSH keys section', icon='ERROR')
+        #     return False
 
         if len(self.raas_gen_username) == 0:
-            show_message_box(message='Username is not set in the generate SSH keys section', icon='ERROR')
+            show_message_box(
+                message='Username is not set in the generate SSH keys section', icon='ERROR')
             return False
 
         if len(self.raas_gen_public_key_path) == 0 and type != 'GENERATE':
-            show_message_box(message='Public Key File is not set in the generate SSH keys section', icon='ERROR')
+            show_message_box(
+                message='Public Key File is not set in the generate SSH keys section', icon='ERROR')
             return False
 
         if len(self.raas_gen_private_key_path) == 0 and type != 'GENERATE':
-            show_message_box(message='Private Key File is not set in the generate SSH keys section', icon='ERROR')
+            show_message_box(
+                message='Private Key File is not set in the generate SSH keys section', icon='ERROR')
             return False
 
         if len(self.raas_gen_password) == 0:
-            show_message_box(message='Key Passphrase is not set in the generate SSH keys section', icon='ERROR')
-            return False            
+            show_message_box(
+                message='Key Passphrase is not set in the generate SSH keys section', icon='ERROR')
+            return False
 
-        return True        
+        return True
 
     def reset_messages(self):
         self.ok_message = ''
@@ -625,49 +884,49 @@ class RaasPreferences(AddonPreferences):
 
         box = layout.box()
 
-        raas_pid = box.split(**factor(0.25), align=True)
-        raas_pid.label(text='Project ID:')
-        pid_box = raas_pid.row(align=True)        
-        pid_box.prop(self, 'raas_pid', text='')         
+        # raas_pid = box.split(**factor(0.25), align=True)
+        # raas_pid.label(text='Project ID:')
+        # pid_box = raas_pid.row(align=True)
+        # pid_box.prop(self, 'raas_pid', text='')
 
         if self.raas_use_direct_access == True:
             if self.raas_ssh_library == 'PARAMIKO':
                 auth_split = box.split(**factor(0.25), align=True)
                 auth_split.label(text='Username:')
-                user_box = auth_split.row(align=True)        
+                user_box = auth_split.row(align=True)
                 user_box.prop(self, 'raas_da_username', text='')
 
                 pkey_split = box.split(**factor(0.25), align=True)
                 pkey_split.label(text='Private Key File:')
-                user_box = pkey_split.row(align=True)        
+                user_box = pkey_split.row(align=True)
                 user_box.prop(self, 'raas_private_key_path', text='')
 
                 auth_split = box.split(**factor(0.25), align=True)
                 auth_split.label(text='Key Passphrase:')
-                user_box = auth_split.row(align=True)        
-                user_box.prop(self, 'raas_da_password', text='') 
-
-            raas_pid_dir = box.split(**factor(0.25), align=True)
-            raas_pid_dir.label(text='Project Dir:')
-            pid_dir_box = raas_pid_dir.row(align=True)        
-            pid_dir_box.prop(self, 'raas_pid_dir', text='')
-            pid_dir_box.operator(RAAS_OT_find_pid_dir.bl_idname, icon="CONSOLE")   
-        else:           
+                user_box = auth_split.row(align=True)
+                user_box.prop(self, 'raas_da_password', text='')
+
+            # raas_pid_dir = box.split(**factor(0.25), align=True)
+            # raas_pid_dir.label(text='Project Dir:')
+            # pid_dir_box = raas_pid_dir.row(align=True)
+            # pid_dir_box.prop(self, 'raas_pid_dir', text='')
+            # pid_dir_box.operator(RAAS_OT_find_pid_dir.bl_idname, icon="CONSOLE")
+        else:
 
             # raas_server = box.split(**factor(0.25), align=True)
             # raas_server.label(text='Server:')
-            # user_box = raas_server.row(align=True)        
+            # user_box = raas_server.row(align=True)
             # user_box.prop(self, 'raas_server', text='')
 
             auth_split = box.split(**factor(0.25), align=True)
             auth_split.label(text='Username:')
-            user_box = auth_split.row(align=True)        
+            user_box = auth_split.row(align=True)
             user_box.prop(self, 'raas_username', text='')
 
             auth_split = box.split(**factor(0.25), align=True)
             auth_split.label(text='Password:')
-            user_box = auth_split.row(align=True)        
-            user_box.prop(self, 'raas_password', text='')        
+            user_box = auth_split.row(align=True)
+            user_box.prop(self, 'raas_password', text='')
 
             box.operator('raas_auth.validate')
 
@@ -678,8 +937,67 @@ class RaasPreferences(AddonPreferences):
 
             if self.ok_message:
                 sub = layout.row()
-                sub.label(text=self.ok_message, icon='FILE_TICK')                           
-       
+                sub.label(text=self.ok_message, icon='FILE_TICK')
+
+        box = layout.box()
+
+        # BARBORA
+        # box = box.box()
+        # box.label("Barbora")
+
+        # raas_pid_name_barbora_cpu
+        # raas_pid_queue_barbora_cpu
+        # raas_pid_dir_barbora_cpu
+        raas_pid = box.split(**factor(0.25), align=True)
+        raas_pid.label(text='Barbora CPU:')
+        pid_box = raas_pid.row(align=True)
+        pid_box.prop(self, 'raas_pid_name_barbora_cpu', text='Name')
+        pid_box.prop(self, 'raas_pid_queue_barbora_cpu', text='Queue')
+        pid_box.prop(self, 'raas_pid_dir_barbora_cpu', text='Dir')
+        pid_box.operator(RAAS_OT_find_pid_dir_barbora_cpu.bl_idname, icon="CONSOLE")
+
+        # raas_pid_name_barbora_gpu
+        # raas_pid_queue_barbora_gpu
+        # raas_pid_dir_barbora_gpu
+        raas_pid = box.split(**factor(0.25), align=True)
+        raas_pid.label(text='Barbora GPU:')
+        pid_box = raas_pid.row(align=True)
+        pid_box.prop(self, 'raas_pid_name_barbora_gpu', text='Name')
+        pid_box.prop(self, 'raas_pid_queue_barbora_gpu', text='Queue')
+        pid_box.prop(self, 'raas_pid_dir_barbora_gpu', text='Dir')
+        pid_box.operator(
+            RAAS_OT_find_pid_dir_barbora_gpu.bl_idname, icon="CONSOLE")
+
+        # KAROLINA
+        # box = box.box()
+        # box.label("Karolina")
+
+        # raas_pid_name_karolina_cpu
+        # raas_pid_queue_karolina_cpu
+        # raas_pid_dir_karolina_cpu
+        raas_pid = box.split(**factor(0.25), align=True)
+        raas_pid.label(text='Karolina CPU:')
+        pid_box = raas_pid.row(align=True)
+        pid_box.prop(self, 'raas_pid_name_karolina_cpu', text='Name')
+        pid_box.prop(self, 'raas_pid_queue_karolina_cpu', text='Queue')
+        pid_box.prop(self, 'raas_pid_dir_karolina_cpu', text='Dir')
+        pid_box.operator(
+            RAAS_OT_find_pid_dir_karolina_cpu.bl_idname, icon="CONSOLE")
+
+        # raas_pid_name_karolina_gpu
+        # raas_pid_queue_karolina_gpu
+        # raas_pid_dir_karolina_gpu
+        raas_pid = box.split(**factor(0.25), align=True)
+        raas_pid.label(text='Karolina GPU:')
+        pid_box = raas_pid.row(align=True)
+        pid_box.prop(self, 'raas_pid_name_karolina_gpu', text='Name')
+        pid_box.prop(self, 'raas_pid_queue_karolina_gpu', text='Queue')
+        pid_box.prop(self, 'raas_pid_dir_karolina_gpu', text='Dir')
+        pid_box.operator(
+            RAAS_OT_find_pid_dir_karolina_gpu.bl_idname, icon="CONSOLE")
+
+        ###
+
         box = layout.box()
 
         raas_box = box.column()
@@ -687,116 +1005,123 @@ class RaasPreferences(AddonPreferences):
         path_split.label(text='Local Storage Path:')
         path_box = path_split.row(align=True)
         path_box.prop(self, 'raas_job_storage_path', text='')
-        props = path_box.operator('raas.explore_file_path', text='', icon='DISK_DRIVE')
+        props = path_box.operator(
+            'raas.explore_file_path', text='', icon='DISK_DRIVE')
         props.path = self.raas_job_storage_path
 
         if self.raas_use_direct_access == True:
             raas_pgroup = box.split(**factor(0.25), align=True)
             raas_pgroup.label(text='Working Group:')
-            pgroup_box = raas_pgroup.row(align=True)        
+            pgroup_box = raas_pgroup.row(align=True)
             pgroup_box.prop(self, 'raas_project_group', text='')
 
             raas_xorg = box.split(**factor(0.25), align=True)
             raas_xorg.label(text='Use Xorg:')
-            xorg_box = raas_xorg.row(align=True)        
-            xorg_box.prop(self, 'raas_use_xorg', text='')                                                   
+            xorg_box = raas_xorg.row(align=True)
+            xorg_box.prop(self, 'raas_use_xorg', text='')
 
-        boxD = layout.box()       
+        boxD = layout.box()
         boxD.label(text='Dependencies:')
 
         dependencies_installed = preferences().dependencies_installed
         if not dependencies_installed:
             boxD.label(text='Dependencies are not installed', icon='ERROR')
-        
+
         if not dependencies_installed:
-            boxD.operator(RAAS_OT_install_dependencies.bl_idname, icon="CONSOLE")
+            boxD.operator(RAAS_OT_install_dependencies.bl_idname,
+                          icon="CONSOLE")
         else:
-            boxD.operator(RAAS_OT_update_dependencies.bl_idname, icon="CONSOLE")
+            boxD.operator(RAAS_OT_update_dependencies.bl_idname,
+                          icon="CONSOLE")
 
-        box = layout.box()
+        # box = layout.box()
 
-        par_split = box.split(**factor(0.25), align=True)
-        par_split.label(text='SSH Library:')
-        user_box = par_split.row(align=True)        
-        user_box.prop(self, 'raas_ssh_library', text='')        
+        # par_split = box.split(**factor(0.25), align=True)
+        # par_split.label(text='SSH Library:')
+        # user_box = par_split.row(align=True)
+        # user_box.prop(self, 'raas_ssh_library', text='')
 
         box = layout.box()
 
         da_split = box.split(**factor(0.25), align=True)
         da_split.label(text='Use Direct Access:')
-        user_box = da_split.row(align=True)        
-        user_box.prop(self, 'raas_use_direct_access', text='')        
+        user_box = da_split.row(align=True)
+        user_box.prop(self, 'raas_use_direct_access', text='')
 
         if self.raas_use_direct_access == True:
-            boxG = box.box()       
+            boxG = box.box()
             boxG.label(text='Install scripts:')
             rep_split = boxG.split(**factor(0.25), align=True)
             rep_split.label(text='Git Repository:')
             rep_box1 = rep_split.row(align=True)
-            rep_box = rep_box1.row(align=True)            
-            #rep_box.enabled = False        
+            rep_box = rep_box1.row(align=True)
+            # rep_box.enabled = False
             rep_box.prop(self, 'raas_scripts_repository', text='')
-            rep_box = rep_box1.row(align=True)            
-            #rep_box.enabled = True 
+            rep_box = rep_box1.row(align=True)
+            # rep_box.enabled = True
             rep_box.prop(self, 'raas_scripts_repository_branch', text='')
-            
+
             if self.raas_scripts_installed == False:
                 if not self.raas_scripts_installed:
                     boxG.label(text='Scripts are not installed', icon='ERROR')
 
-                boxG.operator(RAAS_OT_install_scripts.bl_idname, icon="CONSOLE", text="Install scripts on the cluster")
+                boxG.operator(RAAS_OT_install_scripts.bl_idname,
+                              icon="CONSOLE", text="Install scripts on the cluster")
             else:
-                boxG.operator(RAAS_OT_install_scripts.bl_idname, icon="CONSOLE", text="Update scripts")
+                boxG.operator(RAAS_OT_install_scripts.bl_idname,
+                              icon="CONSOLE", text="Update scripts")
 
             boxG = box.box()
             show_gen_split = boxG.split(**factor(0.25), align=True)
             show_gen_split.label(text='Generate SSH keys:')
-            user_box = show_gen_split.row(align=True)        
-            user_box.prop(self, 'show_ssh_gen', text='')  
+            user_box = show_gen_split.row(align=True)
+            user_box.prop(self, 'show_ssh_gen', text='')
 
-            if self.raas_ssh_library == 'PARAMIKO' and self.show_ssh_gen == True: 
-                       
-                #boxG.label(text='Generate SSH keys:')
+            if self.raas_ssh_library == 'PARAMIKO' and self.show_ssh_gen == True:
 
-                raas_pid = boxG.split(**factor(0.25), align=True)
-                raas_pid.label(text='Project ID:')
-                pid_box = raas_pid.row(align=True)        
-                pid_box.prop(self, 'raas_gen_pid', text='')                   
+                # boxG.label(text='Generate SSH keys:')
+
+                # raas_pid = boxG.split(**factor(0.25), align=True)
+                # raas_pid.label(text='Project ID:')
+                # pid_box = raas_pid.row(align=True)
+                # pid_box.prop(self, 'raas_gen_pid', text='')
 
                 auth_split = boxG.split(**factor(0.25), align=True)
                 auth_split.label(text='Username:')
-                user_box = auth_split.row(align=True)        
-                user_box.prop(self, 'raas_gen_username', text='')                
+                user_box = auth_split.row(align=True)
+                user_box.prop(self, 'raas_gen_username', text='')
 
                 pkey_split = boxG.split(**factor(0.25), align=True)
                 pkey_split.label(text='Public Key File:')
-                user_box = pkey_split.row(align=True)        
+                user_box = pkey_split.row(align=True)
                 user_box.prop(self, 'raas_gen_public_key_path', text='')
 
                 pkey_split = boxG.split(**factor(0.25), align=True)
                 pkey_split.label(text='Private Key File:')
-                user_box = pkey_split.row(align=True)        
+                user_box = pkey_split.row(align=True)
                 user_box.prop(self, 'raas_gen_private_key_path', text='')
 
                 auth_split = boxG.split(**factor(0.25), align=True)
                 auth_split.label(text='Key Passphrase:')
-                user_box = auth_split.row(align=True)        
-                user_box.prop(self, 'raas_gen_password', text='') 
+                user_box = auth_split.row(align=True)
+                user_box.prop(self, 'raas_gen_password', text='')
 
-                boxG.operator(RAAS_OT_generate_sshkey.bl_idname, icon="CONSOLE")                
+                boxG.operator(RAAS_OT_generate_sshkey.bl_idname,
+                              icon="CONSOLE")
 
                 acc_split = boxG.split(**factor(0.25), align=True)
                 acc_split.label(text='Account Type:')
-                acc_box = acc_split.row(align=True)        
-                acc_box.prop(self, 'raas_account_type', text='')                  
+                acc_box = acc_split.row(align=True)
+                acc_box.prop(self, 'raas_account_type', text='')
 
                 boxG.operator(RAAS_OT_upload_sshkey.bl_idname, icon="URL")
 
-                boxG = boxG.column()       
-                boxG.label(text='Please wait a minute for the public key to install on all clusters before running Setup.')                
-                boxG.operator(RAAS_OT_setup_sshkey.bl_idname, icon="COPY_ID")
-                                 
-            
+                # boxG = boxG.column()
+                # boxG.label(
+                #     text='Please wait a minute for the public key to install on all clusters before running Setup.')
+                # boxG.operator(RAAS_OT_setup_sshkey.bl_idname, icon="COPY_ID")
+
+
 def ctx_preferences():
     """Returns bpy.context.preferences in a 2.79-compatible way."""
     try:
@@ -804,16 +1129,18 @@ def ctx_preferences():
     except AttributeError:
         return bpy.context.user_preferences
 
+
 def preferences() -> RaasPreferences:
-    return ctx_preferences().addons[ADDON_NAME].preferences        
+    return ctx_preferences().addons[ADDON_NAME].preferences
+
 
 class RaasAuthValidate(async_loop.AsyncModalOperatorMixin, Operator):
     bl_idname = 'raas_auth.validate'
     bl_label = 'Validate'
 
-    #def execute(self, context):
+    # def execute(self, context):
     async def async_execute(self, context):
-        #from . import raas_pref
+        # from . import raas_pref
 
         addon_prefs = preferences()
         addon_prefs.reset_messages()
@@ -823,41 +1150,45 @@ class RaasAuthValidate(async_loop.AsyncModalOperatorMixin, Operator):
         except:
             resp = None
 
-        #resp = await raas_server.get_token(addon_prefs.raas_username, addon_prefs.raas_password)
+        # resp = await raas_server.get_token(addon_prefs.raas_username, addon_prefs.raas_password)
         if resp and len(resp) == 36:
             addon_prefs.ok_message = 'Authentication token is valid.'
         else:
             addon_prefs.error_message = 'Authentication token is not valid!'
 
-        #return {'FINISHED'}
-        self.quit() 
+        # return {'FINISHED'}
+        self.quit()
+
 
 def register():
     """register."""
 
     bpy.utils.register_class(RaasPreferences)
-    bpy.utils.register_class(RaasAuthValidate) 
-    bpy.utils.register_class(RAAS_OT_install_dependencies) 
+    bpy.utils.register_class(RaasAuthValidate)
+    bpy.utils.register_class(RAAS_OT_install_dependencies)
     bpy.utils.register_class(RAAS_OT_update_dependencies)
     bpy.utils.register_class(RAAS_OT_generate_sshkey)
     bpy.utils.register_class(RAAS_OT_upload_sshkey)
-    bpy.utils.register_class(RAAS_OT_setup_sshkey)
-    
-    bpy.utils.register_class(RAAS_OT_find_pid_dir)
+    #bpy.utils.register_class(RAAS_OT_setup_sshkey)
+
+    bpy.utils.register_class(RAAS_OT_find_pid_dir_barbora_cpu)
+    bpy.utils.register_class(RAAS_OT_find_pid_dir_barbora_gpu)
+    bpy.utils.register_class(RAAS_OT_find_pid_dir_karolina_cpu)
+    bpy.utils.register_class(RAAS_OT_find_pid_dir_karolina_gpu)
     bpy.utils.register_class(RAAS_OT_install_scripts)
-    #bpy.utils.register_class(RAAS_OT_update_scripts)
-       
+    # bpy.utils.register_class(RAAS_OT_update_scripts)
 
     try:
         for dependency in python_dependencies:
-            import_module(module_name=dependency.module, global_name=dependency.name)
+            import_module(module_name=dependency.module,
+                          global_name=dependency.name)
 
-        #check_internal_addons()
-        #check_external_addons()
+        # check_internal_addons()
+        # check_external_addons()
 
         preferences().dependencies_installed = True
     except ModuleNotFoundError:
-        preferences().dependencies_installed = False    
+        preferences().dependencies_installed = False
 
     return
 
@@ -867,14 +1198,18 @@ def unregister():
 
     bpy.utils.unregister_class(RaasAuthValidate)
     bpy.utils.unregister_class(RaasPreferences)
-    bpy.utils.unregister_class(RAAS_OT_install_dependencies) 
+    bpy.utils.unregister_class(RAAS_OT_install_dependencies)
     bpy.utils.unregister_class(RAAS_OT_update_dependencies)
     bpy.utils.unregister_class(RAAS_OT_generate_sshkey)
     bpy.utils.unregister_class(RAAS_OT_upload_sshkey)
-    bpy.utils.unregister_class(RAAS_OT_setup_sshkey)
-    
-    bpy.utils.unregister_class(RAAS_OT_find_pid_dir)
+    #bpy.utils.unregister_class(RAAS_OT_setup_sshkey)
+
+    bpy.utils.unregister_class(RAAS_OT_find_pid_dir_barbora_cpu)
+    bpy.utils.unregister_class(RAAS_OT_find_pid_dir_barbora_gpu)
+    bpy.utils.unregister_class(RAAS_OT_find_pid_dir_karolina_cpu)
+    bpy.utils.unregister_class(RAAS_OT_find_pid_dir_karolina_gpu)
+
     bpy.utils.unregister_class(RAAS_OT_install_scripts)
-    #bpy.utils.unregister_class(RAAS_OT_update_scripts)
+    # bpy.utils.unregister_class(RAAS_OT_update_scripts)
 
     return
diff --git a/bheappe/raas_render.py b/bheappe/raas_render.py
index 7bfd83593c787a4a041bbe91a880496a83e12563..81c731ef8f19bc9580253b2821597c9b004ff2dd 100644
--- a/bheappe/raas_render.py
+++ b/bheappe/raas_render.py
@@ -123,7 +123,10 @@ def get_direct_access_remote_storage(context):
     if len(project_group) == 0:
         project_group = pref.raas_da_username
 
-    return raas_config.GetDAClusterPath(context, pref.raas_pid_dir, pref.raas_pid.lower())  + '/' +  project_group
+    pid_name, pid_queue, pid_dir = raas_config.GetCurrentPidInfo(
+        context, raas_pref.preferences())
+
+    return raas_config.GetDAClusterPath(context, pid_dir, pid_name.lower()) + '/' + project_group
 
 ################################
 
@@ -166,11 +169,12 @@ class RAAS_PT_simplify(RaasButtonsPanel, Panel):
         # check values
         pref = raas_pref.preferences()
         if pref.raas_use_direct_access:
+            pid_name, pid_queue, pid_dir = raas_config.GetCurrentPidInfo(context, raas_pref.preferences())
             if pref.raas_ssh_library == 'PARAMIKO':
-                if len(pref.raas_pid) == 0 or len(pref.raas_da_username) == 0 or len(pref.raas_private_key_path) == 0 or len(pref.raas_da_password) == 0 or len(pref.raas_pid_dir) == 0 or not pref.raas_scripts_installed:
+                if len(pid_name) == 0 or len(pid_queue) == 0 or len(pref.raas_da_username) == 0 or len(pref.raas_private_key_path) == 0 or len(pid_dir) == 0 or not pref.raas_scripts_installed:
                     box.label(text='BHeappe is not set in preferences', icon='ERROR')
             else:
-                if len(pref.raas_pid) == 0 or len(pref.raas_pid_dir) == 0 or not pref.raas_scripts_installed:
+                if len(pid_name) == 0 or len(pid_queue) == 0 or len(pid_dir) == 0 or not pref.raas_scripts_installed:
                     box.label(text='BHeappe is not set in preferences', icon='ERROR')
     
         if not pref.dependencies_installed:
@@ -906,7 +910,7 @@ class RAAS_OT_dash_barbora(
                         Operator):
     """dash_barbora"""
     bl_idname = 'raas.dash_barbora'
-    bl_label = 'Dashborard of the Barbora cluster'
+    bl_label = 'Dashboard of the Barbora cluster'
 
     async def async_execute(self, context):
         import webbrowser
@@ -920,13 +924,28 @@ class RAAS_OT_dash_karolina(
                         Operator):
     """dash_karolina"""
     bl_idname = 'raas.dash_karolina'
-    bl_label = 'Dashborard of the Karolina cluster'
+    bl_label = 'Dashboard of the Karolina cluster'
 
     async def async_execute(self, context):
         import webbrowser
         webbrowser.open('https://extranet.it4i.cz/dash/karolina', new=2)
 
-        self.quit()              
+        self.quit()
+
+
+class RAAS_OT_dash_grafana(
+        async_loop.AsyncModalOperatorMixin,
+        AuthenticatedRaasOperatorMixin,
+        Operator):
+    """dash_grafana"""
+    bl_idname = 'raas.dash_grafana'
+    bl_label = 'Dashboard of the clusters'
+
+    async def async_execute(self, context):
+        import webbrowser
+        webbrowser.open('https://extranet.it4i.cz/grafana', new=2)
+
+        self.quit()
 
 class RAAS_OT_submit_job(
                         async_loop.AsyncModalOperatorMixin,
@@ -1244,11 +1263,14 @@ class RAAS_PT_MessageOfTheDay(RaasButtonsPanel, Panel):
         layout = self.layout
         box = layout.box()
 
-        box.operator(RAAS_OT_dash_barbora.bl_idname,                                 
-                            text='Barbora', icon='WORLD')
+        # box.operator(RAAS_OT_dash_barbora.bl_idname,                                 
+        #                     text='Barbora', icon='WORLD')
+
+        # box.operator(RAAS_OT_dash_karolina.bl_idname,
+        #                     text='Karolina', icon='WORLD')
 
-        box.operator(RAAS_OT_dash_karolina.bl_idname,
-                            text='Karolina', icon='WORLD')                            
+        box.operator(RAAS_OT_dash_grafana.bl_idname,
+                            text='Grafana', icon='WORLD')                                                        
 
 # class RAAS_PT_Report(RaasButtonsPanel, Panel):
 #     bl_label = "Report"
diff --git a/bheappe/raas_server.py b/bheappe/raas_server.py
index 676315a34eca1771f9d612a5d877a051414e95f2..408dadb96d15c6d8dc55964a11782effd880d3a2 100644
--- a/bheappe/raas_server.py
+++ b/bheappe/raas_server.py
@@ -28,6 +28,7 @@ import asyncio
 #import aiohttp
 import json
 import requests
+import bpy
 
 log = logging.getLogger(__name__)
 
@@ -42,7 +43,9 @@ def get_endpoint(endpoint_path=None):
     import urllib.parse
     import functools
 
-    base_url = raas_config.GetHEAPPEServer(raas_pref.preferences().raas_pid.lower())
+    #base_url = raas_config.GetHEAPPEServer(raas_pref.preferences().raas_pid.lower())
+    pid_name, pid_queue, pid_dir = raas_config.GetCurrentPidInfo(bpy.context, raas_pref.preferences())
+    base_url = raas_config.GetHEAPPEServer(pid_name.lower())
 
     # urljoin() is None-safe for the 2nd parameter.
     return urllib.parse.urljoin(base_url, endpoint_path)
diff --git a/builds/bheappe.zip b/builds/bheappe.zip
index 545ac2bd75dce272b496b7697561fdf4545f14f3..5c42942166bd62595634ccd9b2aab6ae1745bbdf 100644
Binary files a/builds/bheappe.zip and b/builds/bheappe.zip differ