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

DellEMC: S6100, S6000 - Enable thermalctld, Platform API implementation and fixes #6438

Merged

Conversation

ArunSaravananBalachandran
Copy link
Contributor

@ArunSaravananBalachandran ArunSaravananBalachandran commented Jan 13, 2021

- Why I did it

To incorporate the below changes in DellEMC S6100, S6000 platforms.

  • S6100, S6000:
    • Enable 'thermalctld'
    • Implement DeviceBase methods (presence, status, model, serial) for Fantray and Component
    • Implement ‘get_position_in_parent’, ‘is_replaceable’ methods for all device types
    • Implement ‘get_status’ method for Fantray
    • Implement ‘get_temperature’, ‘get_temperature_high_threshold’, ‘get_voltage_high_threshold’, ‘get_voltage_low_threshold’ methods for PSU
    • Implement ‘get_status_led’, ‘set_status_led’ methods for Chassis
    • SFP:
      • Make EEPROM read both Python2 and Python3 compatible
      • Fix ‘get_tx_disable_channel’ method’s return type
      • Implement ‘tx_disable’, ‘tx_disable_channel’ and ‘set_power_override’ methods
  • S6000:
    • Move PSU thermal sensors from Chassis to respective PSU
    • Make available the data of both Fans present in each Fantray

- How I did it

  • Remove 'skip_thermalctld:true' in pmon_daemon_control.json
  • Implement the platform API methods in the respective device files
  • Use bytearray for data read from transceiver EEPROM
  • Change return type of 'get_tx_disable_channel' to match specification in sonic_platform_common/sfp_base.py

- How to verify it

Verified that platform data is displayed by show platform fan and show platform temperature commands.
Wrote a python script to load Chassis class and then call the APIs accordingly.

UT Logs:
S6000_platform_API_UT_logs.txt
S6100_platform_API_UT_logs.txt

- Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012

- Description for the changelog

DellEMC: S6100, S6000 - Enable thermalctld, Platform API implementation and fixes

- A picture of a cute animal (not mandatory but encouraged)

…on and fixes

    - Enable 'thermalctld'
    - Implement DeviceBase methods (presence, status, model, serial) for Fantay and Component
    - Implement ‘get_position_in_parent’, ‘is_replaceable’ methods for all device types
    - SFP: Make eeprom read both Python2 and Python3 compatible
    - SFP: Fix ‘get_tx_disable_channel’ method’s return type
    - SFP: Implement ‘tx_disable’, ‘tx_disable_channel’ and ‘set_power_override’ methods
    - S6000: Implement ‘get_status_led’, ‘set_status_led’ methods for Chassis
    - S6000: Make available the data of both Fans present in each Fantray
@lgtm-com
Copy link

lgtm-com bot commented Jan 13, 2021

This pull request introduces 3 alerts and fixes 6 when merging daf0457 into 674fac2 - view on LGTM.com

new alerts:

  • 3 for Wrong name for an argument in a class instantiation

fixed alerts:

  • 3 for Wrong number of arguments in a class instantiation
  • 2 for Except block handles 'BaseException'
  • 1 for Wrong name for an argument in a class instantiation

    - Implement ‘get_status’ method for Fantray
    - Implement ‘get_voltage_high_threshold’, ‘get_voltage_low_threshold’ methods for PSU
    - Implement ‘get_temperature’, ‘get_temperature_high_threshold’ methods for PSU
    - S6100: Implement ‘get_status_led’, ‘set_status_led’ methods for Chassis
    - S6000: Move PSU thermal sensors from Chassis to respective PSU
@lgtm-com
Copy link

lgtm-com bot commented Feb 5, 2021

This pull request introduces 4 alerts and fixes 8 when merging 8b14d45 into 85a6314 - view on LGTM.com

new alerts:

  • 4 for Wrong name for an argument in a class instantiation

fixed alerts:

  • 4 for Wrong number of arguments in a class instantiation
  • 2 for Except block handles 'BaseException'
  • 1 for Wrong name for an argument in a class instantiation
  • 1 for Result of integer division may be truncated

@jleveque jleveque merged commit fa89c6d into sonic-net:master Feb 5, 2021
daall pushed a commit that referenced this pull request Feb 5, 2021
…on and fixes (#6438)

**- Why I did it**

To incorporate the below changes in DellEMC S6100, S6000 platforms.

- S6100, S6000:
    - Enable 'thermalctld'
    - Implement DeviceBase methods (presence, status, model, serial) for Fantray and Component
    - Implement ‘get_position_in_parent’, ‘is_replaceable’ methods for all device types
    - Implement ‘get_status’ method for Fantray
    - Implement ‘get_temperature’, ‘get_temperature_high_threshold’, ‘get_voltage_high_threshold’, ‘get_voltage_low_threshold’ methods for PSU
    - Implement ‘get_status_led’, ‘set_status_led’ methods for Chassis
    - SFP:
        - Make EEPROM read both Python2 and Python3 compatible
        - Fix ‘get_tx_disable_channel’ method’s return type
        - Implement ‘tx_disable’, ‘tx_disable_channel’ and ‘set_power_override’ methods
- S6000:
    - Move PSU thermal sensors from Chassis to respective PSU
    - Make available the data of both Fans present in each Fantray


**- How I did it**

- Remove 'skip_thermalctld:true' in pmon_daemon_control.json
- Implement the platform API methods in the respective device files
- Use `bytearray` for data read from transceiver EEPROM 
- Change return type of 'get_tx_disable_channel' to match specification in sonic_platform_common/sfp_base.py
@ArunSaravananBalachandran ArunSaravananBalachandran deleted the S6100_S6000_platform_api branch August 24, 2021 05:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants