From e9ccb4f549ffa99136f21a62eeb36abdc339b07f Mon Sep 17 00:00:00 2001 From: James Taylor Date: Wed, 26 Sep 2007 18:47:01 +0000 Subject: [PATCH] Use absolute paths for references to datasets and associated files. NOTE: Our cluster shouldn't have a problem with this since datasets live in the same place on the web server and computer nodes. However for the long term we need a better way to deal with this. Different compute nodes may have files in different locations, a more complicated resolution strategy needs to be developed. --- lib/galaxy/model/__init__.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index fc302981ccc..7f310dce6b6 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -191,9 +191,12 @@ class Dataset( object ): def get_file_name( self ): if self.filename_id is None: assert self.id is not None, "ID must be set before filename used (commit the object)" - return os.path.join( self.file_path, "dataset_%d.dat" % self.id ) + filename = os.path.join( self.file_path, "dataset_%d.dat" % self.id ) else: - return self.dataset_file.filename + filename = self.dataset_file.filename + # Make filename absolute + return os.path.abspath( filename ) + def set_file_name (self, filename): if filename is None: self.filename_id = None @@ -205,12 +208,17 @@ class Dataset( object ): self.filename_id = filename_obj.id self.flush() self.refresh() + file_name = property( get_file_name, set_file_name ) @property def extra_files_path( self ): - if self.dataset_file and self.dataset_file.extra_files_path: return self.dataset_file.extra_files_path - return os.path.join( self.file_path, "dataset_%d_files" % self.id ) + if self.dataset_file and self.dataset_file.extra_files_path: + path = self.dataset_file.extra_files_path + else: + path = os.path.join( self.file_path, "dataset_%d_files" % self.id ) + # Make path absolute + return os.path.abspath( path ) @property def datatype( self ):