Skip to main content

Tachyonic Project Devstack

Project description

Tachyonic Project devstack currently fully supports CPython 3.6, 3,7.

Requirements

Devstack uses docker to run endpoints and services known as projects in Tachonic.

https://www.docker.com

Quick Install

$ pip3 install devstack

or

$ pip3 install https://github.com/TachyonicProject/devstack/tarball/latest#egg=devstack

Source Code Install

Tachyonic Project devstack infrastructure and code is hosted on GitHub. Making the code easy to browse, download, fork, etc. Pull requests are always welcome!

Clone the project like this:

$ git clone https://github.com/TachyonicProject/devstack.git

Once you have cloned the repo or downloaded a tarball from GitHub, you can install Tachyon like this:

$ cd devstack
$ pip3 install .

Or, if you want to edit the code, first fork the main repo, clone the fork to your development area, and then run the following to install it using symbolic linking, so that when you change your code, the changes will be automatically available to your app without having to reinstall the package.

Keep in mind Cythonized C code for all modules is included during install or develop. During development code alterations you need run setup.py after each change.

$ cd devstack
$ python3 setup.py develop

During development without explicitly running setup.py after each change, you can use the following. It clears the compiled .cpython.so modules to ensure code is loaded from Python sources.

$ python3 setup.py clean

Usage

Devstack creates multiple docker insances for micro-services that share a common directory on the host machine.

The common directory contains Tachyonic Project Repositories for micro-services and dependencies. There is an additional directory known as www that contains the project deployment environment.

Example startup:

$ mkdir tachyonic
$ devstack -s tachyonic

Once this is completed, you can see view wether the docker instances are running using:

$ docker ps

Provide at least 2 minutes for all nodes and services to be runnining especially during initial startup.

You can access the Photonic UI via http://localhost:9000

All other endpoints/services are exposed to the host.

Mysql 3306  
UI/Photonic 9000 (RestAPI/JSON)
Identity/Infinitystone 9001 (RestAPI/JSON)
Radius/Tradius 9002 (RestAPI/JSON)

To control which modules are started, specify a json file (via -m switch) with the required builds and ports. For example, create a file called modules.json:

{
    "builds" : ["infinitystone",
                "tradius",
                "netrino",
                "topenstack",
                "photonic"
               ],

    "ports" : {"photonic": { "80/tcp": 9000 },
              "infinitystone": { "80/tcp": 9001 },
              "tradius": {"80/tcp": 9002,
                     "1812/udp": 1812,
                     "1813/udp": 1813,
                     "1812/tcp": 1812,
                     "1813/tcp": 1813
                    },
              "netrino": { "80/tcp": 9004 },
              "topenstack": { "80/tcp": 9005 }
        }
}

and start with:

$ devstack -s tachyonic -m modules.json

Development

By default we do not allow to push to our repositories directly.

When editing code ensure you rename origin and add your own fork as origin.

Example:

$ git remote rename origin upstream
$ git remote add origin git@github.com:cfrademan/tradius.git
$ git push -u origin development

To restart endpoint gunicorn wsgi applications:

$ devstack -r

When the tachyonic containers start for the first time, their entrypoint scripts does a pip install on the package to install the package as well as their dependencies. Because this takes a bit of time, it creates a /installed file in the container, and only performs this installation if the /installed file is not present. If you have the requirement to force a re-installation, simply remove that file from the running container. For example, for photonic:

$ docker exec photonic rm /installed

Next time when devstack -s path is run, the package and it’s dependacies will be re-installed.

Release history Release notifications

This version
History Node

1.0.0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
devstack-1.0.0-py3-none-any.whl (18.8 kB) Copy SHA256 hash SHA256 Wheel py3
devstack-1.0.0.tar.gz (24.6 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page