From 09f7ec3ede3c70c9c2a854214748c1c73f747aa0 Mon Sep 17 00:00:00 2001
From: John Chilton <jmchilton@gmail.com>
Date: Sun, 10 Apr 2016 17:43:50 -0400
Subject: [PATCH] Update metadata directory handling for Galaxy-ism.

Working directory is below metadata directory in Galaxy 16.04 - so need to handle that.
---
 pulsar/client/staging/up.py | 15 ++++++++-------
 pulsar/client/test/check.py |  2 ++
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/pulsar/client/staging/up.py b/pulsar/client/staging/up.py
index 9e648d35..f6ca7df2 100644
--- a/pulsar/client/staging/up.py
+++ b/pulsar/client/staging/up.py
@@ -1,4 +1,5 @@
 from os.path import abspath, basename, join, exists
+from os.path import isdir
 from os.path import dirname
 from os.path import relpath
 from os import listdir, sep
@@ -199,17 +200,17 @@ class FileStager(object):
             self.transfer_tracker.handle_transfer(path, path_type.METADATA)
 
     def __working_directory_files(self):
-        if self.working_directory and exists(self.working_directory):
-            return listdir(self.working_directory)
-        else:
-            return []
+        return self.__list_files(self.working_directory)
 
     def __metadata_directory_files(self):
-        if self.metadata_directory and exists(self.metadata_directory):
-            return listdir(self.metadata_directory)
-        else:
+        return self.__list_files(self.metadata_directory)
+
+    def __list_files(self, directory):
+        if not directory or not exists(directory):
             return []
 
+        return [f for f in listdir(directory) if exists(f) and isdir(f)]
+
     def __initialize_version_file_rename(self):
         version_file = self.version_file
         if version_file:
diff --git a/pulsar/client/test/check.py b/pulsar/client/test/check.py
index 25c69cd9..599cf01b 100644
--- a/pulsar/client/test/check.py
+++ b/pulsar/client/test/check.py
@@ -127,6 +127,7 @@ def run(options):
         temp_shared_dir = os.path.join(temp_directory, "shared", "test1")
         temp_work_dir = os.path.join(temp_directory, "w")
         temp_metadata_dir = os.path.join(temp_directory, "m")
+        temp_false_working_dir = os.path.join(temp_metadata_dir, "working")
         temp_tool_dir = os.path.join(temp_directory, "t")
 
         __makedirs([
@@ -136,6 +137,7 @@ def run(options):
             temp_index_dir_sibbling,
             temp_shared_dir,
             temp_metadata_dir,
+            temp_false_working_dir,
         ])
 
         temp_input_path = os.path.join(temp_directory, "dataset_0.dat")
-- 
GitLab