Rev473, Better atomic save, Fix sitePublish command when ip_external definied
This commit is contained in:
parent
02f3a4f8eb
commit
5f5f128b8a
4 changed files with 9 additions and 5 deletions
|
@ -8,7 +8,7 @@ class Config(object):
|
|||
|
||||
def __init__(self, argv):
|
||||
self.version = "0.3.2"
|
||||
self.rev = 472
|
||||
self.rev = 473
|
||||
self.argv = argv
|
||||
self.action = None
|
||||
self.createParser()
|
||||
|
|
|
@ -5,7 +5,7 @@ import os
|
|||
|
||||
from Plugin import PluginManager
|
||||
from Config import config
|
||||
|
||||
from util import helper
|
||||
|
||||
@PluginManager.acceptPlugins
|
||||
class SiteManager(object):
|
||||
|
@ -73,7 +73,7 @@ class SiteManager(object):
|
|||
# Delete from sites.json
|
||||
sites_settings = json.load(open("%s/sites.json" % config.data_dir))
|
||||
del(sites_settings[address])
|
||||
open("%s/sites.json" % config.data_dir, "w").write(json.dumps(sites_settings, indent=2, sort_keys=True))
|
||||
helper.atomicWrite("%s/sites.json" % config.data_dir, json.dumps(sites_settings, indent=2, sort_keys=True))
|
||||
|
||||
# Lazy load sites
|
||||
def list(self):
|
||||
|
|
|
@ -214,13 +214,14 @@ class Actions(object):
|
|||
def sitePublish(self, address, peer_ip=None, peer_port=15441, inner_path="content.json"):
|
||||
global file_server
|
||||
from Site import Site
|
||||
from Site import SiteManager
|
||||
from File import FileServer # We need fileserver to handle incoming file requests
|
||||
|
||||
logging.info("Creating FileServer....")
|
||||
file_server = FileServer()
|
||||
file_server_thread = gevent.spawn(file_server.start, check_sites=False) # Dont check every site integrity
|
||||
file_server.openport()
|
||||
site = file_server.sites[address]
|
||||
site = SiteManager.site_manager.list()[address]
|
||||
site.settings["serving"] = True # Serving the site even if its disabled
|
||||
if peer_ip: # Announce ip specificed
|
||||
site.addPeer(peer_ip, peer_port)
|
||||
|
|
|
@ -5,7 +5,10 @@ import re
|
|||
|
||||
|
||||
def atomicWrite(dest, content, mode="w"):
|
||||
open(dest + "-new", mode).write(content)
|
||||
with open(dest + "-new", mode) as f:
|
||||
f.write(content)
|
||||
f.flush()
|
||||
os.fsync(f.fileno())
|
||||
os.rename(dest, dest + "-old")
|
||||
os.rename(dest + "-new", dest)
|
||||
os.unlink(dest + "-old")
|
||||
|
|
Loading…
Reference in a new issue