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

Shelling out to ipmitool #24

Closed
rustyscottweber opened this issue Apr 18, 2018 · 7 comments
Closed

Shelling out to ipmitool #24

rustyscottweber opened this issue Apr 18, 2018 · 7 comments

Comments

@rustyscottweber
Copy link

The interface given will shell out to ipmitool meaning that:

  1. The package is not purely pythonic.
  2. The package needs ipmitool compiled and installed.
  3. This hurts portability. ipmitool isn't readibly available on windows unless you install cygwin. Not every one can install cygwin.
  4. This means that the project is dependent on ipmitool. If ipmitool breaks or dies, then so does this project.
  5. Output has to be parsed from ipmitool instead of being directly parsed from a packet which is far easier to do.
  6. Any new features for the project, above and beyond what ipmitool doesn't provide, has to be implemented in ipmitool before the function in this project can consume and use it.

Why not create a udp connection that speaks RMCP+ and a set of interfacing functions to conduct logic?

@hthiery
Copy link
Contributor

hthiery commented Apr 18, 2018

to 1. in meaning that all created IPMI messages are pure python the package is pure python. in the current master branch the RCMP(+) interface is based on the ipmitool backend.
to 5. for the RCMP ipmitool backend the output of the ipmitool raw command is used.
to 6. a new IPMI feature can be implemented with this library/package until it can be implemented as IPMI message and be send via ipmitool raw command.

There is alread some work done for supporting python RCMP interface in the following branch:
https://github.com/kontron/python-ipmi/tree/feature-native-rmcp

@rustyscottweber
Copy link
Author

rustyscottweber commented Apr 19, 2018

Thank you so much for being on top of things. I was unawares that you had that branch going. I would love to lend a hand (time permitting). Is that branch feature complete? What is lacking in that branch to merge it into master?

@hthiery
Copy link
Contributor

hthiery commented Apr 19, 2018

Since the last commit of this branch was at 4 Apr 2016 I cannot remember the state of this. Your are welcome to check if your needs are fullfiled and can give some feedback.

But as far as I know it was not ready to merge to master.

@hthiery
Copy link
Contributor

hthiery commented Sep 12, 2018

Ping

@hthiery
Copy link
Contributor

hthiery commented Oct 8, 2018

a native RMCP is now available and ipmitool interface will be kept for legacy reasons

@hthiery hthiery closed this as completed Oct 8, 2018
@rustyscottweber
Copy link
Author

Sorry, I didn't see your ping earlier.
I checked it out a couple of months back, but I was unable to get it functional at the time. Due to lack of time and previous commitments, I never really had the time to verse myself fully with it's design.
It's nice to know that there is an RMCP interface now. I'm going to for sure put this through it's paces as soon as I get some time. Thanks for the update! Cheers!

@rustyscottweber
Copy link
Author

I've FINALLY had a bit of time to mess with this a little bit. Apologies for being so busy on other things.
I'm trying to figure out what the correct way to make an rmpc native connection is.
I've tried the following, but I can't seem to make the rmcp interface work.

interface = create_interface("rmcp")
interface.port = 623
interface.host = self.hostname
ipmi = pyipmi.create_connection(self.interface)
ipmi.session.set_auth_type_user(self.username, self.password)
ipmi.session.set_session_type_rmcp(self.hostname, port=623)
ipmi.target = pyipmi.Target(0x82)
# ipmi.target.set_routing([(0x81,0x20,0),(0x20,0x82,7)])
ipmi.get_chassis_status()

If we can get a quick start for rmcp going, I'll take some time to update the readme markdown on the front page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants