Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar-network-client
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2013-03-04 18:44:41 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2013-03-04 18:44:41 (GMT)
commitff383bb37b8793231ac5df904d47942ad657cd37 (patch)
treec16cce19b604255a25b6b58a55b7da75e362f7b1 /sugar-network-client
parent9028f9880747ca19aaf921d750451c455b20349c (diff)
Fix personal node sync; clean up old subscriptions related code for client
Diffstat (limited to 'sugar-network-client')
-rwxr-xr-xsugar-network-client29
1 files changed, 18 insertions, 11 deletions
diff --git a/sugar-network-client b/sugar-network-client
index 7bd12c6..ce9ef00 100755
--- a/sugar-network-client
+++ b/sugar-network-client
@@ -34,7 +34,7 @@ from sugar_network.client.mounts import RemoteMount
from sugar_network.client.mountset import Mountset
from sugar_network.zerosugar import clones
from sugar_network.node import stats_user, slave
-from sugar_network.node.slave import SlaveCommands
+from sugar_network.node.slave import PersonalCommands
from sugar_network.resources.volume import Volume
from sugar_network.toolkit.router import Router
from sugar_network.toolkit import Option
@@ -46,6 +46,8 @@ class Application(application.Daemon):
def __init__(self, **kwargs):
application.Daemon.__init__(self, **kwargs)
+ node.sync_layers.value = client.layers.value
+
self.jobs = coroutine.Pool()
util.init_logging(application.debug.value)
@@ -120,7 +122,7 @@ class Application(application.Daemon):
logging.info('Start %r server on %s port',
volume.root, node.port.value)
server = coroutine.WSGIServer(('0.0.0.0', node.port.value),
- Router(SlaveCommands(sugar.uid(), volume)))
+ Router(PersonalCommands(mountset)))
self.jobs.spawn(server.serve_forever)
else:
mountset['/'] = RemoteMount(volume)
@@ -134,10 +136,7 @@ class Application(application.Daemon):
self.accept()
- def delayed_start(event=None):
- logging.info('Proceed delayed start')
- mountset.disconnect(delayed_start)
-
+ def final_start():
self._sync(mountset.volume)
self.jobs.spawn(clones.monitor, mountset.volume['context'],
client.activity_dirs.value)
@@ -149,13 +148,21 @@ class Application(application.Daemon):
self.jobs.spawn(server.serve_forever)
if client.mounts_root.value:
- self.jobs.spawn(mountpoints.monitor,
- abspath(client.mounts_root.value))
+ mounts_root = abspath(client.mounts_root.value)
+ if not exists(mounts_root):
+ os.makedirs(mounts_root)
+ self.jobs.spawn(mountpoints.monitor, mounts_root)
+
+ def delayed_start(event=None):
+ for __ in mountset.subscribe(event='delayed-start'):
+ break
+ logging.info('Proceed delayed start')
+ final_start()
if client.delayed_start.value:
- mountset.connect(delayed_start, event='delayed-start')
+ self.jobs.spawn(delayed_start)
else:
- delayed_start()
+ final_start()
try:
mountset.open()
@@ -215,7 +222,7 @@ Option.seek('main', [toolkit.cachedir])
Option.seek('webui', webui)
Option.seek('client', client)
Option.seek('client', [sugar.keyfile])
-Option.seek('node', [node.port, node.files_root])
+Option.seek('node', [node.port, node.files_root, node.stats_root])
Option.seek('stats', stats_user)
Option.seek('db', db)