Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
 def add_and_authenticate(self, key):
     dataManager = LocalDataManager()
     dataManager.set_credentials('Pithos', key)
     return self._pithos_auth()
Exemplo n.º 4
0
 def _googledrive_add_user(self, credentials):
     dataManager = LocalDataManager()
     dataManager.set_credentials('GoogleDrive', credentials)
     return self._googledrive_auth()
Exemplo n.º 5
0
 def _dropbox_add_user(self, key):
     dataManager = LocalDataManager()
     dataManager.set_credentials('Dropbox', key)
     return self._dropbox_auth()
Exemplo n.º 6
0
 def _pithos_add_user(self, key):
     dataManager = LocalDataManager()
     dataManager.set_credentials('Pithos', key)
     return self._pithos_auth()
Exemplo n.º 7
0
 def _googledrive_add_user(self, credentials):
     dataManager = LocalDataManager()
     dataManager.set_credentials('GoogleDrive', credentials)
     return self._googledrive_auth()
Exemplo n.º 8
0
 def _dropbox_add_user(self, key):
     dataManager = LocalDataManager()
     dataManager.set_credentials('Dropbox', key)
     return self._dropbox_auth()
Exemplo n.º 9
0
 def _pithos_add_user(self, key):
     dataManager = LocalDataManager()
     dataManager.set_credentials('Pithos', key)
     return self._pithos_auth()