Skip to content

neutrons/live_data_server

live_data_server

Documentation Status codecov

Data server for data plots.

Development

Developer documentation at https://livedata-ornl.readthedocs.io/en/latest/

Dependencies

Setup for Local Development

  1. Clone the repository and cd into the project directory.

  2. Create a conda environment livedata, containing all the dependencies

    conda env create -f environment.yml
    conda activate livedata
  3. To deploy this application locally, you will need to set a number of environment variables, for example (bash):

      export DATABASE_NAME=livedatadb
      export DATABASE_USER=livedatauser
      export DATABASE_PASS=livedatapass
      export DATABASE_HOST=db
      export DATABASE_PORT=5432
      export LIVE_PLOT_SECRET_KEY="secretKey"
    
      # These need to be set for `pytest`,
      # but are not used in the docker compose
      export DJANGO_SUPERUSER_USERNAME=$DATABASE_USER
      export DJANGO_SUPERUSER_PASSWORD=$DATABASE_PASS

    Notes:

    • The DATABASE_PORT must be set to 5432, as Postgres is configured to listen on that port by default. If you need to change the port, you will need to modify the docker-compose.yml file accordingly.

    • It is recommended to save these variables into an .envrc file which can be managed by direnv. direnv will automatically load the variables when you cd into the project directory.

  4. After the secrets are set, type in the terminal shell:

    make docker/compose/local

    This command will copy deploy/docker-compose.envlocal.yml into docker-compose.yml before composing all the services.

    Type make help to learn about other macros available as make targets. For instance, make docker/pruneall will stop all containers, then remove all containers, images, networks, and volumes.

Testing

After the setup, with the server running, you can test your setup by running pytest:

pytest tests/test_post_get.py
# or simply
pytest

NOTE: The environment variables DJANGO_SUPERUSER_USERNAME and DJANGO_SUPERUSER_PASSWORD are defined in the docker-compose.envlocal.yml file, but pytest does not read this file. You must either have them exported to the shell where pytest is to be run, as described above, or modify the pytest command to include them, e.g.:

DJANGO_SUPERUSER_USERNAME=***** DJANGO_SUPERUSER_PASSWORD=***** pytest

Deployment to the Test Environment

Building the Documentation

Additional documentation is available in the docs directory. To build the documentation in your local machine, run the following command from within directory docs/:

make html

The documentation will be built in the docs/_build/html directory. To view the documentation, open the docs/_build/html/index.html file in a web browser.