IPMI control via Ruby


I started working on some plans to implement freeipmi in ruby this week so that we can add power controls and boot order to foreman and eventually RemoteAdmin. Take a look at my effort so far:

I have done Zero testing so don't expect this to actually work quite yet. I am essentially looking for some code review and helpful hits. I only have about 12 months of ruby experience so if something looks off please let me know.

One of my design goals is to raise exceptions and have the library try workarounds before ultimately failing since there is a whole list of workarounds that can be attempted. However, it would be nice to know the make and model of the server up front to decrease workaround attempts.

So essentially I need to figure out how to save a command call and then retry if it doesn't work.


Please take a look at the code as I am still learning how to properly create a gem. Additionally, I am a bit confused on when to require classes that are part of the module. Hoping somebody can take a look and tell me where require statements should go. I would assume all classes are local and do not need the require statement when specifying the same module name.

Corey Osman
Green IT and Datacenter Automation Specialist