Skip to content
Snippets Groups Projects

LDV Specification

LDV Specification Application. For filling ATDB-LDV with processing tasks for LOFAR data

Documentation (Confluence)

Collaborate

  • create your branch from main

  • add your functionality

  • test your functionality locally

  • merge main into your branch before creating a MR

  • merge with main

  • deploy in test, and test it

  • deploy in production, and test it

Local update

After a collegue has made changes, then locally:

  > git pull
  > pip install -r requirements\dev.txt
  > python manage.py migrate --settings=ldvspec.settings.dev  

Local Development Environment

Postgres Database in Docker

Run docker-compose -f docker-compose-postgres-dev.yml up -d with the following compose file to spin up a new Postgres container. See the docker-compose-postgres-dev.yml file in the docker directory. (not that port 5433 is used. You can change that at will, but then also change it in dev.py)


version: "3.7"
services:
      
  ldv-spec-db:
    image: postgres:14
    container_name: ldv-spec-postgres
    expose:
      - 5433
    ports:
      - 5433:5432
    environment:
      POSTGRES_PASSWORD: "secret"
      POSTGRES_USER: "postgres"
      POSTGRES_DB: "ldv-spec-db"      
    volumes:
      - ldv-spec-db:/var/lib/postgresql/data
    restart: always
    
volumes:
  ldv-spec-db:

Django Application

  • clone the repo

  • open the project in Pycharm

  • create a venv (File -> Settings -> Project -> Project Interpreter -> (click cog) -> add)

  • pip install -r requirements\dev.txt

  • check and/or change the database connection in settings/dev/py. In this example it connects to a database server on 'raspiastro', you have to change that to the server where you run your Postgres Docker container (localhost?)

DATABASES = {
    'default': {
         'ENGINE': 'django.db.backends.postgresql_psycopg2',
         'USER': 'postgres',
         'PASSWORD': 'secret',
         'NAME': 'ldv-spec-db',
         'HOST': 'raspiastro',
         'PORT': '5433',
    },
}
   > python manage.py migrate --settings=ldvspec.settings.dev
   > python manage.py runserver --settings=ldvspec.settings.dev
   > python manage.py createsuperuser --settings=ldvspec.settings.dev

Test Environment

Production Environment

Configuration

See ~/shared/ldvspec.env for database credentials and where to find ATDB-LDV

NOTE: currently a postgres database in a Docker container is also used in production. This will change to a database on the sdc-db machine.

admin user

  • admin:admin

Build & Deploy

The CI/CD pipeline creates 2 Docker containers:

  • ldv-specification : The Django application
  • ldv-spec-postgres : The Postgres database

The database can also be accessed externally:

  • host : sdc-dev.astron.nl / sdc.astron.nl
  • port : 12000
  • database: ldv-spec-db

Manual steps (add them somewhere)

Log into the ldv-specification container. (using the portainer GUI or with the docker exec)

> cd /src 
> python manage.py migrate --settings=ldvspec.settings.docker_sdc
> python manage.py createsuperuser --settings=ldvspec.settings.docker_sdc