- Introduced `serialize_audit_for_response` and `serialize_current_cluster_for_template` functions to handle JSON serialization of audit and cluster data, enhancing data consistency for API responses and template rendering.
- Updated `get_mock_context` in `mock_data.py` to utilize the new serialization functions, simplifying the mock data structure and improving readability.
- Refactored `collect_context` and `collect_audits` in `views.py` to leverage the new serialization methods, ensuring a cleaner and more maintainable codebase.
- Added unit tests for the new serialization functions to ensure correctness and reliability of data formatting.
- Updated the tooltip for the CPU standard deviation metric to include a detailed explanation of the calculation, preserving newlines for better readability.
- Added CSS styles to support multi-line tooltips, improving user comprehension of the displayed data.
- Added a tooltip to the CPU standard deviation metric in the dashboard to provide a clearer explanation of the calculation formula, improving user understanding of the displayed data.
- Enhanced the JavaScript fetch logic in base.html to better handle API responses, including improved error messaging and structured data handling.
- Updated the way source status is processed, ensuring clearer differentiation between successful and error states for Prometheus and OpenStack metrics.
- Updated JavaScript to ensure CPU total, free, and usage values are formatted as numbers with one decimal place for consistency.
- Modified HTML template to apply float formatting to the displayed free CPU value, enhancing clarity in metrics presentation.
- Adjusted chart grid color for improved contrast in visualizations.
- Implemented print-specific styles to ensure proper layout and formatting on A4 paper.
- Enhanced chart configuration in JavaScript to include grid line width and tick border dash for clearer data representation.
- Updated HTML to streamline print functionality, replacing the PDF export button with a direct print command.
- Expanded mock data to include additional host labels and updated CPU current and projected values for better representation.
- Modified JavaScript to conditionally display projected CPU statistics and standard deviation, improving user experience.
- Refactored chart configuration to dynamically handle datasets based on the presence of projected data.
- Updated HTML to include a new block for displaying standard deviation, enhancing clarity in CPU metrics presentation.
- Introduced a new `stats.py` module to encapsulate dashboard statistics building and cache key constants.
- Refactored `views.py` to utilize the new `build_stats` function for constructing metrics context, improving code organization and readability.
- Updated Prometheus query handling to streamline metrics fetching with a new `fetch_dashboard_metrics` function.
- Enhanced test cases to reflect changes in metrics fetching and context building, ensuring accurate functionality.
- Added new HTML templates for displaying detailed resource allocation and flavor statistics on the dashboard.
- Added a check in docker-build.yml to ensure the REGISTRY_TOKEN is set before attempting to log in to the Gitea Container Registry.
- Included an error message to guide users in adding the necessary secret for successful authentication.
- Revised project description to better highlight the purpose and features of the OpenStack Watcher dashboard.
- Added a table of contents for easier navigation.
- Expanded the features section to detail capabilities such as cluster overview, CPU & RAM usage, VM statistics, and audit recommendations.
- Clarified instructions regarding the `clouds.yaml` configuration file and its security implications.
- Improved formatting and consistency throughout the document.
- Modified the Docker build process in docker-build.yml to convert the repository name to lowercase, ensuring consistent image naming conventions.
- This change helps prevent potential issues with case sensitivity in image tags when pushing to the registry.
- Removed the Safety security check from the CI workflow in ci.yml to simplify the process.
- Retained the installation of Ruff and Bandit for linting and security checks, ensuring continued code quality and security assessment.
- Standardized string quotes across multiple files to use double quotes for consistency.
- Improved formatting of JSON dumps in mock data for better readability.
- Enhanced the structure of various functions and data definitions for clarity.
- Updated test cases to reflect changes in data structure and ensure accuracy.
- Removed caching step for pip in ci.yml to streamline dependency installation.
- Added a blank line in docker-build.yml for improved readability and organization of job steps.
- Created pyproject.toml to define project metadata and dependencies for the watcher-visio dashboard.
- Added CI workflow in ci.yml for automated testing, linting, and security checks on push and pull request events.
- Introduced docker-build.yml for building and releasing Docker images, including steps for tagging, logging in to the registry, and generating release notes.
- Updated index.html to include additional flavor statistics with dynamic data binding for second and third common flavors.
- Refactored JavaScript functions to handle multiple elements for flavor statistics, ensuring accurate updates and removal of loading animations.
- Improved user experience by providing clearer visual representation of flavor data on the dashboard.
- Introduced a new API endpoint `/api/source-status/` to return the status of Prometheus and OpenStack data sources.
- Implemented lightweight health check functions for both Prometheus and OpenStack.
- Updated the dashboard template to display the status of data sources dynamically.
- Added tests for the new API endpoint to ensure correct functionality and response handling.
- Configured a cache timeout for source status checks to improve performance.
- Added DM Sans font to the project, including multiple weights and styles for improved typography.
- Updated package.json and package-lock.json to include @fontsource/dm-sans dependency.
- Enhanced dashboard context to include current cluster CPU state, integrating new data into the context and API responses.
- Updated relevant templates and JavaScript to utilize the new current cluster data for better visualization and user experience.
- Updated Dockerfile to standardize environment variable syntax and improve readability.
- Added new CSS variables for chart grid color and enhanced dark theme contrast for CPU chart statistics.
- Modified index.html to utilize new CSS variables for better theme adaptability and improved chart rendering.
- Consolidated current and projected CPU distribution charts into a single chart for improved clarity.
- Updated chart IDs and labels to reflect the new combined data representation.
- Adjusted JavaScript logic to handle the new chart structure and updated statistics calculations accordingly.
- Introduced a new script for exporting the dashboard as a PDF using html2canvas and jsPDF.
- Added a favicon.ico file and linked it in the base template.
- Updated the base template to include the new PDF export script and modified the button for PDF export functionality.
- Enhanced the index template to include an ID for the dashboard content for PDF generation.
- Updated .dockerignore and .gitignore for better file management.
- Introduced .env.example for environment variable configuration.
- Added docker-compose.dev.yml for development with mock data and live reload.
- Enhanced Dockerfile to include necessary dependencies and entrypoint script.
- Created mock_data.py to provide sample data for testing without OpenStack/Prometheus.
- Added unit tests for template filters in dashboard.
- Cleaned up various files for consistency and improved readability.