kinnou02 / Chaos-1

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Chaos

Chaos is the web service which can feed Navitia with real-time disruptions. It can work together with Kirin which can feed Navitia with real-time delays.

Installation

The hard way

Clone the Chaos repository

git clone git@github.com:CanalTP/Chaos.git
cd Chaos

Python requirements

  • Install Python sudo apt-get install python2.7 python2.7-dev
  • Install pip
  • Install virtualenv
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt

Build protobufs

Install protobuf v2.6.1

git submodule init
git submodule update
./setup.py build_pbf

Create the database

sudo apt-get install postgresql libpq-dev
sudo -i -u postgres
# Create a user
createuser -P navitia (password "navitia")

# Create database
createdb -O navitia chaos

# Create database for tests
createdb -O navitia chaos_testing
ctrl + d

Run Chaos with honcho (optional)

Install honcho

You can use honcho for managing Procfile-based applications.

pip install honcho
create a .env file

Write this line inside

CHAOS_CONFIG_FILE=default_settings.py
Upgrade database
honcho run ./manage.py db upgrade
RabbitMQ (optional)

RabbitMQ is optional and you can deactivate it if you don't want to send disruptions to a queue.

# chaos/default_settings.py
ENABLE_RABBITMQ = False
Run Chaos
honcho start

The easy way (with Docker)

git clone git@github.com:CanalTP/Chaos.git
cd Chaos
git submodule init
git submodule update
docker-compose up -d

To watch logs output:

docker-compose logs -f

Chaos will be accessible on http://chaos_ws_1.docker if you are using the docker-gen-hosts tool, it will also be accessible on http://chaos-ws.local.canaltp.fr

Tests

The following commands for tests are also working in Docker environment, you just have to run before:

docker-compose exec ws bash
cd tests

Unit tests

honcho run nosetests

Functional tests

cd tests
honcho run lettuce

To stop directly on faulty test

honcho run lettuce --failfast

About

License:GNU Affero General Public License v3.0


Languages

Language:Gherkin 76.6%Language:Python 23.3%Language:Shell 0.0%Language:Mako 0.0%