Merge remote-tracking branch 'upstream/master'
diff --git a/setup/doctype/backup_manager/backup_dropbox.py b/setup/doctype/backup_manager/backup_dropbox.py
index 3b0857f..e8eed3b 100644
--- a/setup/doctype/backup_manager/backup_dropbox.py
+++ b/setup/doctype/backup_manager/backup_dropbox.py
@@ -1,6 +1,7 @@
import os
import webnotes
-from webnotes.utils import get_request_site_address
+from webnotes.utils import get_request_site_address, get_base_path
+from webnotes import _
@webnotes.whitelist()
def get_dropbox_authorize_url():
@@ -67,22 +68,23 @@
backup = new_backup()
filename = backup.backup_path_db
upload_file_to_dropbox(filename, "database", dropbox_client)
-
- # upload files
- response = dropbox_client.metadata("files")
-
+ path1 = os.path.join(get_base_path(), "public", "backups")
+ response = dropbox_client.metadata('/database')
- # add missing files
- for filename in os.listdir(os.path.join("public", "files")):
+ #add missing files
+ found = False
+ for filename in os.listdir(path1):
found = False
+ pth=path1+'/'+filename
+ size=os.stat(pth).st_size
for file_metadata in response["contents"]:
if filename==os.path.basename(file_metadata["path"]):
- if os.stat(os.path.join("public", "files", filename)).st_size==file_metadata["bytes"]:
+ if size==file_metadata["bytes"]:
found=True
-
if not found:
- upload_file_to_dropbox(os.path.join("public", "files", filename), "files", dropbox_client)
-
+ upload_file_to_dropbox(pth, "database", dropbox_client)
+ if found:
+ webnotes.msgprint("no backup required everything is upto date")
def get_dropbox_session():
from dropbox import session
@@ -96,20 +98,17 @@
return sess
def upload_file_to_dropbox(filename, folder, dropbox_client):
- if __name__=="__main__":
- print "Uploading " + filename
- size = os.stat(filename).st_size
- f = open(filename,'r')
-
- if size > 4194304:
- uploader = dropbox_client.get_chunked_uploader(f, size)
- while uploader.offset < size:
- try:
- uploader.upload_chunked()
- except rest.ErrorResponse, e:
- pass
- else:
- response = dropbox_client.put_file(folder + "/" + os.path.basename(filename), f, overwrite=True)
+ size = os.stat(filename).st_size
+ f = open(filename,'r')
+ if size > 4194304:
+ uploader = dropbox_client.get_chunked_uploader(f, size)
+ while uploader.offset < size:
+ try:
+ uploader.upload_chunked()
+ except rest.ErrorResponse, e:
+ pass
+ else:
+ response = dropbox_client.put_file(folder + "/" + os.path.basename(filename), f, overwrite=True)
if __name__=="__main__":
- backup_to_dropbox()
\ No newline at end of file
+ backup_to_dropbox()
\ No newline at end of file
diff --git a/setup/doctype/backup_manager/backup_manager.py b/setup/doctype/backup_manager/backup_manager.py
index 48d48e8..2b9cfca 100644
--- a/setup/doctype/backup_manager/backup_manager.py
+++ b/setup/doctype/backup_manager/backup_manager.py
@@ -3,6 +3,7 @@
from __future__ import unicode_literals
import webnotes
from webnotes import _
+from webnotes.utils import getTraceback
class DocType:
def __init__(self, d, dl):
@@ -25,6 +26,7 @@
backup_to_dropbox()
send_email(True, "Dropbox")
except Exception, e:
+ webnotes.errprint(e)
send_email(False, "Dropbox", e)
def send_email(success, service_name, error_status=None):
@@ -40,7 +42,8 @@
failed.</p>
<p>Error message: %s</p>
<p>Please contact your system manager for more information.</p>
- """ % (service_name, error_status)
+ <p>Detailed Error Trace: %s</p>""" % \
+ (service_name, error_status, getTraceback().replace("\n", "<br>"))
# email system managers
from webnotes.utils.email_lib import sendmail