Features/Backup and Restore
Feature Name
Back Up and Restore
Summary
Easily back up and restore the Journal of a computer running Sugar (includes SoAS and SoLinux with top priority SoAS). Also, easily back up and restore the full Sugar installation. Beyond the Journal, this includes the activities, any configuration of the OS and the everything needed to restore to its original state.
This feature is a top priority for Gardner Pilot Academy but also requests by essentially every XO deployment.
Owner
- Name: Greg Smith
- Email: gregsmithpm at gmail.com
Current status
- Targeted release: ?
- Last updated: July 7, 2009
- Percentage of completion: ?
Detailed Description
For all the items listed below, implement solution with XS and if possible as a software solution on one or more standard Linux distributions.
Backup and Restore of the Journal
- Allow time based backup and restore of the journal. Check for Journal changes on the Sugar computer. Copy any changes to the server on a regular basis. Stagger the copies so that not all Sugar computers backup at the same time. See implementation of this with XO and XS at: http://wiki.laptop.org/go/XS_Blueprints:Datastore_Simple_Backup_and_Restore
- Provide a web based GUI to restore one or all backed up journal entries. The user would boot up any Sugar implementation (user name/password based security is also important) and point their Web browser at a URL on the server. Preferable to automatically take you to the right page (aka the page where your particular Sugar instance is backed up) but would also accept seeing a list of Sugar Journals by user name and picking the right one. Clicking on a single Journal entry or on a link for "full journal" would download those items back in to the journal of the Sugar computer.
- Provide a user initiated backup of the journal. In this case a User would use their web browser to go to a page on the server and click the "backup" link. Then the server would check for changes since the last backup and copy everything from that journal to the server. Same case as above for restore.
- Backup and restor of full sugar instance. Same as above (AKA user initiated and time based server/script) but for the full Sugar instance. This can be only the full instance and does not need to list individual files. For restoring SoAS should support booting up with a USB stick, going to the page, then removing the USB stick and inserting a new one, then clicking restore. This would copy the full Sugar instance to the new USB stick. This would now be a clone of the original USB stick. Also, implement a "clone" feature which allows the same work flow as above but without a server. That is, put a SoAS in a computer, copy it to the computer then restore it to a new USB stick with the full SoAS including configuration.
- Implementing a standard Linux package to do this for Sugar would be fine.
- See also this bug in Sugar: http://dev.sugarlabs.org/ticket/75 and http://dev.sugarlabs.org/ticket/916
Benefit to Sugar
Ensures that kids and teachers don't lose their work. Backup and restore over the WAN is a major growth technology in commercial SW. e.g. see: http://www.carbonite.com/
A Sugar implementation would be a big feature promotable publicly. Could also be used for a sneaker net type collaboration of last resort. i.e. "get my journal entry off this web page" to move something from one Xo to another.
Scope
Will need client side and server software. May need to move a Linux package to SoAS and may need to push new code upstream to support Journal/Datastore implementation.
How To Test
Create some entries in a journal. Then test with:
- SoAS 8.6 or later and a single computer.
- SoAs 8.6 or later with XS running 0.5 or later.
- SoAS 8.6 or later with Linux distribution
- Test backup and restore of a single journal entry
- Test backup and restore of a full SoAS image. Make sure to use the SoAS so that it changes some files and configurations.
- Test time based backup, preferably with several SoAS computers.
In all cases, ensure that the files are backed up on the server and can be restored on the SoAS. Make sure to open the files in the journal and run them. Also, make sure to cold boot any full images and confirm that changes were saved.
User Experience
Requires a new "web site" on the server for back up and restore. Requires a configuration option on SoAS to set the time and files to be backed up.
Dependencies
What other packages (RPMs) depend on this package? Are there changes outside the developers' control on which completion of this feature depends? In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate? Other upstream projects like python?
- See http://dev.sugarlabs.org/ticket/916 for changes to allow registering SoaS to a XS.
- Also ds-backup-client package is required to backup to an XS along with a patch to allow it to work on SoaS in addition to an XO.
Unknown.
Contingency Plan
Plan B is to find a manual way to execute a script which does an "rcp" or other file transfer to a server. Then allows restore via script as well.
Documentation
See XS example above. Will need more documentation.
Release Notes
Comments and Discussion
Features Subpages
- Features/3G Support
- Features/3G Support/Database Support
- Features/3G Support/Share
- Features/3G Support/Testing
- Features/About
- Features/About Me
- Features/Accessibility control panel
- Features/Accessibility virtual keyboard
- Features/Activity.info
- Features/Activity Help
- Features/Activity specific metadata in Journal
- Features/Ad hoc Networking
- Features/Ad hoc Networking/Testing
- Features/Add Information In About Computer
- Features/Automatic Proxy Settings
- Features/Automatic activity updates
- Features/Avoid surplus Activity launching
- Features/Background image on home view
- Features/Backup and Restore
- Features/Backup and Restore/Enhancements
- Features/Browse JS Fiddler
- Features/Buddy Positioning
- Features/Bug Report
- Features/Bulletin Board
- Features/Can share
- Features/Change home view name
- Features/Classroom management
- Features/Clipboard Item Transfer
- Features/Clock in Frame
- Features/Comment box in journal detail view
- Features/Configuring Hidden Wifi Access Points
- Features/Connection Indication
- Features/Content support
- Features/Cordova Container for Sugar
- Features/Dashboard
- Features/Develop Web
- Features/Discovery mode
- Features/Display Device
- Features/Display section for control panel
- Features/Dotted Activity Versions
- Features/Edit panel on Frame
- Features/Enhanced Gettext
- Features/Enhanced Gettext/Testing
- Features/Enhanced color selector
- Features/Enhanced color selector/Patch-colorpicker
- Features/Enhanced color selector/Patch-view
- Features/Enhanced color selector/Patch-window
- Features/Enhanced color selector/Patch-xocolor
- Features/Enhanced color selector/Testing
- Features/Enhanced color selector/atch-edit-undo
- Features/Evince Introspection Bindings
- Features/Fast Language Switch
- Features/Feature Template
- Features/Feature Template/Testing
- Features/Fixing Collab (Tubes)
- Features/Flash Activities
- Features/Flash Activities/Testing
- Features/Font configuration
- Features/FreeDesktop integration
- Features/GObject Introspection
- Features/GTK3
- Features/GTK3/API wish list
- Features/GTK3/Desktop Summit activities
- Features/GTK3/Development
- Features/GTK3/Porting
- Features/GTK3/Porting/Finance
- Features/GTK3/Porting/GetBooks
- Features/GTK3/Porting/Implode
- Features/GTK3/Porting/InfoSlicer
- Features/GTK3/Porting/Jukebox
- Features/GTK3/Porting/Log
- Features/GTK3/Porting/Record
- Features/GTK3/Porting/TamTam
- Features/GTK3/Porting/Typing Turtle
- Features/GTK3/Shell
- Features/GTK3/Shell/GTK3 Port
- Features/GTK3/Shell/Hippo Removal
- Features/GTK3/Shell/Hippo Removal/Testing on the XO
- Features/GTK3/Theme
- Features/Global Text To Speech
- Features/Host Version
- Features/Icon Change
- Features/Improved Accessibility
- Features/Improved Accessibility/Testing
- Features/Inquiry learning global chat
- Features/Introduction Tutorial
- Features/Introduction Tutorial/Overlay
- Features/JS Fiddler
- Features/Join Limits
- Features/Journal Entry Sharing
- Features/Journal Entry Sharing/Testing
- Features/Journal Sort
- Features/Journal Volume Toolbar enhancement
- Features/Journal data tagged private or public
- Features/Journal features for 0.96
- Features/Journal features for 0.96/Education Team Talks
- Features/Keyboard CP Section
- Features/Keyboard CP Section/Testing
- Features/Language keyboard options
- Features/Launch Limits
- Features/Lease Information Display
- Features/License selection in Journal
- Features/Messages Notification
- Features/Metacity
- Features/Metacity/Testing
- Features/Multi selection
- Features/Multi selection screenshots
- Features/Multiple home views
- Features/Multiple home views/Testing
- Features/Multiple schoolserver registration
- Features/Neighborhood List View
- Features/Network control panel
- Features/Network control panel/Testing
- Features/Network status
- Features/New ASLO
- Features/New ASLO/Testing
- Features/New Toolbar Design
- Features/New Toolbar Design/Testing
- Features/Notification Progress Bar
- Features/Notification Replacement
- Features/Notification System
- Features/Notification Urgency
- Features/Object Collections
- Features/Obsolete/Ad hoc Networking
- Features/Obsolete/Ad hoc Networking/Testing
- Features/Onscreen Keyboard
- Features/Optimize TreeViews
- Features/Optional activity updates
- Features/Optional adhoc autoconnect
- Features/Parental controls
- Features/Patch workflow
- Features/Peer to Peer Objects Sharing
- Features/Plain Query Format
- Features/Policy
- Features/Print Support
- Features/Problem Reports
- Features/Problem Reports/Testing
- Features/Proxy Settings
- Features/Publish Sugar Version
- Features/Python3
- Features/Remove Presence Service
- Features/Remove Presence Service/Testing
- Features/Replace GtkMenu
- Features/Replace combo box in journal search
- Features/Replace combo box in language panel
- Features/Resource monitoring
- Features/Revised Browse default-bookmarks.html
- Features/Revised Browse default-bookmarks.html/Testing
- Features/Save-As
- Features/Semantic Web
- Features/Semantic Web/Testing
- Features/Server Objects Sharing
- Features/Sharing Journal Entries Via School Server
- Features/Show Thumb Drives As Hierarchical
- Features/Signed Bundles
- Features/SimpleActivity
- Features/Simple Messages Notification
- Features/Smart Objects
- Features/Smart Objects/Shared Actions
- Features/SoaS Creation Station
- Features/SoaS Remixability
- Features/SoaS Remixability/Testing
- Features/SoaS customization
- Features/SoaS next
- Features/Soas V5/
- Features/Social Help
- Features/Spent Times
- Features/Spiral Home View
- Features/Spiral Home View/Testing
- Features/Start activity from another activity
- Features/Statistics gathering
- Features/Sugar3 Docs
- Features/Sugar3 Docs/How To Write
- Features/Sugar 0.90
- Features/Sugar Activity Library on a Stick
- Features/Sugar Activity Library on a Stick/Testing
- Features/Sugar Bundles
- Features/Sugar Creation Kit DVD
- Features/Sugar Screenshot Dialog Popup
- Features/Sugar Update Control ASLO
- Features/Sugar Update Control ASLO/Testing
- Features/Sync datastore object changes
- Features/TableView Widget
- Features/TableView Widget/Testing
- Features/Tabs In Browse
- Features/Tabs In Browse/Testing
- Features/Tags in Journal
- Features/Teacher Buddy
- Features/Terminal Sharing
- Features/Text To Speech In The Toolkit
- Features/Tick based animation
- Features/Toolbar utils
- Features/Touch
- Features/Touch/Development
- Features/Touch/Programming Tips
- Features/Touch/Testing
- Features/Touch/Testing os11
- Features/Touch/Testing os6
- Features/Touch/Testing os8
- Features/Touchpad control panel section
- Features/Touchpad control panel section/Testing
- Features/Transfer to many
- Features/Transfer to many options
- Features/Transfer to many screenshots
- Features/Trigger Bundle Add
- Features/Update Favorites
- Features/Variable-Appearance-of-Buddy-Icon
- Features/WPA-WPA2-Enterprise-Network-Connections
- Features/WPA-WPA2-Enterprise-Network-Connections/Testing
- Features/WebKit
- Features/WebKit/Development
- Features/Web services
- Features/Web services/Testing
- Features/Write to journal anytime
- Features/Write to journal anytime/Testing
You can add categories to tie features back to real deployments/schools requesting them, for example [[Category:Feature requested by School Xyz]]