diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2013-03-04 18:44:41 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2013-03-04 18:44:41 (GMT) |
commit | ff383bb37b8793231ac5df904d47942ad657cd37 (patch) | |
tree | c16cce19b604255a25b6b58a55b7da75e362f7b1 /sugar-network-client | |
parent | 9028f9880747ca19aaf921d750451c455b20349c (diff) |
Fix personal node sync; clean up old subscriptions related code for client
Diffstat (limited to 'sugar-network-client')
-rwxr-xr-x | sugar-network-client | 29 |
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) |