Installing Poppy

Note: These instructions are for running a local instance of Poppy. We suggest you run this inside a virtualenv.

You must have CassandraDB installed and running. We recommend using Docker (see below)

  1. From your home folder, create the ~/.poppy folder and clone the repo:

    $ cd
    $ mkdir .poppy
    $ git clone https://github.com/openstack/poppy.git
    
  2. Copy the Poppy config files to the directory ~/.poppy:

    $ cp poppy/etc/poppy.conf ~/.poppy/poppy.conf
    $ cp poppy/etc/logging.conf ~/.poppy/logging.conf
    
  3. Find the [drivers:storage:cassandradb] section in ~/.poppy/poppy.conf and modify the URI to point to your local casssandra cluster:

    [drivers:storage:cassandra]
    cluster = "localhost"
    keyspace = poppy
    
  4. You need to create the default keyspace “poppy” on your cassandra host/cluster. Log into cqlsh, do:

    cqlsh> CREATE KEYSPACE poppy WITH REPLICATION = { 'class' : 'SimpleStrategy' , 'replication_factor' :  1}  ;
    
  5. For logging, find the [DEFAULT] section in ~/.poppy/poppy.conf and modify as desired:

    log_file = server.log
    
  6. Change directories back to your local copy of the repo:

    $ cd poppy
    
  7. Run the following command so you can see the results of any changes you make to the code without having to reinstall the package each time:

    $ pip install -e .
    
  8. Start the Poppy server:

    $ poppy-server
    
  9. Test that Poppy is working by requesting the home doc (with a sample project ID):

    $ curl -i -X GET http://0.0.0.0:8888/v1.0/123
    

    You should get an HTTP 200 along with some headers that look similar to the following example:

    HTTP/1.0 200 OK
    Date: Thu, 13 Feb 2014 14:34:21 GMT
    Server: WSGIServer/0.1 Python/2.7.3
    Content-Length: 464
    Content-Type: application/json-home
    Cache-Control: max-age=86400
    

Installing CassandraDB (using Docker)

  1. From the docker/cassandra folder:

    $ docker build -t db .
    
  2. Open the 9160 and 9042 ports for Cassandra. Name the container ‘cassandra’:

    $ docker run -d -p 9160:9160 -p 9042:9042 --name cassandra db
    
  3. Test the running cassandra instance (you may need to pip install cqlsh):

    $ cqlsh <local ip> 9160
    

    Where local ip is the ip address of your running docker container

  4. Import the schema file from the poppy/storage/cassandra/schema.cql file.