in airavata_django_portal_sdk/user_storage/backends/django_filesystem_provider.py [0:0]
def create_dirs(self, resource_path, dir_names=[], create_unique=False):
datastore = self.datastore
# Special case: handle creating user's home directory
if resource_path == '' and not datastore.exists(''):
datastore.create_user_dir('')
return self.resource_id, datastore.path(resource_path)
if not datastore.exists(resource_path):
raise ObjectDoesNotExist(f"User resource_path does not exist {resource_path}")
valid_dir_names = []
for dir_name in dir_names:
valid_dir_names.append(datastore.get_valid_name(dir_name))
final_path = os.path.join(resource_path, *valid_dir_names)
if datastore.exists(final_path) and not create_unique:
raise Exception(f"Directory {final_path} already exists")
# Make sure path is unique if it already exists
final_path = datastore.get_available_name(final_path)
datastore.create_user_dir(final_path)
return self.resource_id, datastore.path(final_path)