[Tutor] how to grep a word and make a dictionary from multiple lines.

Fosiul Alam fosiul at gmail.com
Tue Jan 5 04:46:09 EST 2016


Hi
so the logic will be like bellow :-

a)Start to read the file,
b)start a line which start with  "3600601"
c) Iterate through the line till i see another line which starts with
"3600601"
d) read the last line before 3600601
e)cut all the path and create a dictionary which will have one key (LUN ID
3600601 ) and multiple values (PATH
*0:0:0:129,**1:0:0:129,*0:0:2:129,1:0:2:129)

f) then look up each dictinary by Values(*0:0:0:129) * to get the required
LUN ID

does the logic sound right ?

mpathdz (360060165656565634348a739e511) dm-134 DGC,VRAID
size=200G features='0' hwhandler='1 alua' wp=rw
|*-+- policy='round-robin 0' prio=130 status=active
*|* |- 0:0:0:129 sddz  128:16   active ready running
*|* `- 1:0:0:129 sdwd  69:656   active ready running
*`-+- policy='round-robin 0' prio=10 status=enabled
  |- 0:0:2:129 sdnd  70:496   active ready running
  `- 1:0:2:129 sdafg 68:864   active ready running
mpathcu (3600601323h42h2k323asdf33511) dm-103 DGC,VRAID
size=200G features='0' hwhandler='1 alua' wp=rw
|*-+- policy='round-robin 0' prio=130 status=active
*|* |- 1:0:2:98  sdaeb 66:880   active ready running
*|* `- 0:0:2:98  sdly  69:256   active ready running
*`-+- policy='round-robin 0' prio=10 status=enabled
  |- 0:0:0:98  sdcu  70:32    active ready running
  `- 1:0:0:98  sduy  67:672   active ready running
mpathbp (36003434343eere8b69e411) dm-36 DGC,RAID 5
size=100G features='0' hwhandler='1 alua' wp=rw
|*-+- policy='round-robin 0' prio=130 status=active
*|* |- 0:0:0:68  sdbq  68:64    active ready running
*|* `- 1:0:0:68  sdtu  65:704   active ready running
*`-+- policy='round-robin 0' prio=10 status=enabled
  |- 0:0:2:68  sdku  67:288   active ready running
  `- 1:0:2:68  sdacx 8:912    active ready running



On Mon, Jan 4, 2016 at 11:54 PM, David Rock <david at graniteweb.com> wrote:

> * Fosiul Alam <fosiul at gmail.com> [2016-01-04 22:29]:
> > Hi Expert,
> > I am learning python to do some system admin code, i am still in the
> > process of learning but I need a help on bellow code in urgent, i will be
> > really greatfull for any help
> >
> > Basically i wanted like this :-
> >
> > grep a line which has 1:0:0:129 , and get the LUN number(i.e
> > 360060165656565634348a739e511) for this path
> >
> > so the Dictionalry will be :
> >
> > dict = {'360060165656565634348a739e511': '1:0:0:129',
> > '3600601323h42h2k323asdf33511': 1:0:2:98};
> >
> >
> > How can i do this ?
>
> based on your multipath output, one thing you have to take into account
> is that the LUN value comes before the SCSI value.  You are going to
> have to walk the file and for each mpath line, create a dict, then add
> your SCSI values to that entry.  You will have to find a way to break
> out of your logic when the next mpath is seen.
>
> You will also want to think about what to do with all your LUNs.  You
> have four per mpath, not one.  Do you want to capture only one, or do
> you need all of them?
>
> --
> David Rock
> david at graniteweb.com
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>



-- 
Regards
Fosiul Alam


More information about the Tutor mailing list