Skip to main content

Tool to manage execution of automated tests jobs

Project description

rocinante

Installing

Rocinante depends on a working installation of Python 3.7 (or above), and Docker.

Installing Python

If you don’t have Python 3 installed on your machine yet, you can obtain it by reading the official installation instructions.

To verify your installation, you can try the following commands in your terminal, and ensure that your versions are equivalent to or higher than those in the output below:

> python3 --version
Python 3.7.3
> pip3 --version
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)

Notes about installing on virtual machines provided by the Blu

At the moment, the configuration of the virtual machines provided by the Blu require Python 3.7 to be built manually before installing.

Thus, the following commands must be executed:

sudo apt-get install curl zlib1g-dev libssl-dev libffi-dev libreadline-dev libexpat-dev software-properties-common
curl -O https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
tar xvf Python-3.7.4.tgz
cd Python-3.7.4
./configure --prefix=/usr           \
            --enable-shared         \
            --with-system-expat     \
            --with-system-ffi       \
            --with-ensurepip=yes    \
            --enable-optimizations
make
sudo mkdir /usr/lib/python3.7/site-packages/ -p
sudo mkdir /usr/lib/python3.7/dist-packages/ -p
sudo ln -s /usr/share/pyshared/lsb_release.py /usr/lib/python3.7/site-packages/lsb_release.py
sudo ln -s /usr/lib/python3/dist-packages/softwareproperties/ /usr/lib/python3.7/dist-packages/
sudo make install
sudo chmod -v 755 /usr/lib/libpython3.7m.so
sudo chmod -v 755 /usr/lib/libpython3.so
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3 get-pip.py --no-setuptools --no-wheel
sudo pip3 install --upgrade pip
sudo pip3 install etna-rocinante

This might take a looooong time, go grab a coffee.

Installing Docker

Docker provides official installation guides for each operating system.

Installing Rocinante

As soon as the dependencies are correctly installed, Rocinante can be installed using pip:

pip3 install rocinante

Configuring Rocinante

Rocinante requires a configuration file, in order to know how to receive jobs from RabbitMQ, and how to download moulinettes from the intranet.

{
  "rabbitmq": {
    "host": "rabbitmq.etna.local",
    "port": 5671,
    "username": "some_user_name",
    "password": "some_password",
    "virtual_host": "some_virtual_host"
  },
  "config": {
    "intra_user": "some_user_name",
    "intra_password": "some_password",
    "gitlab_token": "aC0MpL1c4T3DT0kEn"
  }
}

The path to this file must be given using the -c / --config-file switch.

Running multiple instances

Multiple instances of Rocinante can be executed simultaneously on the same machine. For that, the -r / --root-dir switch must be used to specify a custom root directory for each instance.

For example, the first instance could be started with the following command:

> rocinante --config-file /etc/rocinante/config.json --root-dir /var/run/rocinante1

Whereas the second instance would be launched like so:

> rocinante --config-file /etc/rocinante/config.json --root-dir /var/run/rocinante2

Running as a daemon

Rocinante can also be deployed as a Linux daemon, using the configuration script provided as scripts/install_daemon.sh

Different instances of Rocinante can be created like so:

> ./scripts/install_daemon.sh 1 10.9.8.1
> ./scripts/install_daemon.sh 2 10.9.8.2

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

etna_rocinante-1.1.1-py3-none-any.whl (11.7 kB view hashes)

Uploaded Python 3

Supported by

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