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):
site_zeroname = None
def load(self):
super(SiteManagerPlugin, self).load()
def load(self, *args, **kwargs):
super(SiteManagerPlugin, self).load(*args, **kwargs)
if not self.get(config.bit_resolver):
self.need(config.bit_resolver) # Need ZeroName site

View file

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

View file

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

View file

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