[sos-devel] [PATCH] sosreport: Capture IBM Power RAID storage adapter configuration information

Aruna Balakrishnaiah aruna at linux.vnet.ibm.com
Fri Sep 12 09:10:08 UTC 2014


On Thursday 11 September 2014 05:10 PM, Bryn M. Reeves wrote:
> Hi Aruna,
>
> Thanks for the submission - see in-line for review comments.
>
> On Thu, Sep 11, 2014 at 04:47:17PM +0530, Aruna Balakrishnaiah wrote:
>> Capture information which helps in better understanding of
>> IBM Power RAID storage adapter configuration. Since iprconfig
>> is specific to power adding the relevant commands in powerpc plugin.
>>
>> Signed-off-by: Aruna Balakrishnaiah <aruna at linux.vnet.ibm.com>
>> ---
>>   sos/plugins/powerpc.py |   23 ++++++++++++++++++++++-
>>   1 file changed, 22 insertions(+), 1 deletion(-)
> I think it may be better to put this into its own plugin. This is very
> much a storage-specific addition and we've been moving toward more fine
> grained plugins for a while.
>
> One reaon this will soon become even more important is Issue #247:
>
>    https://github.com/sosreport/sos/issues/247
>
> The current proposal is to tag plugins with 'profiles' to allow a user to
> select e.g. all storage-relevant data with:
>
>    # sosreport --batch --profile=storage
>
> Having this in its own plugin makes that type of arrangement simpler.
>
>> diff --git a/sos/plugins/powerpc.py b/sos/plugins/powerpc.py
>> index c829a5f..4495ea5 100644
>> --- a/sos/plugins/powerpc.py
>> +++ b/sos/plugins/powerpc.py
>> @@ -16,6 +16,7 @@
>>   # specific logs for Pseries, PowerNV platforms.
>>   
>>   import os
>> +import re
>>   from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin
>>   
>>   
>> @@ -58,9 +59,29 @@ class PowerPC(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
>>                   "ppc64_cpu --dscr",
>>                   "lscfg -vp",
>>                   "lsmcode -A",
>> -                "lsvpd --debug"
>> +                "lsvpd --debug",
>> +                "iprconfig -c show-config",
>> +                "iprconfig -c show-alt-config",
>> +                "iprconfig -c show-arrays",
>> +                "iprconfig -c show-jbod-disks",
>> +                "iprconfig -c show-ioas",
>> +                "lsscsi -g"
>>               ])
>>   
>> +            devices = []
>> +            for line in os.popen("iprconfig -c show-ioas").readlines():
> Need to use a Plugin API for this. E.g. Plugin::call_ext_prog(). Plugins should
> never call os.popen or subprocess APIs directly.
>
>> +                temp = line.split(' ')
>> +                p = re.compile('sg')
>> +                if p.search(temp[0]):
>> +                     devices.append(temp[0])
>> +
>> +            for device in devices:
>> +                self.add_cmd_output("iprconfig -c show-details %s" % (device,))
>> +
>> +            for line in os.popen("lsscsi -g | grep enclo").readlines():
> Ditto for popen use here.
>
> It would be good to avoid lsscsi here if possible as it's already exec'ed several
> times in the scsi plugin.
>
> It also looks like the plugin will run iprconfig on every SCSI enclosure device;
> that may not be desirable and could be confusing for users with other types of
> enclosure attached.

Bryn,

lsscsi also lists the vendor details for every enclosure, probably it would
be straight forward to compare that instead of going through /sys or /proc
data.

Will address all the comments in my v2.

Regards,
Aruna


>
> I think we can use data from /proc and /sys to identify the devices and restrict
> collection to just the intended IBM Power RAID devices.
>
>> +                temp = re.split('\s+', line)
>> +                self.add_cmd_output("iprconfig -c query-ses-mode %s" % (temp[7],))
> Generally it would be better to document the format of what's being parsed here
> via comments; right now there's quite a bit of 'magic' here. E.g. temp[0], temp[7].
>
> An example of the output being processed or an explanation of its structure is helpful
> as it gives people something to work with if something changes in the future and
> this code breaks.
>
> Regards,
> Bryn.
>




More information about the sos-devel mailing list