Skip to content
Snippets Groups Projects
Karel van Klink's avatar
Karel van Klink authored
Add sites, and add integration of IPtrunks and routers with LSO deployment

See merge request !12
ffbd0a2b
History

Environment and dependencies

  • Install python 3.10 if you don't have it already:
    • add-apt-repository ppa:deadsnakes/ppa
    • apt install python3.10 python3.10-distutils
  • Follow Steps 1 and 2 from here to install dependencies and setup DB: https://workfloworchestrator.org/orchestrator-core/workshops/beginner/debian/
  • To install the orchestrator GUI, you can follow the steps 5 and 6 from the above link.
  • Create a virtualenv:
    • source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    • mkvirtualenv --python python3.10 gso
  • To use the virtualenv:
    • source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    • workon gso

Install

Do all of this inside the virtualenv.

  • Clone this repo and cd into it
  • pip install -r requirements.txt
    • If you get an error because you pip version is too old, run this: curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
  • pip install -e .
  • cd into gso directory and create oss-params.json based on the oss-params-example.json file.
  • Export the oss-params file: export OSS_PARAMS_FILENAME="/path/to/oss-params.json"
  • Upgrade DB to latest revision: PYTHONPATH=. python main.py db upgrade heads

Run

  • The core of workflow orchestrator can be started with uvicorn --host 0.0.0.0 --port 8080 main:app from inside the gso directory of this repo.
  • The GUI can be started with yarn start.

Useful WFO Resources

API examples

Note: update IP address in the request to your own where you're running WFO.

Creating subscriptions (look at initial_input_form_generator method of the workflow to find what properties need to be passed in the data of the POST request)

Create process that produces a new subscription (CREATE workflow)

curl -X POST -H "Content-Type: application/json" http://10.98.1.62:8080/api/processes/create_trunk --data '[{"product": "321045fc-21ec-476b-b67b-5f211e47c3d7"},{"trunk_name": "mytrunkfromapi", "geant_s_sid": "a1b2c3"}]'

Create process that manipulates the state of a subscription (TERMINATE workflow)

curl -X POST -H "Content-Type: application/json" http://10.98.1.62:8080/api/processes/terminate_trunk --data '[{"subscription_id": "910e7044-c427-46d1-afc3-7817e221d45d"}, {"are_you_sure": "yes"}]'

Deleting subscriptions (not the same as running a TERMINATE workflow for a subscription, but to actually erase it from the WFO database)

Delete a subscription:

curl -X 'DELETE' 'http://10.98.1.62:8080/api/subscriptions/3f16532b-0a48-4fe3-802a-36b3f54eed0e'

To do the above, you first have to delete the processes first:

curl -X 'DELETE' 'http://10.98.1.62:8080/api/processes/7447a3e9-7c58-4ae7-8804-c0a75c39c924'