def _googledrive_auth(self): credentials = None dataManager = LocalDataManager() #A KeyError will be raised if there is no token. credentials = dataManager.get_credentials('GoogleDrive') credentials = Credentials.new_from_json(credentials) http = credentials.authorize(httplib2.Http()) try: drive_service = build('drive', 'v2', http=http) except httplib2.ServerNotFoundError: raise faults.NetworkError('No internet.') try: #Check whether the target folder exists container = dataManager.get_service_root('GoogleDrive') if container: arguments = [ 'title = "{}"'.format(container), 'mimeType = "application/vnd.google-apps.folder"', 'trashed = False' ] q = ' and '.join(arguments) response = drive_service.files().list(q=q).execute() if not response['items']: #Create the folder self.logger.info( 'GoogleDrive folder changed:{}'.format(container)) body = { 'title': container, 'mimeType': 'application/vnd.google-apps.folder' } response = drive_service.files().insert( body=body).execute() dataManager.set_folder_id(response['id']) else: dataManager.set_folder_id(response['items'][0]['id']) except errors.HttpError as e: #raise raise faults.NetworkError('No internet.') except AccessTokenRefreshError: raise faults.InvalidAuth('GoogleDrive') dataManager.set_credentials('GoogleDrive', credentials) return drive_service
def _googledrive_auth(self): credentials = None dataManager = LocalDataManager() #A KeyError will be raised if there is no token. credentials = dataManager.get_credentials('GoogleDrive') credentials = Credentials.new_from_json(credentials) http = credentials.authorize(httplib2.Http()) try: drive_service = build('drive', 'v2', http=http) except httplib2.ServerNotFoundError: raise faults.NetworkError('No internet.') try: #Check whether the target folder exists container = dataManager.get_service_root('GoogleDrive') if container: arguments = ['title = "{}"'.format(container), 'mimeType = "application/vnd.google-apps.folder"', 'trashed = False'] q = ' and '.join(arguments) response = drive_service.files().list(q=q).execute() if not response['items']: #Create the folder self.logger.info('GoogleDrive folder changed:{}'.format(container)) body = {'title':container, 'mimeType':'application/vnd.google-apps.folder'} response = drive_service.files().insert(body=body).execute() dataManager.set_folder_id(response['id']) else: dataManager.set_folder_id(response['items'][0]['id']) except errors.HttpError as e: #raise raise faults.NetworkError('No internet.') except AccessTokenRefreshError: raise faults.InvalidAuth('GoogleDrive') dataManager.set_credentials('GoogleDrive', credentials) return drive_service
def add_and_authenticate(self, key): dataManager = LocalDataManager() dataManager.set_credentials('Pithos', key) return self._pithos_auth()
def _googledrive_add_user(self, credentials): dataManager = LocalDataManager() dataManager.set_credentials('GoogleDrive', credentials) return self._googledrive_auth()
def _dropbox_add_user(self, key): dataManager = LocalDataManager() dataManager.set_credentials('Dropbox', key) return self._dropbox_auth()
def _pithos_add_user(self, key): dataManager = LocalDataManager() dataManager.set_credentials('Pithos', key) return self._pithos_auth()
def _googledrive_add_user(self, credentials): dataManager = LocalDataManager() dataManager.set_credentials('GoogleDrive', credentials) return self._googledrive_auth()
def _dropbox_add_user(self, key): dataManager = LocalDataManager() dataManager.set_credentials('Dropbox', key) return self._dropbox_auth()
def _pithos_add_user(self, key): dataManager = LocalDataManager() dataManager.set_credentials('Pithos', key) return self._pithos_auth()