…and they reveal to you a bit of magic you didn’t know existed.
In this case, it is an undocumented flag in Promise Technology’s command line utility for the Promise Pegasus2 Thunderbolt RAID, promiseutil.
As previously discussed, it appeared to be impossible to check the status of more than one Promise Pegasus enclosure from inside a script using promiseutil. We had filed a support ticket, hoping for some kind of resolution, but were told that promiseutil works as intended.
On a hunch, I reached out to someone at Promise and asked for their help investigating this issue. I was pleasantly surprised when the contact not only took the issue seriously, he immediately looped in other support engineers to look at the problem.
After a week of back and forth about what an appropriate solution would be, perhaps a feature request, the support engineer discovered that there is an undocumented flag that allows you to specify the hba of the Promise unit you want to execute a command on.
Here’s an example. Let’s say we want to check the SMART status of two Promise Pegasus from the command line:
promiseutil -C smart -v
will return the information for the default device only.
If you want to be explicit about which Promise Pegasus you’re checking, first get the hba numbers of the connected units:
promiseutil -C spath
The results will be something like this:
archer:~ admin$ promiseutil -C spath ================================================= Type # Model Alias WWN Seq ================================================= hba 1 * Pegasus2 R4 2000-0001-5558-2fe2 1 hba 2 Pegasus2 M4 2000-0001-5558-3f92 1
Now we use the magic (apparently undocumented) -P (uppercase, not the documented lowercase) flag to specify the unit we want to look at.
promiseutil -T hba -P 1 -C smart -v
which returns the results for the first unit.
promiseutil -T hba -P 2 -C smart -v
will return results for the second unit.
As always, be cautious with promiseutil. Its power is mighty and Bad Things® can happen if used incorrectly.