예제 #1
0
def add_staged_file_to_dataset(rel_filepath, dataset_id, username,
                               mimetype="application/octet-stream"):
    """
    add file in user's staging path to a dataset
    may be replaced by main code functions.
    quick and dirty hack to get it working
    """
    originfilepath = os.path.join(get_full_staging_path(username), rel_filepath)
    dataset = Dataset.objects.get(pk=dataset_id)
    newDatafile = Dataset_File()
    newDatafile.dataset = dataset
    newDatafile.size = os.path.getsize(originfilepath)
    newDatafile.protocol = "tardis"
    newDatafile.mimetype = mimetype
    file_dir = "/" + str(dataset.experiment.id) + "/" + str(dataset.id) + "/"
    file_path = file_dir + rel_filepath
    prelim_full_file_path = settings.FILE_STORE_PATH + file_path
    full_file_path = duplicate_file_check_rename(prelim_full_file_path)
    newDatafile.filename = os.path.basename(full_file_path)
    newDatafile.url = "%s://%s" % (newDatafile.protocol,
                                   full_file_path[
            len(settings.FILE_STORE_PATH) + len(file_dir):])
    if not os.path.exists(os.path.dirname(full_file_path)):
        os.makedirs(os.path.dirname(full_file_path))
    shutil.move(originfilepath, full_file_path)
    newDatafile.save()
예제 #2
0
 def testDuplicateFileCheckRename(self):
     from os import path
     from tempfile import mkdtemp
     from shutil import rmtree
     from tardis.tardis_portal.staging import duplicate_file_check_rename
     test_dir = mkdtemp()
     path.join(test_dir, "testfile.txt")
     f1 = open(path.join(test_dir, "testfile.txt"), 'w')
     f1.close()
     self.assertEqual(
         path.basename(duplicate_file_check_rename(
             path.join(test_dir, "testfile.txt"))),
         'testfile_1.txt')
     f1 = open(path.join(test_dir, "testfile_1.txt"), 'w')
     f1.close()
     self.assertEqual(
         path.basename(duplicate_file_check_rename(
             path.join(test_dir, "testfile.txt"))),
         'testfile_2.txt')
     rmtree(test_dir)
예제 #3
0
 def testDuplicateFileCheckRename(self):
     from os import path
     from tempfile import mkdtemp
     from shutil import rmtree
     from tardis.tardis_portal.staging import duplicate_file_check_rename
     test_dir = mkdtemp()
     path.join(test_dir, "testfile.txt")
     f1 = open(path.join(test_dir, "testfile.txt"), 'w')
     f1.close()
     self.assertEqual(
         path.basename(
             duplicate_file_check_rename(path.join(test_dir,
                                                   "testfile.txt"))),
         'testfile_1.txt')
     f1 = open(path.join(test_dir, "testfile_1.txt"), 'w')
     f1.close()
     self.assertEqual(
         path.basename(
             duplicate_file_check_rename(path.join(test_dir,
                                                   "testfile.txt"))),
         'testfile_2.txt')
     rmtree(test_dir)