Skip to main content

IPython notebook storage on OpenStack Swift + Rackspace.

Project description

https://badge.fury.io/py/bookstore.png https://travis-ci.org/rgbkrk/bookstore.png?branch=master

Stores IPython notebooks automagically onto OpenStack clouds through Swift.

Add your provider with a pull request!

Note: Bookstore requires IPython 1.0+

Bookstore currently has generic support for OpenStack Swift and simplified authentication for Rackspace’s CloudFiles. Bookstore also handles IPython notebook’s autosave/checkpoint feature and as of the latest release supports multiple checkpoints:

Multiple checkpoints

Once installed and configured (added to an ipython profile), just launch IPython notebook like normal:

$ ipython notebook
2013-08-01 13:44:19.199 [NotebookApp] Using existing profile dir: u'/Users/rgbkrk/.ipython/profile_default'
2013-08-01 13:44:25.384 [NotebookApp] Using MathJax from CDN: http://cdn.mathjax.org/mathjax/latest/MathJax.js
2013-08-01 13:44:25.400 [NotebookApp] Serving rgbkrk's notebooks on Rackspace CloudFiles from container: notebooks
2013-08-01 13:44:25.400 [NotebookApp] The IPython Notebook is running at: http://127.0.0.1:9999/
2013-08-01 13:44:25.400 [NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

Installation

Simply:

$ pip install bookstore

Alternatively, you can always pull from the master branch if you’re the adventurous type:

$ pip install git+https://github.com/rgbkrk/bookstore.git

Installation isn’t the end though. You need to configure your account details as well as where you’ll be storing the notebooks.

Configuration

Bookstore has to be added to an IPython profile and configured to work with your OpenStack provider.

If you want to keep it simple, just add your configuration to the default configuration located at:

~/.ipython/profile_default/ipython_notebook_config.py

Alternatively, you can create a brand new notebook profile for bookstore:

$ ipython profile create swiftstore
[ProfileCreate] Generating default config file: u'/Users/theuser/.ipython/profile_swiftstore/ipython_config.py'
[ProfileCreate] Generating default config file: u'/Users/theuser/.ipython/profile_swiftstore/ipython_notebook_config.py'

When launching, just set the custom profile you want to use

$ ipython notebook --profile=swiftstore

Each provider has their own setup for authentication.

On OpenStack Swift using Keystone Authentication

OpenStack (generic, non provider specific) has quite a few details you’ll need to configure, namely account name, account key, auth endpoint, and region. You’ll possibly need a tenant id and a tenant name.

Add this to your ipython notebook profile ipython_notebook_config.py, making sure it comes after the config declaration c = get_config().

# Setup IPython Notebook to write notebooks to a Swift Cluster
# that uses Keystone for authentication
c.NotebookApp.notebook_manager_class = 'bookstore.swift.KeystoneNotebookManager'

# Account details for OpenStack
c.KeystoneNotebookManager.account_name = USER_NAME
c.KeystoneNotebookManager.account_key = API_KEY
c.KeystoneNotebookManager.auth_endpoint = u'127.0.0.1:8021'
c.KeystoneNotebookManager.tenant_id = TENANT_ID
c.KeystoneNotebookManager.tenant_name = TENANT_NAME
c.KeystoneNotebookManager.region = 'RegionOne'

# Container on OpenStack Swift
c.KeystoneNotebookManager.container_name = u'notebooks'

On Rackspace’s CloudFiles

The Rackspace CloudFileNotebookManager simply needs your USER_NAME and API_KEY. You can also configure the region to store your notebooks (e.g. 'SYD', 'ORD', 'DFW', 'LON'). Note: If you’re using Rackspace UK, set your region to 'LON'.

Add this to your ipython notebook profile ipython_notebook_config.py, making sure it comes after the config declaration c = get_config().

# Setup IPython Notebook to write notebooks to CloudFiles
c.NotebookApp.notebook_manager_class = 'bookstore.cloudfiles.CloudFilesNotebookManager'

# Set your user name and API Key
c.CloudFilesNotebookManager.account_name = USER_NAME
c.CloudFilesNotebookManager.account_key = API_KEY

# Container on CloudFiles
c.CloudFilesNotebookManager.container_name = u'notebooks'

Contributing

Send a pull request on GitHub. It’s that simple. More than happy to respond to issues on GitHub as well.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bookstore-1.0.0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bookstore-1.0.0-py2.py3-none-any.whl (18.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file bookstore-1.0.0.tar.gz.

File metadata

  • Download URL: bookstore-1.0.0.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bookstore-1.0.0.tar.gz
Algorithm Hash digest
SHA256 115449e24edf52ddea0df28e59e600088f1687ccd88a83ec270d779674b373cd
MD5 a3c86d6b427376896d7d0fb29eae828f
BLAKE2b-256 d795f86696e9fe2411d4150bc66e7889ce71e069c94fcf09d3decaf3859bd387

See more details on using hashes here.

File details

Details for the file bookstore-1.0.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for bookstore-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ac18c338daa468d56537de7eb8cae264a1fcc0ea6ce7ab0eedd60271fb45a82c
MD5 3dbf9cd97262a57a6aad722a917185a0
BLAKE2b-256 201fc6f69a86a0182a059a2916a3338206dfdfd34d573a0621dafc60d81a7f8c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page