diff --git a/autosubmit/job/job.py b/autosubmit/job/job.py index 9cde353c4104a1bda17cbcd2bce1ed417a90b258..df62a17b9be3d04788229a0969a330cbd0e355e7 100644 --- a/autosubmit/job/job.py +++ b/autosubmit/job/job.py @@ -1145,6 +1145,7 @@ class Job(object): parameters['CURRENT_HYPERTHREADING'] = job_platform.hyperthreading parameters['CURRENT_TYPE'] = job_platform.type parameters['CURRENT_SCRATCH_DIR'] = job_platform.scratch + parameters['CURRENT_PROJ_DIR'] = job_platform.project_dir parameters['CURRENT_ROOTDIR'] = job_platform.root_dir parameters['CURRENT_LOGDIR'] = job_platform.get_files_path() parameters['ROOTDIR'] = os.path.join( diff --git a/autosubmit/platforms/ecplatform.py b/autosubmit/platforms/ecplatform.py index 7109733428129943f287f065479e26e5f3372594..0533e175592a35ab949a879c595be5f3cf80a23f 100644 --- a/autosubmit/platforms/ecplatform.py +++ b/autosubmit/platforms/ecplatform.py @@ -88,7 +88,7 @@ class EcPlatform(ParamikoPlatform): """ Updates commands for platforms """ - self.root_dir = os.path.join(self.scratch, self.project, self.user, self.expid) + self.root_dir = os.path.join(self.scratch, self.project_dir, self.user, self.expid) self.remote_log_dir = os.path.join(self.root_dir, "LOG_" + self.expid) self.cancel_cmd = "eceaccess-job-delete" self._checkjob_cmd = "ecaccess-job-list " @@ -99,11 +99,11 @@ class EcPlatform(ParamikoPlatform): self.put_cmd = "ecaccess-file-put" self.get_cmd = "ecaccess-file-get" self.del_cmd = "ecaccess-file-delete" - self.mkdir_cmd = ("ecaccess-file-mkdir " + self.host + ":" + self.scratch + "/" + self.project + "/" + + self.mkdir_cmd = ("ecaccess-file-mkdir " + self.host + ":" + self.scratch + "/" + self.project_dir + "/" + self.user + "/" + self.expid + "; " + "ecaccess-file-mkdir " + self.host + ":" + self.remote_log_dir) - self.check_remote_permissions_cmd = "ecaccess-file-mkdir " + os.path.join(self.scratch,self.project,self.user,"_permission_checker_azxbyc") - self.check_remote_permissions_remove_cmd = "ecaccess-file-rmdir " + os.path.join(self.scratch,self.project,self.user,"_permission_checker_azxbyc") + self.check_remote_permissions_cmd = "ecaccess-file-mkdir " + os.path.join(self.scratch,self.project_dir,self.user,"_permission_checker_azxbyc") + self.check_remote_permissions_remove_cmd = "ecaccess-file-rmdir " + os.path.join(self.scratch,self.project_dir,self.user,"_permission_checker_azxbyc") def get_checkhost_cmd(self): return self._checkhost_cmd diff --git a/autosubmit/platforms/headers/slurm_header.py b/autosubmit/platforms/headers/slurm_header.py index 45fe9e58dea77d93262da01690c636d728a766a6..4a88305196cea31880cc7922f912db99b71fe23e 100644 --- a/autosubmit/platforms/headers/slurm_header.py +++ b/autosubmit/platforms/headers/slurm_header.py @@ -149,8 +149,8 @@ class SlurmHeader(object): #SBATCH -n %NUMPROC% #SBATCH -t %WALLCLOCK%:00 #SBATCH -J %JOBNAME% -#SBATCH --output=%CURRENT_SCRATCH_DIR%/%CURRENT_PROJ%/%CURRENT_USER%/%DEFAULT.EXPID%/LOG_%DEFAULT.EXPID%/%OUT_LOG_DIRECTIVE% -#SBATCH --error=%CURRENT_SCRATCH_DIR%/%CURRENT_PROJ%/%CURRENT_USER%/%DEFAULT.EXPID%/LOG_%DEFAULT.EXPID%/%ERR_LOG_DIRECTIVE% +#SBATCH --output=%CURRENT_SCRATCH_DIR%/%CURRENT_PROJ_DIR%/%CURRENT_USER%/%DEFAULT.EXPID%/LOG_%DEFAULT.EXPID%/%OUT_LOG_DIRECTIVE% +#SBATCH --error=%CURRENT_SCRATCH_DIR%/%CURRENT_PROJ_DIR%/%CURRENT_USER%/%DEFAULT.EXPID%/LOG_%DEFAULT.EXPID%/%ERR_LOG_DIRECTIVE% %CUSTOM_DIRECTIVES% #%X11% # @@ -172,8 +172,8 @@ class SlurmHeader(object): #%TASKS_PER_NODE_DIRECTIVE% #SBATCH -t %WALLCLOCK%:00 #SBATCH -J %JOBNAME% -#SBATCH --output=%CURRENT_SCRATCH_DIR%/%CURRENT_PROJ%/%CURRENT_USER%/%DEFAULT.EXPID%/LOG_%DEFAULT.EXPID%/%OUT_LOG_DIRECTIVE% -#SBATCH --error=%CURRENT_SCRATCH_DIR%/%CURRENT_PROJ%/%CURRENT_USER%/%DEFAULT.EXPID%/LOG_%DEFAULT.EXPID%/%ERR_LOG_DIRECTIVE% +#SBATCH --output=%CURRENT_SCRATCH_DIR%/%CURRENT_PROJ_DIR%/%CURRENT_USER%/%DEFAULT.EXPID%/LOG_%DEFAULT.EXPID%/%OUT_LOG_DIRECTIVE% +#SBATCH --error=%CURRENT_SCRATCH_DIR%/%CURRENT_PROJ_DIR%/%CURRENT_USER%/%DEFAULT.EXPID%/LOG_%DEFAULT.EXPID%/%ERR_LOG_DIRECTIVE% %CUSTOM_DIRECTIVES% #%X11% # diff --git a/autosubmit/platforms/lsfplatform.py b/autosubmit/platforms/lsfplatform.py index 0cc0111572248df0fdef2192ef759a84bcfcde51..634ff620c8125a35cfc03c1a6a1e3c8317353cea 100644 --- a/autosubmit/platforms/lsfplatform.py +++ b/autosubmit/platforms/lsfplatform.py @@ -69,7 +69,7 @@ class LsfPlatform(ParamikoPlatform): """ Updates commands for platforms """ - self.root_dir = os.path.join(self.scratch, self.project, self.user, self.expid) + self.root_dir = os.path.join(self.scratch, self.project_dir, self.user, self.expid) self.remote_log_dir = os.path.join(self.root_dir, "LOG_" + self.expid) self.cancel_cmd = "bkill" self._checkjob_cmd = "bjobs " @@ -162,4 +162,4 @@ class LsfPlatform(ParamikoPlatform): # :return: True # :rtype: bool # """ - # self.connected = True \ No newline at end of file + # self.connected = True diff --git a/autosubmit/platforms/paramiko_platform.py b/autosubmit/platforms/paramiko_platform.py index c7d3e78b66d88b9283f8dcc51275b484bfbd7e63..df5414469dd972f816fee85c919c4c8d874179bd 100644 --- a/autosubmit/platforms/paramiko_platform.py +++ b/autosubmit/platforms/paramiko_platform.py @@ -1225,7 +1225,7 @@ class ParamikoPlatform(Platform): def check_remote_permissions(self): try: - path = os.path.join(self.scratch, self.project, self.user, "permission_checker_azxbyc") + path = os.path.join(self.scratch, self.project_dir, self.user, "permission_checker_azxbyc") try: self._ftpChannel.mkdir(path) self._ftpChannel.rmdir(path) diff --git a/autosubmit/platforms/paramiko_submitter.py b/autosubmit/platforms/paramiko_submitter.py index da2745eedfab64a4d02aada9f5132adfe0a51b3b..14df07128c637f85bba3548911e3070bccdc8cb8 100644 --- a/autosubmit/platforms/paramiko_submitter.py +++ b/autosubmit/platforms/paramiko_submitter.py @@ -176,6 +176,7 @@ class ParamikoSubmitter(Submitter): remote_platform.exclusivity = platform_data[section].get('EXCLUSIVITY', "") remote_platform.user = platform_data[section].get('USER', "") remote_platform.scratch = platform_data[section].get('SCRATCH_DIR', "") + remote_platform.project_dir = platform_data[section].get('SCRATCH_PROJECT_DIR', remote_platform.project) remote_platform.temp_dir = platform_data[section].get('TEMP_DIR', "") remote_platform._default_queue = platform_data[section].get('QUEUE', "") remote_platform._serial_queue = platform_data[section].get('SERIAL_QUEUE', "") diff --git a/autosubmit/platforms/pbsplatform.py b/autosubmit/platforms/pbsplatform.py index 2bf7f86d76b27b5f70af7030d5f340caf5c7b70f..132b8715c03cdddd367669af807384a8134a933e 100644 --- a/autosubmit/platforms/pbsplatform.py +++ b/autosubmit/platforms/pbsplatform.py @@ -82,7 +82,7 @@ class PBSPlatform(ParamikoPlatform): """ Updates commands for platforms """ - self.root_dir = os.path.join(self.scratch, self.project, self.user, self.expid) + self.root_dir = os.path.join(self.scratch, self.project_dir, self.user, self.expid) self.remote_log_dir = os.path.join(self.root_dir, "LOG_" + self.expid) self.cancel_cmd = "ssh " + self.host + " qdel" self._checkhost_cmd = "ssh " + self.host + " echo 1" @@ -152,4 +152,4 @@ class PBSPlatform(ParamikoPlatform): # :return: True # :rtype: bool # """ - # self.connected = True \ No newline at end of file + # self.connected = True diff --git a/autosubmit/platforms/platform.py b/autosubmit/platforms/platform.py index f8999d21986f9db4fb466f524855a6f1a1df93e6..6b463947ea0d4c1d7b7d8cebeddf0387f5951859 100644 --- a/autosubmit/platforms/platform.py +++ b/autosubmit/platforms/platform.py @@ -39,6 +39,7 @@ class Platform(object): self.exclusivity = '' self.type = '' self.scratch = '' + self.project_dir = '' self.temp_dir = '' self.root_dir = '' self.service = None @@ -606,4 +607,4 @@ class Platform(object): """ Sends a Submit file Script, execute it in the platform and retrieves the Jobs_ID of all jobs at once. """ - raise NotImplementedError \ No newline at end of file + raise NotImplementedError diff --git a/autosubmit/platforms/psplatform.py b/autosubmit/platforms/psplatform.py index 3bd5c5d722c79868c8922ab181e1b83a1c0fc9d5..38f153a7661548a6710a91adaeaa533b619ef2e1 100644 --- a/autosubmit/platforms/psplatform.py +++ b/autosubmit/platforms/psplatform.py @@ -65,15 +65,15 @@ class PsPlatform(ParamikoPlatform): """ Updates commands for platforms """ - self.root_dir = os.path.join(self.scratch, self.project, self.user, self.expid) + self.root_dir = os.path.join(self.scratch, self.project_dir, self.user, self.expid) self.remote_log_dir = os.path.join(self.root_dir, "LOG_" + self.expid) self.cancel_cmd = "kill -SIGINT" self._checkhost_cmd = "echo 1" self.put_cmd = "scp" self.get_cmd = "scp" self.mkdir_cmd = "mkdir -p " + self.remote_log_dir - self.remove_checker = "rm -rf " + os.path.join(self.scratch, self.project,self.user,"ps_permission_checker_azxbyc") - self.mkdir_checker = "mkdir -p " + os.path.join(self.scratch, self.project,self.user,"ps_permission_checker_azxbyc") + self.remove_checker = "rm -rf " + os.path.join(self.scratch, self.project_dir,self.user,"ps_permission_checker_azxbyc") + self.mkdir_checker = "mkdir -p " + os.path.join(self.scratch, self.project_dir,self.user,"ps_permission_checker_azxbyc") def get_checkhost_cmd(self): return self._checkhost_cmd @@ -121,4 +121,4 @@ class PsPlatform(ParamikoPlatform): self.send_command(self.remove_checker) return True except Exception as e: - return False \ No newline at end of file + return False diff --git a/autosubmit/platforms/sgeplatform.py b/autosubmit/platforms/sgeplatform.py index b1a70a583240d942e8cc67dfd00ffb8c3ed44e8a..58671cd98896fcd2c32f8c086dd73b51878f8f3b 100644 --- a/autosubmit/platforms/sgeplatform.py +++ b/autosubmit/platforms/sgeplatform.py @@ -69,7 +69,7 @@ class SgePlatform(ParamikoPlatform): """ Updates commands for platforms """ - self.root_dir = os.path.join(self.scratch, self.project, self.user, self.expid) + self.root_dir = os.path.join(self.scratch, self.project_dir, self.user, self.expid) self.remote_log_dir = os.path.join(self.root_dir, "LOG_" + self.expid) self.cancel_cmd = "qdel" self._checkhost_cmd = "echo 1" @@ -137,4 +137,4 @@ class SgePlatform(ParamikoPlatform): :return: True :rtype: bool """ - self.connected = True \ No newline at end of file + self.connected = True diff --git a/autosubmit/platforms/slurmplatform.py b/autosubmit/platforms/slurmplatform.py index 598bced4f1198954bce6ea697206cd52416eab0a..082f09dd62530ae35139f4fb29ec0521bbcbacef 100644 --- a/autosubmit/platforms/slurmplatform.py +++ b/autosubmit/platforms/slurmplatform.py @@ -280,7 +280,7 @@ class SlurmPlatform(ParamikoPlatform): Updates commands for platforms """ self.root_dir = os.path.join( - self.scratch, self.project, self.user, self.expid) + self.scratch, self.project_dir, self.user, self.expid) self.remote_log_dir = os.path.join(self.root_dir, "LOG_" + self.expid) self.cancel_cmd = "scancel" self._checkhost_cmd = "echo 1"