-
Notifications
You must be signed in to change notification settings - Fork 18
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
redfishpower: single device specification for a chassis #126
Comments
Hmmmm, I suppose this is possible. Although ... we get into some hairy stuff b/c I think I've seen some systems where they begin to index at 1 instead of 0. So now we need a special config for that. I'm wondering if a giant config of "these URIs for these nodes" is what is needed. |
For a single chassis, I think this is fairly trivial - define plug names that are the index (0 or 1 origin, whatever), then do like you did in the httppower example and put the URI in the on/off script, but substitute the plug name using |
Since that fits so naturally, I have to wonder how many |
I was a little confused, until it occurred to me, i think you're recommending 1 chassis per redfishpower co-process? B/c I don't think we can specify a hostname and a plug on one powerman.conf line? i.e. something like
can't be done? where the "1" is the "plug suffix" and "pnode1" is the hostname to power control. |
Yes, but that is OK. You can specify a hostlist as before and just map the plugs in order. iow just specify
|
What a second, are you specifying the chassis parent here? For the actual URI wouldn't we want something more like
where 0-7 are the "plugs"? |
No, chassi0 is the device name, and the plugs are unspecified in the node line. They are implicitly "[0-7]".
or equivalently
|
I had another idea about the chassis address but wanted to get this point across first. |
ohhh got it got it ... i was getting confused, yeah, all the URIs goto the same chassis. Ugh ... maybe my prototype for #81 is a waste now ... maybe this has to be solved first. |
Since the URI for the chassis power control is probably different from the slots, my thought was to have a special plug name
or equivalently
Maybe the "setconfig" stuff at the beginning of the device script could set the config for that special plug, including the hierarchical semantics. |
If the URI is different for each blade, are we only talking to the chassis (one IP)? Do we have an El Cap chassis to poke at? Because if we're only talking to the chassis, we don't care what nodes are in there! |
Of the one example I've seen yeah, the host is the same for each of the blades, just the suffix "path" is different (0, 1, 2, .., etc. different in each path). |
For that type of a chassis I wouldn't think the hierarchical semantics we discussed would be required... The chassis probably remains responsive to queries about the nodes even when off (if it can even be turned off). |
as we go around in circles on some of this stuff, I'm beginning to think "mega-config file" is the right idea, because there's so many oddball cases with redfish.
i can't help but look at the proliferation of device files as evidence for the need. |
On the first three items - I think we are zeroing in on how to do this simply without a separate config file. It seems like we have identified two cases that we may care about (but we should verify they really exist):
Set vs plugs isn't an either or thing. You can set a URI template and then still substitute plugs. On the last two items - this is what powerman does best. You can mix and match different schemes in one config. The device scripts provide the abstraction, and then you map "plugs" in each device to hostnames in the main config and powerman provides one interface to the admins. It would feel like a design failure if we have to introduce a second config file so I think we should keep trying. Let's start by finding out exactly what we're dealing with in El Cap. |
The point on the last two items was the potential explosion of device specifications. Unlike previous device files in powerman, it seems that copy & modify the device files is going to a common pattern with redfish and some of these REST interfaces, as there are quirks in every system. And with blades and parents, we might be introducing additional quirks too. So perhaps a mega config just might be easier overall? Bullet 3 above is the one that made me go "ugh" the most ... where we are crossing the line into different URI configs for different hosts within a single redfishpower process, so there was this ... "ugh ..." |
I'm not convinced a new config file is the answer, particularly to this issue. If we could stay focused on this issue, let's look at what the admins had to do on hetchy with the following device script: redfishpower-cray-olympus-blades.dev This is apparently for an 8-blade chassis. They cut and pasted the same specification with all its scripts 8 times within the same
Then their config looks like this:
So I guess they have two blade chassis, one with 4 blades installed and one with 2. They really had to stand on their heads to get this set up. IMHO there should have been one device spec for this particular chassis with 8 plugs defined. Then their config would be more intuitive, like this
|
Incidentally they have a separate dev specification in another redfishpower-cray-olympus-cmm.dev It's another cut & paste, identical to the blades except for the URIs e.g.
Their config is:
Ideally we would figure out a way to represent the chassis as another plug like
Or even combined with the blades, e.g.
|
And the entire blade config, with all its internal cut & paste, is cut and paste to another redfishpower-cray-olympus-switches.dev In this one the URIs are like
There doesn't seem to be chassis control for this one - not sure if that was just an omission or if there really isn't a capability. Anyway, 8 specs could be reduced to 1 with plugs. |
So in summary I think the path forward is:
Edit: look at all the cut & paste this fixes! Does it go a little ways to address your concern
|
hmmmm, I guess it's just a difference of opinion. In my mind, writing out something like the following would be easier? Now everything is in one place, vs multiple .dev files?
|
Yeah. I guess here are just a few concerns:
|
I'm not sure there is a problem with 1-2K coprocs or why we need to invest effort or add complexity to avoid it. See #127 - 2048 coprocs (for a fictitions 16K node system) even works in the tiny ci environment.
I'm not sure what you're referring to here. I'd say let's stay focused on use cases we have in front of us (or that we at least can find extant somewhere).
|
Good point. In my mind I might have been thinking of it like a separate utility. |
per conversation in #81,
The text was updated successfully, but these errors were encountered: