Line 17: |
Line 17: |
| * '''Synchronization packets'''<br>Regular files that contain synchronization data placed to Synchronization media. Packet files are [[wikipedia:Tar_(file_format)|tarballs]] with {{Code|.packet}} file name suffix. | | * '''Synchronization packets'''<br>Regular files that contain synchronization data placed to Synchronization media. Packet files are [[wikipedia:Tar_(file_format)|tarballs]] with {{Code|.packet}} file name suffix. |
| | | |
− | == Workflows == | + | == Recipes == |
| | | |
| A list of scenarios to follow in the field. | | A list of scenarios to follow in the field. |
Line 23: |
Line 23: |
| === Clone Master === | | === Clone Master === |
| | | |
− | === Synchronize Node === | + | On a box with Internet available, plug Synchronization media. Its mount point will be referred as {{Code|MOUNTPOINT}} in text below. |
| + | |
| + | If {{Code|sugar-network}} package is installed, run the following command: |
| + | |
| + | sugar-network-sync MOUNTPOINT http://api-testing.network.sugarlabs.org/ |
| + | |
| + | Otherwise, |
| + | |
| + | * using any regular Web downloader, e.g., {{Code|wget}} or {{Code|curl}}, fetch clone data using http://api-testing.network.sugarlabs.org/?cmd=pull url (the first try might return empty file, in that case, retry in a minute); |
| + | |
| + | * place fetched data to {{Code|MOUNTPOINT}} with to a file with {{Code|.packet}} suffix; |
| + | |
| + | * create empty file in {{Code|MOUNTPOINT}} named as {{Code|.sugar-network-sync}}. |
| + | |
| + | === Run Node server on Sugar box === |
| + | |
| + | This mode is useful when there is no dedicated hardware for school server. In that case, particular XO laptop might be a Node server, e.g., one that teacher has. |
| + | |
| + | * Prepare Database media. There are no special requirements except having {{Code|.sugar-network}} file in the root directory. For the first time, it might be the same device as for Synchronization media. |
| + | |
| + | * On a box that is intended to be a Node server; in ''Sweets Distribution'' Control Panel section, enable ''Behave as a Sugar Network server..'' checkbox (will require restarting Sugar Shell); plug Database media. |
| + | |
| + | * Plug Synchronization media with [[#Clone Master|initial data]]. |
| + | |
| + | In current implementation, the initial process on Node side will take some time (30min on XO-1.5 laptop) to merge synchronization data. |
| + | |
| + | === Run clients === |
| + | |
| + | * Make sure that Node server and all clients are in the same local network, e.g., wireless Ad-hoc. |
| + | |
| + | * Client Sugar boxes should enable ''Auto discover server in local network'' radio-box in ''Sweets Distribution'' Control Panel section. |
| + | |
| + | * Client should see Node content as a ''Network'' content. |
| + | |
| + | Current implementation is fragile in case of detecting local Node server, if Node content is not available on client side, try to restart Sugar. |
| + | |
| + | === Synchronize Node on Sugar box === |
| + | |
| + | On a Node box, |
| + | |
| + | * plug Synchronization media to let Node read input and write output Synchronization packets; |
| + | * wait until Sugar Shell will alert with ''Synchronization complete..'' message; |
| + | * unplug Synchronization media. |
| + | |
| + | On a box that has Internet available, |
| + | |
| + | * plug Synchronization media; |
| + | * run {{Code|sugar-network-sync}} script (placed by Node while synchronizing) from its root and wait until it will finish uploading and downloading Synchronization packet files; |
| + | * then, repeat Node box steps. |