Move site deletion to dedicted function

This commit is contained in:
shortcutme 2016-09-05 13:55:51 +02:00
parent cb20280530
commit 59205088d2
3 changed files with 14 additions and 12 deletions

View file

@ -49,12 +49,13 @@ class Site(object):
self.content_updated = None # Content.js update time self.content_updated = None # Content.js update time
self.notifications = [] # Pending notifications displayed once on page load [error|ok|info, message, timeout] self.notifications = [] # Pending notifications displayed once on page load [error|ok|info, message, timeout]
self.page_requested = False # Page viewed in browser self.page_requested = False # Page viewed in browser
self.websockets = [] # Active site websocket connections
self.connection_server = None
self.storage = SiteStorage(self, allow_create=allow_create) # Save and load site files self.storage = SiteStorage(self, allow_create=allow_create) # Save and load site files
self.loadSettings(settings) # Load settings from sites.json self.loadSettings(settings) # Load settings from sites.json
self.content_manager = ContentManager(self) self.content_manager = ContentManager(self)
self.content_manager.loadContents() # Load content.json files self.content_manager.loadContents() # Load content.json files
self.connection_server = None
if "main" in sys.modules and "file_server" in dir(sys.modules["main"]): # Use global file server by default if possible if "main" in sys.modules and "file_server" in dir(sys.modules["main"]): # Use global file server by default if possible
self.connection_server = sys.modules["main"].file_server self.connection_server = sys.modules["main"].file_server
else: else:
@ -67,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"])
self.websockets = [] # Active site websocket connections
def __str__(self): def __str__(self):
return "Site %s" % self.address_short return "Site %s" % self.address_short
@ -924,6 +924,16 @@ class Site(object):
self.log.debug("Queried hashfield from %s peers" % queried) self.log.debug("Queried hashfield from %s peers" % queried)
return queried return queried
def delete(self):
self.settings["serving"] = False
self.saveSettings()
self.worker_manager.running = False
self.worker_manager.stopWorkers()
self.storage.deleteFiles()
self.updateWebsocket()
self.content_manager.contents.db.deleteSite(self.site.address)
SiteManager.site_manager.delete(address)
# - Events - # - Events -
# Add event listeners # Add event listeners

View file

@ -296,6 +296,7 @@ class SiteStorage(object):
i = 0 i = 0
if not self.site.content_manager.contents.get("content.json"): # No content.json, download it first if not self.site.content_manager.contents.get("content.json"): # No content.json, download it first
self.log.debug("VerifyFile content.json not exists")
self.site.needFile("content.json", update=True) # Force update to fix corrupt file self.site.needFile("content.json", update=True) # Force update to fix corrupt file
self.site.content_manager.loadContent() # Reload content.json self.site.content_manager.loadContent() # Reload content.json
for content_inner_path, content in self.site.content_manager.contents.items(): for content_inner_path, content in self.site.content_manager.contents.items():
@ -405,9 +406,6 @@ class SiteStorage(object):
except Exception, err: except Exception, err:
self.log.error("Db file delete error: %s" % err) self.log.error("Db file delete error: %s" % err)
# Delete from content.db
self.site.content_manager.contents.db.deleteSite(self.site.address)
for inner_path in files: for inner_path in files:
path = self.getPath(inner_path) path = self.getPath(inner_path)
if os.path.isfile(path): if os.path.isfile(path):

View file

@ -665,13 +665,7 @@ class UiWebsocket(object):
def actionSiteDelete(self, to, address): def actionSiteDelete(self, to, address):
site = self.server.sites.get(address) site = self.server.sites.get(address)
if site: if site:
site.settings["serving"] = False site.delete()
site.saveSettings()
site.worker_manager.running = False
site.worker_manager.stopWorkers()
site.storage.deleteFiles()
site.updateWebsocket()
SiteManager.site_manager.delete(address)
self.user.deleteSiteData(address) self.user.deleteSiteData(address)
self.response(to, "Deleted") self.response(to, "Deleted")
import gc import gc