Skip to main content

IPython notebook storage on OpenStack Swift + Rackspace.

Project description

Stores IPython notebooks automagically onto OpenStack clouds through Swift.

Note: Bookstore only works against IPython 1.0.0 alpha, but is ready for 1.0’s release.

Currently supports OpenStack Swift with Keystone authentication and Rackspace.

Add your provider with a pull request!

Bookstore currently has generic support for OpenStack Swift and simplified authentication for Rackspace’s CloudFiles. Feel free to make a pull request if you want a notebook manager for your implementation.

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

This version requires IPython 1.0.0a1 and will pull the alpha release tarball as mentioned in the notice to IPython-dev. You probably want to install this to a virtualenv or it will likely overwrite your current IPython installation. When the full release comes out, this should get a little easier to setup.

Simply:

$ pip install bookstore

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

$ pip install -e 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 provider.

You can create a brand new notebook profile for bookstore:

$ ipython profile create swifty_ipy
[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'

Or just add it to your default configuration, which should be located at

~/.ipython/profile_default/ipython_notebook_config.py

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'

You will of course need to set these options according to your implementation.

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 up your user name and password
c.CloudFilesNotebookManager.account_name = USER_NAME
c.CloudFilesNotebookManager.account_key = API_KEY

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

You’ll need to replace USER_NAME and API_KEY with your actual username and api key of course. You can get the API key from the cloud control panel after logging in.

Contributing

Send a pull request on GitHub. It’s that simple.

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-0.0.2a.tar.gz (12.3 kB view details)

Uploaded Source

File details

Details for the file bookstore-0.0.2a.tar.gz.

File metadata

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

File hashes

Hashes for bookstore-0.0.2a.tar.gz
Algorithm Hash digest
SHA256 08b53032db6fad552cecaaef2f384b6e181a4fd8d34c242f7b4f96fd1ab7f231
MD5 684517a196a4720d55e8d05c38fc36cd
BLAKE2b-256 4f46315f823d8672d4477076c5bc9f3932ee7fe4690b1fe5585c939546fcd4ed

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