it's done
This commit is contained in:
parent
481d0deaca
commit
5cd22894b0
@ -1,6 +1,7 @@
|
|||||||
import os
|
import os
|
||||||
import webnotes
|
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()
|
@webnotes.whitelist()
|
||||||
def get_dropbox_authorize_url():
|
def get_dropbox_authorize_url():
|
||||||
@ -67,22 +68,23 @@ def backup_to_dropbox():
|
|||||||
backup = new_backup()
|
backup = new_backup()
|
||||||
filename = backup.backup_path_db
|
filename = backup.backup_path_db
|
||||||
upload_file_to_dropbox(filename, "database", dropbox_client)
|
upload_file_to_dropbox(filename, "database", dropbox_client)
|
||||||
|
path1 = os.path.join(get_base_path(), "public", "backups")
|
||||||
# upload files
|
response = dropbox_client.metadata('/database')
|
||||||
response = dropbox_client.metadata("files")
|
|
||||||
|
|
||||||
|
|
||||||
# add missing files
|
#add missing files
|
||||||
for filename in os.listdir(os.path.join("public", "files")):
|
found = False
|
||||||
|
for filename in os.listdir(path1):
|
||||||
found = False
|
found = False
|
||||||
|
pth=path1+'/'+filename
|
||||||
|
size=os.stat(pth).st_size
|
||||||
for file_metadata in response["contents"]:
|
for file_metadata in response["contents"]:
|
||||||
if filename==os.path.basename(file_metadata["path"]):
|
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
|
found=True
|
||||||
|
|
||||||
if not found:
|
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():
|
def get_dropbox_session():
|
||||||
from dropbox import session
|
from dropbox import session
|
||||||
@ -96,20 +98,17 @@ def get_dropbox_session():
|
|||||||
return sess
|
return sess
|
||||||
|
|
||||||
def upload_file_to_dropbox(filename, folder, dropbox_client):
|
def upload_file_to_dropbox(filename, folder, dropbox_client):
|
||||||
if __name__=="__main__":
|
size = os.stat(filename).st_size
|
||||||
print "Uploading " + filename
|
f = open(filename,'r')
|
||||||
size = os.stat(filename).st_size
|
if size > 4194304:
|
||||||
f = open(filename,'r')
|
uploader = dropbox_client.get_chunked_uploader(f, size)
|
||||||
|
while uploader.offset < size:
|
||||||
if size > 4194304:
|
try:
|
||||||
uploader = dropbox_client.get_chunked_uploader(f, size)
|
uploader.upload_chunked()
|
||||||
while uploader.offset < size:
|
except rest.ErrorResponse, e:
|
||||||
try:
|
pass
|
||||||
uploader.upload_chunked()
|
else:
|
||||||
except rest.ErrorResponse, e:
|
response = dropbox_client.put_file(folder + "/" + os.path.basename(filename), f, overwrite=True)
|
||||||
pass
|
|
||||||
else:
|
|
||||||
response = dropbox_client.put_file(folder + "/" + os.path.basename(filename), f, overwrite=True)
|
|
||||||
|
|
||||||
if __name__=="__main__":
|
if __name__=="__main__":
|
||||||
backup_to_dropbox()
|
backup_to_dropbox()
|
||||||
@ -3,6 +3,7 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import webnotes
|
import webnotes
|
||||||
from webnotes import _
|
from webnotes import _
|
||||||
|
from webnotes.utils import getTraceback
|
||||||
|
|
||||||
class DocType:
|
class DocType:
|
||||||
def __init__(self, d, dl):
|
def __init__(self, d, dl):
|
||||||
@ -25,6 +26,7 @@ def take_backups():
|
|||||||
backup_to_dropbox()
|
backup_to_dropbox()
|
||||||
send_email(True, "Dropbox")
|
send_email(True, "Dropbox")
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
|
webnotes.errprint(e)
|
||||||
send_email(False, "Dropbox", e)
|
send_email(False, "Dropbox", e)
|
||||||
|
|
||||||
def send_email(success, service_name, error_status=None):
|
def send_email(success, service_name, error_status=None):
|
||||||
@ -40,7 +42,8 @@ def send_email(success, service_name, error_status=None):
|
|||||||
failed.</p>
|
failed.</p>
|
||||||
<p>Error message: %s</p>
|
<p>Error message: %s</p>
|
||||||
<p>Please contact your system manager for more information.</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
|
# email system managers
|
||||||
from webnotes.utils.email_lib import sendmail
|
from webnotes.utils.email_lib import sendmail
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user