def list(self):
"""Get a directory listing"""
- dirs_to_copy = []
args = copy.copy(self.cmd)
args.append(self.source_base)
logging.debug("Rsync cmd:" + " ".join(args))
short_process = subprocess.Popen(args, stdout=subprocess.PIPE)
- direntries = [ x.split() for x in short_process.stdout ]
+ return self.list_filter(short_process.stdout)
+
+ def list_filter(self, lines):
+ """
+ parse rsync directory listing
+ """
+ dirs_to_copy = []
+ direntries = [ x[0:42].split() + [x[43:-1]] for x in lines ]
for permissions, size, filedate, filetime, filename in direntries:
if permissions[0] == 'd':
# hey its a directory, the first step to being something we want to
# see if we're still copying
if runfolder_validate(runDir):
- if runDir in self.rsync.keys():
- # still copying
- self.pending.append(runDir)
- logging.info("finished sequencing, but still copying" % (runDir))
- return "PENDING"
- else:
- # we're done
- self.reportSequencingFinished(runDir)
- logging.info("finished sequencing %s" % (runDir))
- return "DONE"
+ logging.info("recevied sequencing finshed for %s" % (runDir))
+ self.pending.append(runDir)
+ self.startCopy()
+ return "PENDING"
else:
errmsg = "received bad runfolder name (%s)" % (runDir)
logging.warning(errmsg)