Merge pull request #7432 from sahil28297/sync_site_develop

feat(sync_site): sync site via central agent
This commit is contained in:
Saurabh 2019-05-09 15:17:02 +05:30 committed by GitHub
commit f068bc9800
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 8 deletions

View file

@ -157,6 +157,7 @@ scheduler_events = {
"frappe.utils.error.collect_error_snapshots",
"frappe.desk.page.backups.backups.delete_downloadable_backups",
"frappe.limits.update_space_usage",
"frappe.limits.update_site_usage",
"frappe.desk.doctype.auto_repeat.auto_repeat.make_auto_repeat_entry",
"frappe.deferred_insert.save_to_db",
"frappe.desk.form.document_follow.send_hourly_updates"
@ -285,4 +286,4 @@ user_privacy_documents = [
'applies_to_website_user': 1
},
]
]

View file

@ -5,7 +5,8 @@ from frappe.utils import now_datetime, getdate, flt, cint, get_fullname
from frappe.installer import update_site_config
from frappe.utils.data import formatdate
from frappe.utils.user import get_enabled_system_users, disable_users
import os, subprocess
from frappe.utils.__init__ import get_site_info
import os, subprocess, json
from six.moves.urllib.parse import parse_qsl, urlsplit, urlunsplit, urlencode
from six import string_types
@ -225,3 +226,8 @@ def get_folder_size(path):
if os.path.exists(path):
return flt(subprocess.check_output(['du', '-ms', path]).split()[0], 2)
def update_site_usage():
data = get_site_info()
with open(os.path.join(frappe.get_site_path(), 'site_data.json'), 'w') as outfile:
json.dump(data, outfile)
outfile.close()

View file

@ -541,6 +541,8 @@ def get_site_info():
system_settings = frappe.db.get_singles_dict('System Settings')
space_usage = frappe._dict((frappe.local.conf.limits or {}).get('space_usage', {}))
kwargs = {"fields": ["user", "creation", "full_name"], "filters":{"Operation": "Login", "Status": "Success"}, "limit": "10"}
site_info = {
'installed_apps': get_installed_apps_info(),
'users': users,
@ -555,7 +557,8 @@ def get_site_info():
'space_used': flt((space_usage.total or 0) / 1024.0, 2),
'database_size': space_usage.database_size,
'backup_size': space_usage.backup_size,
'files_size': space_usage.files_size
'files_size': space_usage.files_size,
'last_logins': frappe.get_all("Activity Log", **kwargs)
}
# from other apps

View file

@ -311,12 +311,17 @@ def disable_users(limits=None):
return
if limits.get('users'):
system_manager = get_system_managers(only_name=True)[-1]
system_manager = get_system_managers(only_name=True)
user_list = ['Administrator', 'Guest']
if system_manager:
user_list.append(system_manager[-1])
#exclude system manager from active user list
active_users = frappe.db.sql_list("""select name from tabUser
where name not in ('Administrator', 'Guest', %s) and user_type = 'System User' and enabled=1
order by creation desc""", system_manager)
# active_users = frappe.db.sql_list("""select name from tabUser
# where name not in ('Administrator', 'Guest', %s) and user_type = 'System User' and enabled=1
# order by creation desc""", system_manager)
active_users = frappe.get_all("User", filters={"user_type":"System User", "enabled":1, "name": ["not in", user_list]}, fields=["name"])
user_limit = cint(limits.get('users')) - 1
@ -365,4 +370,4 @@ def get_users_with_role(role):
WHERE `tabHas Role`.`role`=%s
AND `tabUser`.`name`!='Administrator'
AND `tabHas Role`.`parent`=`tabUser`.`name`
AND `tabUser`.`enabled`=1""", role)]
AND `tabUser`.`enabled`=1""", role)]