/* * Copyright (c) 2012-2015 iWave Software LLC * All Rights Reserved */ package com.iwave.ext.linux.command; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class FindMultipathBlockDevicesCommand extends LinuxResultsCommand<List<String>> { public FindMultipathBlockDevicesCommand(String device) { StringBuilder sb = new StringBuilder(); sb.append("ls -1 -d /sys/block/*/holders/"); sb.append(device).append(" "); sb.append("| grep \"/sys/block\" "); sb.append("| sed 's/\\/sys\\/block\\/\\(.*\\)\\/holders\\/.*/\\1/'"); setCommand(sb.toString()); setRunAsRoot(true); } @Override public void parseOutput() { Pattern pattern = Pattern.compile("(\\w+)"); Matcher matcher = pattern.matcher(getOutput().getStdout()); this.results = new ArrayList<String>(); while (matcher.find()) { this.results.add(matcher.group(1)); } } }