def _lvm_parse_display(output): lvms = [] lines = output.split(os.linesep) for line in lines: line = line.strip() if line.startswith(_lv_seperator): lvm = LVM() lvms.insert(0, lvm) r_name = _re_lv_name.match(line) r_path = _re_lv_path.match(line) r_vgname = _re_vg_name.match(line) r_stat = _re_lv_stat.match(line) r_size = _re_lv_size.match(line) r_uuid = _re_lv_uuid.match(line) if r_name: lvms[0].name = r_name.group(1) if r_path: lvms[0].path = r_path.group(1) if r_vgname: lvms[0].vg_name = r_vgname.group(1) if r_stat: lvms[0].state = _lvm_status.get(r_stat.group(1), 0) if r_size: lvms[0].size = yield from _size_to_kb(r_size.group(1), r_size.group(2)) if r_uuid: lvms[0].id = r_uuid.group(1).lower().replace('-', '') print(lvms) return lvms
def _parse_show_target(output): targets = [] lines = output.split(os.linesep) for line in lines: line = line.strip() if len(line) == 0: continue r = _re_target.match(line) if r: target = Target() target.tid = r.group(1) target.iqn = r.group(2) colon_pos = target.iqn.rfind(':') target.name = target.iqn[colon_pos+1:] if colon_pos != -1 else None target.luns = [] target.sessions = [] targets.insert(0, target) r = _re_target_driver.match(line) if r: targets[0].driver = r.group(1) r = _re_target_state.match(line) if r: targets[0].state = _target_state.get(r.group(1), 0) if len(targets) > 0: r = _re_nexus.match(line) if r: session = dict() session['sid'] = int(r.group(1)) targets[0].sessions.insert(0, session) if len(targets) > 0 and len(targets[0].sessions) > 0: r = _re_initiator_name.match(line) if r: targets[0].sessions[0]['initiator'] = r.group(1) r = _re_initiator_conn.match(line) if r: targets[0].sessions[0]['cid'] = int(r.group(1)) targets[0].sessions[0]['connections'] = [] r = _re_initiator_addr.match(line) if r: targets[0].sessions[0]['connections'].append(r.group(1)) r = _re_lun.match(line) if r: lun = LUN() lun.lid = int(r.group(1)) targets[0].luns.insert(0, lun) if len(targets[0].luns) > 0: r = _re_lun_type.match(line) if r: targets[0].luns[0].type = r.group(1) r = _re_lun_name.match(line) if r: targets[0].luns[0].name = r.group(1) r = _re_lun_size.match(line) if r: targets[0].luns[0].size = yield from _size_to_kb(r.group(1), r.group(2)) return targets
def _parse_show_target(output): targets = [] lines = output.split(os.linesep) for line in lines: line = line.strip() if len(line) == 0: continue r = _re_target.match(line) if r: target = Target() target.tid = r.group(1) target.iqn = r.group(2) colon_pos = target.iqn.rfind(':') target.name = target.iqn[colon_pos + 1:] if colon_pos != -1 else None target.luns = [] target.sessions = [] targets.insert(0, target) r = _re_target_driver.match(line) if r: targets[0].driver = r.group(1) r = _re_target_state.match(line) if r: targets[0].state = _target_state.get(r.group(1), 0) if len(targets) > 0: r = _re_nexus.match(line) if r: session = dict() session['sid'] = int(r.group(1)) targets[0].sessions.insert(0, session) if len(targets) > 0 and len(targets[0].sessions) > 0: r = _re_initiator_name.match(line) if r: targets[0].sessions[0]['initiator'] = r.group(1) r = _re_initiator_conn.match(line) if r: targets[0].sessions[0]['cid'] = int(r.group(1)) targets[0].sessions[0]['connections'] = [] r = _re_initiator_addr.match(line) if r: targets[0].sessions[0]['connections'].append(r.group(1)) r = _re_lun.match(line) if r: lun = LUN() lun.lid = int(r.group(1)) targets[0].luns.insert(0, lun) if len(targets[0].luns) > 0: r = _re_lun_type.match(line) if r: targets[0].luns[0].type = r.group(1) r = _re_lun_name.match(line) if r: targets[0].luns[0].name = r.group(1) r = _re_lun_size.match(line) if r: targets[0].luns[0].size = yield from _size_to_kb( r.group(1), r.group(2)) return targets