Skip to content

ScaleOutDellPlugin and ScaleOutAristaPlugin#232

Open
sunnyhe2 wants to merge 10 commits into
developmentfrom
sunny_switch_port
Open

ScaleOutDellPlugin and ScaleOutAristaPlugin#232
sunnyhe2 wants to merge 10 commits into
developmentfrom
sunny_switch_port

Conversation

@sunnyhe2

Copy link
Copy Markdown
Collaborator

Summary

  • Port over Arista and Dell scaleup switch from errorscraper.

Test plan

  • pytest test/unit
  • pytest test/functional (if applicable)
  • pre-commit run --all-files

Checklist

  • Added/updated tests (or explained why not)
  • Updated docs/README if behavior changed
  • No secrets or credentials committed

@sunnyhe2 sunnyhe2 requested a review from alexandraBara June 22, 2026 21:20
@alexandraBara alexandraBara changed the title Switch errorscraper port ScaleOutDellPlugin and ScaleOutAristaPlugin Jun 22, 2026
Comment thread nodescraper/interfaces/dataplugin.py Outdated
Comment thread nodescraper/plugins/inband/switch/scale_out_dell/scale_out_dell_collector.py Outdated
Comment thread nodescraper/plugins/inband/switch/scale_out_arista/scale_out_arista_collector.py Outdated
Comment thread nodescraper/plugins/inband/switch/scale_out_arista/scale_out_arista_collector.py Outdated
Comment on lines +259 to +265
"transmitted_ok": "0",
"transmitted_drop": "0",
"received_ok": "0",
"received_drop": "0",
"tx_last_ok": "0",
"tx_last_drop": "0",
"rx_last_ok": "0",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these <>_ok fields here, wont they be non-zero?

Comment thread nodescraper/plugins/inband/switch/scale_out_dell/scale_out_dell_collector.py Outdated

error_fields: ClassVar[dict[str, str]] = {
"oper": "up",
"speed": "400000",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will this ever change? should this be made a collector arg so we can update it at runtime?

Comment thread nodescraper/plugins/inband/switch/scale_out_dell/scale_out_dell_collector.py Outdated
Comment thread nodescraper/plugins/inband/switch/scale_out_dell/scaleoutdelldata.py Outdated
@alexandraBara alexandraBara added the enhancement New feature or request label Jun 23, 2026

@alexandraBara alexandraBara left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

im also getting a pydantic validation err:

  2026-06-24 11:40:21 CDT       INFO               nodescraper | Checking OS family
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexbara/node-scraper_public/nodescraper/interfaces/dataplugin.py", line 250, in _resolve_collector_args
    return args_cls.model_validate(raw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexbara/node-scraper_public/venv/lib/python3.12/site-packages/pydantic/main.py", line 732, in model_validate
    return cls.__pydantic_validator__.validate_python(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for ScaleOutAristaCollectorArgs
collection_ports
  Extra inputs are not permitted [type=extra_forbidden, input_value=['1/1', '1/2'], input_type=list]
    For further information visit https://errors.pydantic.dev/2.13/v/extra_forbidden
  2026-06-24 11:40:21 CDT       INFO               nodescraper | Closing connections
  2026-06-24 11:40:21 CDT       INFO               nodescraper | Running result collators
  2026-06-24 11:40:21 CDT       INFO               nodescraper | Running TableSummary result collator
  2026-06-24 11:40:21 CDT       INFO               nodescraper |

Returns:
``True`` if the pre-flight check passed, ``False`` otherwise.
"""
version_text = self._run_dell_command(self.CMD_VERSION)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should err out with NOT_RAN to keep consistency with other plugins. If the part (switch) does not exist on the system. Something like:

cmd_ret = self._un_dell_command(self.CMD_VERSION)
if cmd_ret !=0:
     .....
    self.result.status = ExectutionStatus.NOT_RAN
    ....

same goes for the arista plugin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants