Rev1510, Fix site save without loaded SiteManager

This commit is contained in:
shortcutme 2016-09-06 14:52:55 +02:00
parent d9bbb20743
commit a6c4a77e13
4 changed files with 19 additions and 16 deletions

View file

@ -13,8 +13,8 @@ log = logging.getLogger("ZeronamePlugin")
class SiteManagerPlugin(object): class SiteManagerPlugin(object):
site_zeroname = None site_zeroname = None
def load(self): def load(self, *args, **kwargs):
super(SiteManagerPlugin, self).load() super(SiteManagerPlugin, self).load(*args, **kwargs)
if not self.get(config.bit_resolver): if not self.get(config.bit_resolver):
self.need(config.bit_resolver) # Need ZeroName site self.need(config.bit_resolver) # Need ZeroName site

View file

@ -8,7 +8,7 @@ class Config(object):
def __init__(self, argv): def __init__(self, argv):
self.version = "0.4.1" self.version = "0.4.1"
self.rev = 1509 self.rev = 1510
self.argv = argv self.argv = argv
self.action = None self.action = None
self.config_file = "zeronet.conf" self.config_file = "zeronet.conf"

View file

@ -68,7 +68,6 @@ class Site(object):
self.settings["wrapper_key"] = CryptHash.random() self.settings["wrapper_key"] = CryptHash.random()
self.log.debug("New wrapper key: %s" % self.settings["wrapper_key"]) self.log.debug("New wrapper key: %s" % self.settings["wrapper_key"])
def __str__(self): def __str__(self):
return "Site %s" % self.address_short return "Site %s" % self.address_short
@ -99,8 +98,11 @@ class Site(object):
# Save site settings to data/sites.json # Save site settings to data/sites.json
def saveSettings(self): def saveSettings(self):
if not SiteManager.site_manager.get(self.address): if not SiteManager.site_manager.sites:
SiteManager.site_manager.sites = {}
if not SiteManager.site_manager.sites.get(self.address):
SiteManager.site_manager.sites[self.address] = self SiteManager.site_manager.sites[self.address] = self
SiteManager.site_manager.load(False)
SiteManager.site_manager.save() SiteManager.site_manager.save()
# Max site size in MB # Max site size in MB

View file

@ -23,10 +23,10 @@ class SiteManager(object):
atexit.register(self.save) atexit.register(self.save)
# Load all sites from data/sites.json # Load all sites from data/sites.json
def load(self): def load(self, cleanup=True):
self.log.debug("Loading sites...") self.log.debug("Loading sites...")
from Site import Site from Site import Site
if not self.sites: if self.sites is None:
self.sites = {} self.sites = {}
address_found = [] address_found = []
added = 0 added = 0
@ -40,16 +40,17 @@ class SiteManager(object):
address_found.append(address) address_found.append(address)
# Remove deleted adresses # Remove deleted adresses
for address in self.sites.keys(): if cleanup:
if address not in address_found: for address in self.sites.keys():
del(self.sites[address]) if address not in address_found:
self.log.debug("Removed site: %s" % address) del(self.sites[address])
self.log.debug("Removed site: %s" % address)
# Remove orpan sites from contentdb # Remove orpan sites from contentdb
for row in ContentDb.getContentDb().execute("SELECT * FROM site"): for row in ContentDb.getContentDb().execute("SELECT * FROM site"):
if row["address"] not in self.sites: if row["address"] not in self.sites:
self.log.info("Deleting orphan site from content.db: %s" % row["address"]) self.log.info("Deleting orphan site from content.db: %s" % row["address"])
ContentDb.getContentDb().deleteSite(row["address"]) ContentDb.getContentDb().deleteSite(row["address"])
if added: if added:
self.log.debug("SiteManager added %s sites" % added) self.log.debug("SiteManager added %s sites" % added)