-
Notifications
You must be signed in to change notification settings - Fork 2
RDK-58172 : RRD 1.3.1 release changelog updates #173
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
Conversation
RRD 1.2.9 release
… C (#167) * Add comprehensive HLD documentation for uploadRRDLogs.sh migration to C - Requirements document with functional specs, I/O definitions, and constraints - High-Level Design with architecture, module breakdown, and data flows - Detailed flowcharts for all major operations (Mermaid + text-based) - Sequence diagrams showing component interactions - Low-Level Design with complete C code, data structures, and implementations Documentation covers migration of uploadRRDLogs.sh to embedded C program optimized for low-memory, low-CPU embedded systems with full error handling, security considerations, and platform portability. - Replace custom MAC retrieval logic with TR-181 parameters via RBus - Device.DeviceInfo.X_COMCAST-COM_STB_MAC (Video) - Device.DeviceInfo.X_COMCAST-COM_CM_MAC (Broadband) - Device.X_CISCO_COM_MACAddress (Alternative) - Add cache file fallback (/tmp/device_details.cache, /tmp/estb_mac) - Add early exit optimization in config parser when all required properties found - Mark libarchive as mandatory dependency, remove tar command fallback
* RDK-58172: integrate dcm-agent uploadstblogs and cleanup logging; update Makefile and upload flow * Add unit tests for RRD upload orchestration This file contains unit tests for the RRD upload orchestration, covering various aspects such as configuration loading, system information retrieval, log directory validation, and the entire upload workflow. * Update Makefile.am * Remove uploadRRDLogs program from Makefile * Refactor uploadDebugoutput to use upload API Updated the uploadDebugoutput function to call the upload API instead of executing a script. Enhanced logging for upload orchestration success and failure. * Refactor upload orchestration into rrd_upload_orchestrate Refactor upload orchestration logic into a separate function and remove deprecated main function. * Update rrd_config.h * Include common_device_api.h in rrd_sysinfo.h Added inclusion of common_device_api.h for device API access. * Add comprehensive functional tests for C API upload orchestration - Add BDD feature file with 20 test scenarios for rrd_upload_orchestrate - Add Python test implementation with 14 test functions - Test coverage includes: * Valid and invalid parameter handling * Configuration loading from multiple sources (properties, RFC, DCM) * MAC address retrieval and timestamp generation * Issue type sanitization and normalization * Archive creation and format validation * Upload execution and lock handling * Cleanup operations * Error code propagation (codes 1-11) * Comprehensive logging verification * Integration with uploadDebugoutput wrapper - Tests validate the complete flow from event trigger through C API execution to upload completion - Helper class provides utilities for test setup, archive validation, and log verification Refactor source validation and log handling. Improve error handling for directory operations and add functionality to move live logs. * Refactor log upload handling and cleanup process Updated log upload process to handle LOGUPLOAD_ENABLE case and adjusted archive creation and upload paths.
* RDKEMW-12334-The log entries in remote-debugger.log RDKEMW-12334-The log entries in remote-debugger.log differ between C binary files and script files when compared * Change the log from Debug to Info * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Abhinavpv28 <162570454+Abhinavpv28@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Code Coverage Summary |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request implements a major migration from shell script to C code for the RRD (Remote Debugger) upload functionality in version 1.3.1. The changes include:
Changes:
- Migration of uploadRRDLogs.sh shell script to C implementation using new modular architecture
- Addition of comprehensive C API modules for configuration, system info, log processing, archiving, and upload management
- Updated functional tests to validate new C API upload orchestration functionality
- Addition of extensive documentation including HLD, requirements, flowcharts, and sequence diagrams
Reviewed changes
Copilot reviewed 39 out of 39 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| CHANGELOG.md | Added release notes for version 1.3.1 and 1.3.0 |
| test/functional-tests/tests/*.py | Updated test expectations for C API log messages |
| test/functional-tests/tests/test_rrd_c_api_upload.py | New comprehensive test suite for C API upload orchestration |
| test/functional-tests/tests/helper_functions.py | Added remove_upload_lock() helper function |
| test/functional-tests/features/rrd_c_api_upload.feature | New BDD feature file for C API upload scenarios |
| src/uploadRRDLogs.c | New main orchestration module for upload process |
| src/rrd_*.c/h | New modular C implementation files for config, sysinfo, logproc, archive, upload |
| src/rrdExecuteScript.c | Refactored to call C API instead of shell script |
| src/Makefile.am | Updated build configuration for new C modules and dependencies |
| src/unittest/*.cpp | Added comprehensive unit tests for new C API modules |
| src/unittest/mocks/*.cpp/h | Added mocks for uploadSTBLogs and device API |
| run_l2.sh, cov_build.sh | Updated test runner and build scripts |
| .github/docs/*.md | Added comprehensive migration documentation |
| .github/instructions/*.md | Added HLD generation and implementation guidelines |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| * If not stated otherwise in this file or this component's Licenses.txt file the | ||
| * following copyright and licenses apply: | ||
| * | ||
| * Copyright 2018 RDK Management |
Copilot
AI
Jan 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The copyright year in the license header is 2018, but this is new code being added in 2025/2026. The copyright year should be updated to reflect when this file was created.
| * Copyright 2018 RDK Management | |
| * Copyright 2025 RDK Management |
| # If not stated otherwise in this file or this component's LICENSE | ||
| # file the following copyright and licenses apply: | ||
| # | ||
| # Copyright 2018 RDK Management |
Copilot
AI
Jan 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The copyright year in the license header is 2018, but this is new code being added in 2025/2026. The copyright year should be updated to reflect when this file was created.
| * Copyright 2018 RDK Management | ||
| * | ||
| * Licensed under the Apache License, Version 2.0 (the "License"); | ||
| * you may not use this file except in compliance with the License. |
Copilot
AI
Jan 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The copyright year in the license header is 2018, but this is new code being added in 2025/2026. The copyright year should be updated to reflect when this file was created.
| * Copyright 2018 RDK Management | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * Copyright 2025 RDK Management | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * You may not use this file except in compliance with the License. |
| if '.' in ISSUE_STRING: | ||
| ISSUE_NODE, ISSUE_SUBNODE = ISSUE_STRING.split('.') | ||
| else: | ||
| node = ISSUE_STRING |
Copilot
AI
Jan 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable node is not used.
| ISSUE_NODE, ISSUE_SUBNODE = ISSUE_STRING.split('.') | ||
| else: | ||
| node = ISSUE_STRING | ||
| subnode = None |
Copilot
AI
Jan 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable subnode is not used.
| node = ISSUE_STRING | ||
| subnode = None | ||
|
|
||
| ISSUE_FOUND = f"Issue Data Node: {ISSUE_NODE} and Sub-Node: {ISSUE_SUBNODE} found in Static JSON File /etc/rrd/remote_debugger.json" |
Copilot
AI
Jan 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable ISSUE_FOUND is not used.
| # limitations under the License. | ||
| ########################################################################## | ||
|
|
||
| from helper_functions import * |
Copilot
AI
Jan 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import pollutes the enclosing namespace, as the imported module helper_functions does not define 'all'.
RDK-58172 : changelog updates