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.notifications = [] # Pending notifications displayed once on page load [error|ok|info, message, timeout]
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.loadSettings(settings) # Load settings from sites.json
self.content_manager = ContentManager(self)
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
self.connection_server = sys.modules["main"].file_server
else:
@ -67,7 +68,6 @@ class Site(object):
self.settings["wrapper_key"] = CryptHash.random()
self.log.debug("New wrapper key: %s" % self.settings["wrapper_key"])
self.websockets = [] # Active site websocket connections
def __str__(self):
return "Site %s" % self.address_short
@ -924,6 +924,16 @@ class Site(object):
self.log.debug("Queried hashfield from %s peers" % 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 -
# Add event listeners

View file

@ -296,6 +296,7 @@ class SiteStorage(object):
i = 0
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.content_manager.loadContent() # Reload content.json
for content_inner_path, content in self.site.content_manager.contents.items():
@ -405,9 +406,6 @@ class SiteStorage(object):
except Exception, 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:
path = self.getPath(inner_path)
if os.path.isfile(path):

View file

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