to see how the system is being used, either watch the video provided in the root folder of this repository or read and test the documentation below.
-
start system by jumping into the root folder and executing
docker-compose up
-
connect to the frontend of the system by using the browser and the url
localhost:5001
-
to connect to the rabbitMQ, use the tab of the frontend and login with the credentials
user
andpassword
-
in the rabbit UI, you can inspect all connections, queues, channels, exchanges, etc.
-
the swagger API is reachable via another UI tab but is kept at a minimum description
-
to use the system: - NOTIFY TASK: - for running the task notify, write
notify
into the manual response strategy field and hitExecute Manual Response
- next go to the database tab and copy the job collection name and past it into the string field below and clickget data
, this shows successfull invocations of notify. - MANUAL TASK: - sends data to the response manager, writemanual_task
into the manual task field. the action fails if the response manager is offline. - REVOCATION OF TASK: - start a the manual task by writingadd
into the field. above in the monitoring of active response, you can see the job id. the add task runs for 15 seconds and is executed by a celery worker. to revoke the task, simply copy paste the job ID of the task into the revocation field in under manual response. - AUTOMATED RESPONSE: - to launch an automated response, click onSample 1
orSample 2
under the fieldAutomatic Response Strategies
- next click the yellow submit button to launch an automated response. the response will be handles asynchronously by celery workers and results are recorded in the database. rabbitMQ message brokers take over the task queueing and monitor/manage responses between the backend and the celery workers. - the output is visible in the event logs section below. -
possible tasks are: manual_task, notify, automated_task, add2, add,
-
other tasks can be added in the response-manager folder under the file
tasks.py
mongo admin -u user -p "password"
- container running the tornado webserver serving vue js frontend application
- portainer container setup to monitor docker containers via the UI
Message broker for celery distributed tasking application on the containers
Storing results of distributed tasking via celery in containers
Running and exposing software modules via REST API
- by calling the rest API it is possible to see the tools that can be executed in a celery process
Celery:
start worker: celery -A tasks worker --loglevel=info
celerybeat-mongo: Apache-2.0 License celery: BSD-3-Clause License tornado: Apache-2.0 License pymongo: Apache-2.0 License redis: BSD-3-Clause License pika: BSD-3-Clause License requests: Apache-2.0 License
- local client autoamted requests: 10: 11:18:26.972 11:18:28.015 20: