@@ -145,17 +145,22 @@ def set_reader_permissions(drive_service,file_ids):
145145 batch .execute ()
146146
147147
148- def get_folder (drive_service ,folder_name = None ,create = True ):
148+ def get_folder (drive_service ,folder_name = None ,create = True , parent_folder = None ):
149149 '''get_folder will return the folder with folder_name, and if create=True,
150150 will create it if not found. If folder is found or created, the metadata is
151151 returned, otherwise None is returned
152152 :param drive_service: the drive_service created from google_drive_connect
153153 :param folder_name: the name of the folder to search for, item ['title'] field
154+ :param parent_folder: a parent folder to retrieve, will look at base if none specified.
154155 '''
155156 if folder_name == None :
156157 folder_name = 'singularity-hub'
157158
158- folders = drive_service .files ().list (q = 'mimeType="application/vnd.google-apps.folder"' ).execute ()
159+ if parent_folder == None :
160+ folders = drive_service .files ().list (q = 'mimeType="application/vnd.google-apps.folder"' ).execute ()
161+ else :
162+ folders = drive_service .files ().list (q = 'mimeType="application/vnd.google-apps.folder"' ,
163+ parents = parent_folder ['id' ]).execute ()
159164
160165 for folder in folders ['files' ]:
161166 if folder ['name' ] == folder_name :
@@ -209,9 +214,9 @@ def google_drive_setup(drive_service,image_path=None,base_folder=None):
209214
210215 for folder in folders :
211216 # The last folder created, the destination for our files, will be returned
212- singularity_folder = create_folder (drive_service = drive_service ,
213- folder_name = folder ,
214- parent_folders = parent_folder )
217+ singularity_folder = get_folder (drive_service = drive_service ,
218+ folder_name = folder ,
219+ parent_folders = parent_folder )
215220 parent_folder = singularity_folder ['id' ]
216221
217222 return singularity_folder
0 commit comments