/*
* Copyright (c) 2012-2015 iWave Software LLC
* All Rights Reserved
*/
package com.emc.aix.command;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
import com.google.common.collect.Sets;
public class ListIQNsCommand extends AixResultsCommand<Set<String>> {
private static Pattern IQN_PATTERN = Pattern.compile("initiator_name = \"(.+)\"");
public ListIQNsCommand() {
StringBuilder sb = new StringBuilder();
sb.append("for host in `lsdev | grep ^iscsi | cut -d \" \" -f1`; do ");
sb.append(" lsdevinfo | grep -p $host | grep -E -i -w 'initiator_name'; ");
sb.append("done; ");
setCommand(sb.toString());
setRunAsRoot(true);
}
@Override
public void parseOutput() {
results = Sets.newHashSet();
String stdout = getOutput().getStdout();
if (StringUtils.isNotBlank(stdout)) {
Matcher m = IQN_PATTERN.matcher(stdout);
while (m.find()) {
results.add(m.group(1));
}
}
}
}