Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Add abstract functions for PoE enabling #2636
Add abstract functions for PoE enabling #2636
Changes from 8 commits
ab51092
4ea580c
cad788d
229bfda
f6a6554
39473fb
d3c9131
5d97c40
269430d
10e77b4
9a59f75
8a027e7
6f51c86
b9ace82
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
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.
Meant to be called by the frontend to populate a dropdown menu or something. the user can then select one of the PoeState options, and this would then be fed into
set_poe_state
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.
Does the return value very specifically need to be a tuple? Usually I prefer annotating things as
Sequence
unless there is a expectation of being able to use the result value specifically as a tuple or list object.There is the same thing with
dict
vs.Mapping
, but I must admit I haven't been using the latter as much as I probably should have.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.
Tuple was used to signify that this is not something that is meant to be manipulated in any way, since it just informs the static choices. Havent used Sequence myself but I can try it out here :)
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.
When loading portadmin, youre gonna want to call get_poe_state for all poe enabled ports. Doing it one by one is not very efficient. Perhaps adding another function for getting ALL poe states would make sense. If this function returns poe state for all interfaces that support poe, then this response can be used to find out which interfaces do not support poe, making the interface_supports_poe function largely irrelevant.
Keeping the smaller functions for getting information about a specific interface would not hurt, but having functions that do the heavy lifting more efficient would definitely be useful
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.
IIRC, some methods already have signatures that allow for fetching interface information from a range of interfaces, like this:
nav/python/nav/portadmin/handlers.py
Lines 59 to 72 in 5d97c40
I think that could be a useful pattern to re-use. In these methods, the sequence of interfaces is an optional argument. If omitted, the method will operate on all known interfaces.
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.
This seems quite useful, I'll prob add something like this
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.
I question the need for this function. When ive tried to implement this for cisco and juniper, it boils down to trying to get the state from the device and returning true/false based on if it found anything. It doesnt actually save any time over just calling
get_poe_states
for the interface youre interested in.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.
Agreed. You could simply change the definition of
get_poe_state
to return something likeDict[int, Optional[PoeState]]
, where the value for a non-supported interface would just beNone
.