From a6c4a77e13a5804c00f68dfdb461635f09d47576 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Tue, 6 Sep 2016 14:52:55 +0200 Subject: [PATCH] Rev1510, Fix site save without loaded SiteManager --- plugins/Zeroname/SiteManagerPlugin.py | 4 ++-- src/Config.py | 2 +- src/Site/Site.py | 6 ++++-- src/Site/SiteManager.py | 23 ++++++++++++----------- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/plugins/Zeroname/SiteManagerPlugin.py b/plugins/Zeroname/SiteManagerPlugin.py index f6d98725..fcf666ae 100644 --- a/plugins/Zeroname/SiteManagerPlugin.py +++ b/plugins/Zeroname/SiteManagerPlugin.py @@ -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 diff --git a/src/Config.py b/src/Config.py index b17dc438..5fde87ea 100644 --- a/src/Config.py +++ b/src/Config.py @@ -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" diff --git a/src/Site/Site.py b/src/Site/Site.py index 9f2bba00..d3a5f801 100644 --- a/src/Site/Site.py +++ b/src/Site/Site.py @@ -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 diff --git a/src/Site/SiteManager.py b/src/Site/SiteManager.py index 4159ba9d..1cbab215 100644 --- a/src/Site/SiteManager.py +++ b/src/Site/SiteManager.py @@ -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)