-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Docker: Video recorder/uploader listen on session events #3070
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: trunk
Are you sure you want to change the base?
Conversation
Signed-off-by: Viet Nguyen Duc <viet.dnguyen@katalon.com>
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||||||||||||||||
CI Feedback 🧐A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
3eafe9c to
abc5320
Compare
abc5320 to
6e0739b
Compare
User description
Thanks for contributing to the Docker-Selenium project!
A PR well described will help maintainers to quickly review and merge it
Before submitting your PR, please check our contributing guidelines, applied for this repository.
Avoid large PRs, help reviewers by making them as simple and short as possible.
Description
Fixes #3067
Motivation and Context
Types of changes
Checklist
PR Type
Enhancement
Description
Implement event-driven video recording and uploading service
Add Python entry points for recorder and uploader with fallback support
video_recorder.pyswitches between event-driven and shell-based modesvideo_uploader.pyidles in event-driven mode, delegates to unified serviceIntroduce comprehensive session state management and internal async queue
Add support for selective upload based on session failure status
SE_UPLOAD_FAILURE_SESSION_ONLYenvironment variableUpdate Docker configuration and supervisor configs
pyzmqdependency to base imageInclude test docker-compose file for event-driven setup
Diagram Walkthrough
File Walkthrough
video_recorder.py
Video recorder entry point with mode detectionVideo/video_recorder.py
SE_EVENT_DRIVEN_SERVICESenvironmentvariable
VideoServicein event-driven mode/opt/bin/video.shin traditional modevideo_service.py
Unified event-driven video recording and upload serviceVideo/video_service.py
lines)
session-created,session-closed,and
session-eventeventsSessionStatedataclass)
options
SE_UPLOAD_FAILURE_SESSION_ONLY/statusendpoint for distributed Hub-Nodesfiltering
video_uploader.py
Video uploader entry point with mode detectionVideo/video_uploader.py
SE_EVENT_DRIVEN_SERVICESenvironmentvariable
uploads)
/opt/bin/upload.shin traditional modeDockerfile
Add pyzmq dependency to base imageBase/Dockerfile
pyzmqto pip dependencies for ZeroMQ async supportevent bus
recorder.conf
Update recorder supervisor config to use Python entry pointVideo/recorder.conf
/opt/bin/video.shtopython3 /opt/bin/video_recorder.pyuploader.conf
Update uploader supervisor config to use Python entry pointVideo/uploader.conf
/opt/bin/upload.shtopython3 /opt/bin/video_uploader.pydocker-compose-v3-event-driven-arm64.yml
Test docker-compose for event-driven video recordingtests/docker-compose-v3-event-driven-arm64.yml
SE_EVENT_DRIVEN_SERVICES=truerclone configuration