Skip to content
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

refactor: centralize resource slot type definitions and improve device metadata handling in /react #2684

Merged
merged 1 commit into from
Sep 5, 2024

Commits on Sep 5, 2024

  1. refactor: centralize resource slot type definitions and improve devic…

    …e metadata handling in `/react` (#2684)
    
    ### TL;DR
    
    Added support for dynamic accelerator types and improved resource allocation handling.
    
    ### What changed?
    
    - Introduced `ResourceSlotName` type to handle known and unknown accelerator types
    - Updated `ResourceTypeIcon` component to use dynamic resource slot details
    - Modified `ResourceAllocationFormItems` to use resource slot details for display units
    - Added JSON schema validation for device metadata
    - Implemented `isMatchingMaxPerContainer` function for flexible config matching
    - Updated resource limit calculations to support unknown accelerator types
    
    ### The steps to add a new accelerator type
    1. Add the accelerator type to `knownAcceleratorResourceSlotNames` in `react/src/hooks/backendai.tsx`.
    2. Add an icon for the new accelerator type to `resourceTypeIconSrcMap` in `react/src/components/ResourceNumber.tsx`.
    3. Add new accelerator metadata to `resources/device_metadata.json`.
    
    After following only step 1, you got a TypeScript error related to step 2 and Jest test failures related to step 3.
    
    ### How to test?
    
    1. Run the JSON schema validation test for device metadata
    2. Test the resource allocation form with various accelerator types
    3. Verify that unknown accelerator types are handled correctly in the UI
    4. Check if the resource limits are calculated correctly for all accelerator types
    
    ### Why make this change?
    
    This change improves the flexibility and maintainability of the codebase by:
    
    1. Supporting dynamic accelerator types without hardcoding
    2. Ensuring consistency between device metadata and code
    3. Improving resource limit calculations for various accelerator types
    4. Enhancing the user interface to display correct units for different accelerators
    
    These improvements allow for easier addition of new accelerator types and better handling of resource allocation across different devices.
    yomybaby committed Sep 5, 2024
    Configuration menu
    Copy the full SHA
    d52c682 View commit details
    Browse the repository at this point in the history