linux 内置字典路径,解析linux iscsi多路径.conf到python嵌套字典中

我编写了一个脚本,其中包括从标准中添加/删除多路径“对象”多路径.conf配置文件,示例如下:# This is a basic configuration file with some examples, for device mapper

# multipath.

## Use user friendly names, instead of using WWIDs as names.

defaults {

user_friendly_names yes

}

##

devices {

device {

vendor "SolidFir"

product "SSD SAN"

path_grouping_policy multibus

getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"

path_selector "service-time 0"

path_checker tur

hardware_handler "0"

failback immediate

rr_weight uniform

rr_min_io 1000

rr_min_io_rq 1

features "0"

no_path_retry 24

prio const

}

}

multipaths {

multipath {

wwid 36f47acc1000000006167347a00000041

alias dwqa-ora-fs

}

multipath {

wwid 36f47acc1000000006167347a00000043

alias dwqa-ora-grid

}

multipath {

wwid 36f47acc1000000006167347a00000044

alias dwqa-ora-dwqa1

}

multipath {

wwid 36f47acc1000000006167347a000000ae

alias dwqa-ora-dwh2d10-1

}

multipath {

wwid 36f47acc1000000006167347a000000f9

alias dwqa-ora-testdg-1

}

}

所以我要做的是将这个文件读入并存储在一个嵌套的python字典(或嵌套字典的列表)中。我们现在可以忽略注释行(以#开头)。我还没有想出一个明确/简明的解决办法。在

这是我的部分解决方案(还没有给出预期的输出,但已经很接近了)

^{pr2}$

这是生成的字典(列表“conf”):[{'defaults': [{'user_friendly_names': 'yes'}]},

{'devices': None},

{'device': [{'failback': 'immediate',

'features': '"0"',

'getuid_callout': '"/lib/udev/scsi_id --whitelisted --device=/dev/%n"',

'hardware_handler': '"0"',

'no_path_retry': '24',

'path_checker': 'tur',

'path_grouping_policy': 'multibus',

'path_selector': '"service-time 0"',

'prio': 'const',

'product': '"SSD SAN"',

'rr_min_io': '1000',

'rr_min_io_rq': '1',

'rr_weight': 'uniform',

'vendor': '"SolidFir"'}]},

{'multipaths': None},

{'multipath': [{'alias': 'dwqa-ora-fs',

'wwid': '36f47acc1000000006167347a00000041'}]},

{'multipath': [{'alias': 'dwqa-ora-grid',

'wwid': '36f47acc1000000006167347a00000043'}]},

{'multipath': [{'alias': 'dwqa-ora-dwqa1',

'wwid': '36f47acc1000000006167347a00000044'}]},

{'multipath': [{'alias': 'dwqa-ora-dwh2d10-1',

'wwid': '36f47acc1000000006167347a000000ae'}]},

{'multipath': [{'alias': 'dwqa-ora-testdg-1',

'wwid': '36f47acc1000000006167347a000000f9'}]},

{'multipath': [{'alias': 'dwqa-ora-testdp10-1',

'wwid': '"SSolidFirSSD SAN 6167347a00000123f47acc0100000000"'}]}]

显然“None”应该用下面的嵌套字典替换,但是我不能让这部分工作。在

有什么建议吗?或者更好的方法来解析这个文件并将其存储在python数据结构中?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值