Research Repository for Data and Diagnostics
GitHub repositories:
- https://github.com/JCSDA-internal/r2d2 (R2D2 V2 and R2D2 V3 server)
- https://github.com/JCSDA-internal/r2d2-ingest (R2D2 data ingest request system)
- https://github.com/JCSDA-internal/r2d2-data (localhost R2D2 database)
- https://github.com/JCSDA-internal/r2d2-client (R2D2 V3 client)
Documentation:
- https://github.com/JCSDA-internal/r2d2/blob/develop/TUTORIAL.md
- https://github.com/JCSDA-internal/r2d2/blob/develop/TABLES.md
Table of Contents |
---|
About
R2D2 is a lightweight Python API and MySQL database that Skylab uses for data assimilation experiments. The current R2D2 is version 2 which uses Python MySQL Connector to execute queries directly to the remote, production MySQL database located on us-east-2 on r2d2.jcsda.org on port 3306. The new R2D2 is version 3 which uses a standardized client / server architecture using REST HTTP API calls.
Procedures
Adding Files to EWOK_STATIC_DATA
Requirements:
- Access to Orion since files are synced from there, although this can be worked around.
- Access to
jedi-para
orjedipara
orrole-jcsda
on HPCs
Steps:
- Log into Orion and sudo to the
role-jcsda
account. - Copy static files from staging location to the decided $EWOK_STATIC_DATA location. The staging location is usually given in the work ticket and is the location where the JCSDA team member has placed the data. File names can be renamed if needed. Make sure to match the permissions as the other files in $EWOK_STATIC_DATA directory.
- Run the
rsync
from the other HPCs. There is a script located inside jedipara's~/bin
directory the can be used to perform the rsync. Make sure the username is yours instead of the most recent team members. If you get an ssh error, you can remove the machine from known hosts and try again. An example of the script on Discover is located at /home/jedipara/bin/rsync-ewok-static-from-orion.sh. - Check off each machine in the R2D2-data ticket as you sync.
R2D2 V3: Client / Server Implementation
Installing the r2d2 server (Note: This installation process needs to be updated and combined)
cd r2d2
python3 -m pip install -e .
cd server
python3 -m pip install -e .
Installing the r2d2 client
cd r2d2-client
python3 -m pip install -e .
How to use the r2d2-client generator
from generator import Generator
Generator().generate(client_output_path='/Users/eric2/jedi/jedi-bundle/r2d2-client/src/r2d2_client/r2d2_client.py')
or
Generator(selected_item='observation').generate(client_output_path='/Users/eric2/jedi/jedi-bundle/r2d2-client/src/r2d2_client/r2d2_client.py')
How to launch the Swagger Editor for editing app.yaml using a localhost Docker container
docker pull swaggerapi/swagger-editor
docker run -d -p 80:8080 swaggerapi/swagger-editor
Important Reference Links
- https://swagger.io/specification/v3/
- https://editor.swagger.io/ (Online Version)