Delay saving users.json
This commit is contained in:
parent
05db08c8d2
commit
4eb843fd8c
|
@ -25,6 +25,7 @@ class User(object):
|
||||||
self.master_address = CryptBitcoin.privatekeyToAddress(self.master_seed)
|
self.master_address = CryptBitcoin.privatekeyToAddress(self.master_seed)
|
||||||
self.sites = data.get("sites", {})
|
self.sites = data.get("sites", {})
|
||||||
self.certs = data.get("certs", {})
|
self.certs = data.get("certs", {})
|
||||||
|
self.delayed_save_thread = None
|
||||||
|
|
||||||
self.log = logging.getLogger("User:%s" % self.master_address)
|
self.log = logging.getLogger("User:%s" % self.master_address)
|
||||||
|
|
||||||
|
@ -41,7 +42,12 @@ class User(object):
|
||||||
user_data["sites"] = self.sites
|
user_data["sites"] = self.sites
|
||||||
user_data["certs"] = self.certs
|
user_data["certs"] = self.certs
|
||||||
helper.atomicWrite("%s/users.json" % config.data_dir, json.dumps(users, indent=2, sort_keys=True))
|
helper.atomicWrite("%s/users.json" % config.data_dir, json.dumps(users, indent=2, sort_keys=True))
|
||||||
self.log.debug("Saved in %.3fs" % (time.time()-s))
|
self.log.debug("Saved in %.3fs" % (time.time() - s))
|
||||||
|
self.delayed_save_thread = None
|
||||||
|
|
||||||
|
def saveDelayed(self):
|
||||||
|
if not self.delayed_save_thread:
|
||||||
|
self.delayed_save_thread = gevent.spawn_later(5, self.save)
|
||||||
|
|
||||||
def getAddressAuthIndex(self, address):
|
def getAddressAuthIndex(self, address):
|
||||||
return int(address.encode("hex"), 16)
|
return int(address.encode("hex"), 16)
|
||||||
|
@ -71,13 +77,13 @@ class User(object):
|
||||||
def deleteSiteData(self, address):
|
def deleteSiteData(self, address):
|
||||||
if address in self.sites:
|
if address in self.sites:
|
||||||
del(self.sites[address])
|
del(self.sites[address])
|
||||||
self.save()
|
self.saveDelayed()
|
||||||
self.log.debug("Deleted site: %s" % address)
|
self.log.debug("Deleted site: %s" % address)
|
||||||
|
|
||||||
def setSettings(self, address, settings):
|
def setSettings(self, address, settings):
|
||||||
site_data = self.getSiteData(address)
|
site_data = self.getSiteData(address)
|
||||||
site_data["settings"] = settings
|
site_data["settings"] = settings
|
||||||
self.save()
|
self.saveDelayed()
|
||||||
return site_data
|
return site_data
|
||||||
|
|
||||||
# Get data for a new, unique site
|
# Get data for a new, unique site
|
||||||
|
@ -92,7 +98,7 @@ class User(object):
|
||||||
# Save to sites
|
# Save to sites
|
||||||
self.getSiteData(site_address)
|
self.getSiteData(site_address)
|
||||||
self.sites[site_address]["privatekey"] = site_privatekey
|
self.sites[site_address]["privatekey"] = site_privatekey
|
||||||
self.save()
|
self.saveDelayed()
|
||||||
return site_address, bip32_index, self.sites[site_address]
|
return site_address, bip32_index, self.sites[site_address]
|
||||||
|
|
||||||
# Get BIP32 address from site address
|
# Get BIP32 address from site address
|
||||||
|
@ -145,7 +151,7 @@ class User(object):
|
||||||
else:
|
else:
|
||||||
if "cert" in site_data:
|
if "cert" in site_data:
|
||||||
del site_data["cert"]
|
del site_data["cert"]
|
||||||
self.save()
|
self.saveDelayed()
|
||||||
return site_data
|
return site_data
|
||||||
|
|
||||||
# Get cert for the site address
|
# Get cert for the site address
|
||||||
|
|
|
@ -47,7 +47,7 @@ class UserManager(object):
|
||||||
self.log.debug("Created user: %s" % user.master_address)
|
self.log.debug("Created user: %s" % user.master_address)
|
||||||
if user.master_address: # If successfully created
|
if user.master_address: # If successfully created
|
||||||
self.users[user.master_address] = user
|
self.users[user.master_address] = user
|
||||||
user.save()
|
user.saveDelayed()
|
||||||
return user
|
return user
|
||||||
|
|
||||||
# List all users from data/users.json
|
# List all users from data/users.json
|
||||||
|
|
Loading…
Reference in New Issue